diff --git a/paper/src/main/java/com/denizenscript/denizen/paper/events/ServerListPingScriptEventPaperImpl.java b/paper/src/main/java/com/denizenscript/denizen/paper/events/ServerListPingScriptEventPaperImpl.java index 7bcdaa5fdd..b3733f335a 100644 --- a/paper/src/main/java/com/denizenscript/denizen/paper/events/ServerListPingScriptEventPaperImpl.java +++ b/paper/src/main/java/com/denizenscript/denizen/paper/events/ServerListPingScriptEventPaperImpl.java @@ -17,9 +17,11 @@ public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { String lower = CoreUtilities.toLowerCase(determination); if (lower.startsWith("protocol_version:") && ArgumentHelper.matchesInteger(determination.substring("protocol_version:".length()))) { ((PaperServerListPingEvent) event).setProtocolVersion(Integer.parseInt(determination.substring("protocol_version:".length()))); + return true; } else if (lower.startsWith("version_name:")) { ((PaperServerListPingEvent) event).setVersion(determination.substring("version_name:".length())); + return true; } } return super.applyDetermination(path, determinationObj); @@ -38,7 +40,6 @@ else if (name.equals("version_name")) { @EventHandler public void onListPing(PaperServerListPingEvent event) { - this.event = event; - fire(event); + syncFire(event); } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/server/ListPingScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/server/ListPingScriptEvent.java index ef6954eb1c..d02500b69d 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/server/ListPingScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/server/ListPingScriptEvent.java @@ -3,6 +3,7 @@ import com.denizenscript.denizen.events.BukkitScriptEvent; import com.denizenscript.denizen.utilities.DenizenAPI; import com.denizenscript.denizen.utilities.Utilities; +import com.denizenscript.denizencore.objects.ArgumentHelper; import com.denizenscript.denizencore.objects.core.ElementTag; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.utilities.CoreUtilities; @@ -100,8 +101,8 @@ public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { } if (determination.length() > 0 && !determination.equalsIgnoreCase("none")) { List values = CoreUtilities.split(determination, '|', 2); - if (new ElementTag(values.get(0)).isInt()) { - event.setMaxPlayers(new ElementTag(values.get(0)).asInt()); + if (ArgumentHelper.matchesInteger(values.get(0))) { + event.setMaxPlayers(Integer.parseInt(values.get(0))); if (values.size() == 2) { event.setMotd(values.get(1)); } @@ -133,26 +134,30 @@ else if (name.equals("address")) { return super.getContext(name); } + public void syncFire(ServerListPingEvent event) { + this.event = event; + if (!Bukkit.isPrimaryThread()) { + BukkitScriptEvent altEvent = (BukkitScriptEvent) clone(); + Future future = Bukkit.getScheduler().callSyncMethod(DenizenAPI.getCurrentInstance(), () -> { + altEvent.fire(); + return null; + }); + try { + future.get(5, TimeUnit.SECONDS); + } + catch (Throwable ex) { + Debug.echoError(ex); + } + return; + } + fire(event); + } + public static class ListPingScriptEventSpigotImpl extends ListPingScriptEvent { @EventHandler public void onListPing(ServerListPingEvent event) { - this.event = event; - if (!Bukkit.isPrimaryThread()) { - BukkitScriptEvent altEvent = (BukkitScriptEvent) clone(); - Future future = Bukkit.getScheduler().callSyncMethod(DenizenAPI.getCurrentInstance(), () -> { - altEvent.fire(); - return null; - }); - try { - future.get(5, TimeUnit.SECONDS); - } - catch (Throwable ex) { - Debug.echoError(ex); - } - return; - } - fire(event); + syncFire(event); } } }