Skip to content

Commit

Permalink
Bungee: IP in join and quit events
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Dec 2, 2021
1 parent 38d839b commit a21b4f2
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 18 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Expand Up @@ -13,8 +13,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<craftbukkit.version>1.17.1-R0.1-SNAPSHOT</craftbukkit.version>
<citizens.version>2.0.28-SNAPSHOT</citizens.version>
<denizen.version>1.2.2-SNAPSHOT</denizen.version>
<citizens.version>2.0.29-SNAPSHOT</citizens.version>
<denizen.version>1.2.3-SNAPSHOT</denizen.version>
<BUILD_NUMBER>Unknown</BUILD_NUMBER>
</properties>

Expand Down
Expand Up @@ -25,15 +25,15 @@ public void process(ByteBuf data) {
long mostSigBits = data.readLong();
long leastSigBits = data.readLong();
UUID uuid = new UUID(mostSigBits, leastSigBits);
int nameLength = data.readInt();
if (data.readableBytes() < nameLength || nameLength < 0) {
BungeeBridge.instance.handler.fail("Invalid PlayerJoinPacket (name bytes requested: " + nameLength + ")");
String name = readString(data, "name");
String ip = readString(data, "ip");
if (name == null || ip == null) {
return;
}
String name = readString(data, nameLength);
Bukkit.getScheduler().scheduleSyncDelayedTask(Depenizen.instance, () -> {
BungeePlayerJoinsScriptEvent.instance.name = name;
BungeePlayerJoinsScriptEvent.instance.uuid = uuid;
BungeePlayerJoinsScriptEvent.instance.ip = ip;
BungeePlayerJoinsScriptEvent.instance.fire();
});
}
Expand Down
Expand Up @@ -26,12 +26,14 @@ public void process(ByteBuf data) {
long leastSigBits = data.readLong();
UUID uuid = new UUID(mostSigBits, leastSigBits);
String name = readString(data, "name");
if (name == null) {
String ip = readString(data, "ip");
if (name == null || ip == null) {
return;
}
Bukkit.getScheduler().scheduleSyncDelayedTask(Depenizen.instance, () -> {
BungeePlayerQuitsScriptEvent.instance.name = name;
BungeePlayerQuitsScriptEvent.instance.uuid = uuid;
BungeePlayerQuitsScriptEvent.instance.ip = ip;
BungeePlayerQuitsScriptEvent.instance.fire();
});
}
Expand Down
Expand Up @@ -23,7 +23,8 @@ public class BungeePlayerJoinsScriptEvent extends BukkitScriptEvent {
//
// @Context
// <context.name> returns the connecting player's name.
// <context.uuid> returns the connection player's UUID.
// <context.uuid> returns the connecting player's UUID.
// <context.ip> returns the connecting player's IP address.
//
// @Plugin Depenizen, DepenizenBungee, BungeeCord
//
Expand All @@ -43,6 +44,8 @@ public BungeePlayerJoinsScriptEvent() {

public UUID uuid;

public String ip;

@Override
public boolean couldMatch(ScriptPath path) {
return path.eventLower.startsWith("bungee player joins network");
Expand Down Expand Up @@ -70,11 +73,10 @@ public ScriptEntryData getScriptEntryData() {

@Override
public ObjectTag getContext(String name) {
if (name.equals("name")) {
return new ElementTag(this.name);
}
else if (name.equals("uuid")) {
return new ElementTag(uuid.toString());
switch (name) {
case "name": return new ElementTag(this.name);
case "uuid": return new ElementTag(uuid.toString());
case "ip": return new ElementTag(ip);
}
return super.getContext(name);
}
Expand Down
Expand Up @@ -24,6 +24,7 @@ public class BungeePlayerQuitsScriptEvent extends BukkitScriptEvent {
// @Context
// <context.name> returns the leaving player's name.
// <context.uuid> returns the leaving player's UUID.
// <context.ip> returns the leaving player's IP address.
//
// @Plugin Depenizen, DepenizenBungee, BungeeCord
//
Expand All @@ -43,6 +44,8 @@ public BungeePlayerQuitsScriptEvent() {

public UUID uuid;

public String ip;

@Override
public boolean couldMatch(ScriptPath path) {
return path.eventLower.startsWith("bungee player leaves network");
Expand Down Expand Up @@ -70,11 +73,10 @@ public ScriptEntryData getScriptEntryData() {

@Override
public ObjectTag getContext(String name) {
if (name.equals("name")) {
return new ElementTag(this.name);
}
else if (name.equals("uuid")) {
return new ElementTag(uuid.toString());
switch (name) {
case "name": return new ElementTag(this.name);
case "uuid": return new ElementTag(uuid.toString());
case "ip": return new ElementTag(ip);
}
return super.getContext(name);
}
Expand Down

0 comments on commit a21b4f2

Please sign in to comment.