From 8a18b6f5d10fe4ae59ca7ca6b2bfd40264fe1cab Mon Sep 17 00:00:00 2001 From: ME1312 Date: Mon, 14 Feb 2022 12:53:55 -0500 Subject: [PATCH] Some minor fixes --- .../Bungee/Host/External/ExternalHost.java | 25 ++++++--- .../net/ME1312/SubServers/Bungee/Launch.java | 52 +++++++++---------- .../Packet/PacketCheckPermissionResponse.java | 3 +- .../Network/Packet/PacketExAddServer.java | 7 ++- .../Network/Packet/PacketExControlPlayer.java | 3 +- .../Network/Packet/PacketExCreateServer.java | 3 +- .../Network/Packet/PacketExDeleteServer.java | 3 +- .../Packet/PacketExDisconnectPlayer.java | 3 +- .../Network/Packet/PacketExMessagePlayer.java | 3 +- .../Network/Packet/PacketExRemoveServer.java | 3 +- .../Packet/PacketExTransferPlayer.java | 3 +- .../ME1312/SubServers/Bungee/SubProxy.java | 13 +++-- .../Client/Bukkit/Graphic/UIRenderer.java | 23 +++++--- .../Packet/PacketCheckPermissionResponse.java | 3 +- .../Network/Packet/PacketInExRunEvent.java | 4 +- .../Network/Packet/PacketAddServer.java | 3 +- .../Network/Packet/PacketCommandServer.java | 3 +- .../Network/Packet/PacketCreateServer.java | 3 +- .../Network/Packet/PacketDeleteServer.java | 3 +- .../Packet/PacketDisconnectPlayer.java | 3 +- .../Packet/PacketDownloadGroupInfo.java | 3 +- .../Packet/PacketDownloadHostInfo.java | 3 +- .../Packet/PacketDownloadPlatformInfo.java | 3 +- .../Packet/PacketDownloadPlayerInfo.java | 3 +- .../Packet/PacketDownloadProxyInfo.java | 3 +- .../Packet/PacketDownloadServerInfo.java | 3 +- .../Network/Packet/PacketEditServer.java | 3 +- .../Network/Packet/PacketMessagePlayer.java | 3 +- .../Network/Packet/PacketRemoveServer.java | 3 +- .../Network/Packet/PacketRestartServer.java | 3 +- .../Network/Packet/PacketStartServer.java | 3 +- .../Network/Packet/PacketStopServer.java | 3 +- .../Network/Packet/PacketTransferPlayer.java | 3 +- .../Network/Packet/PacketUpdateServer.java | 3 +- .../Packet/PacketCheckPermissionResponse.java | 3 +- .../Network/Packet/PacketInExRunEvent.java | 4 +- .../net/ME1312/SubServers/Host/ExHost.java | 10 ++-- .../Packet/PacketCheckPermissionResponse.java | 3 +- .../Network/Packet/PacketInExRunEvent.java | 4 +- .../net/ME1312/SubServers/Sync/Launch.java | 38 +++++++------- .../Packet/PacketCheckPermissionResponse.java | 3 +- .../Network/Packet/PacketInExRunEvent.java | 4 +- .../Packet/PacketCheckPermissionResponse.java | 3 +- .../Network/Packet/PacketInExRunEvent.java | 4 +- 44 files changed, 133 insertions(+), 151 deletions(-) diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalHost.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalHost.java index b8c1c903..03d38a0a 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalHost.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalHost.java @@ -79,6 +79,7 @@ public class ExternalHost extends Host implements ClientHandler { public void setSubData(DataClient client, int channel) { if (channel < 0) throw new IllegalArgumentException("Subchannel ID cannot be less than zero"); + if (client == null && channel == 0) available = false; if (client != null || channel == 0) { if (!subdata.keySet().contains(channel) || (channel == 0 && (client == null || subdata.get(channel) == null))) { subdata.put(channel, (SubDataClient) client); @@ -107,16 +108,26 @@ public class ExternalHost extends Host implements ClientHandler { client.sendPacket(new PacketOutExReset("Prevent Desync")); clean = true; } + HashSet served = new HashSet(); + LinkedList queue = this.queue; this.queue = new LinkedList(); + PacketOut[] payload = new PacketOut[queue.size()]; + for (int i = 0; i < payload.length; ++i) { + PacketOut packet = queue.get(i); + if (packet instanceof PacketExAddServer) served.add(((PacketExAddServer) packet).peek()); + payload[i] = packet; + } for (SubServer server : servers.values()) { - client.sendPacket(new PacketExAddServer((ExternalSubServer) server, (server.isRunning())?((ExternalSubLogger) server.getLogger()).getExternalAddress():null, data -> { - if (data.contains(0x0002)) ((ExternalSubServer) server).started(data.getUUID(0x0002)); - })); - } - while (queue.size() != 0) { - client.sendPacket(queue.get(0)); - queue.remove(0); + if (!served.contains(server.getName())) { + client.sendPacket(new PacketExAddServer((ExternalSubServer) server, (server.isRunning())?((ExternalSubLogger) server.getLogger()).getExternalAddress():null, data -> { + if (data.contains(0x0002)) ((ExternalSubServer) server).started(data.getUUID(0x0002)); + })); + } } + client.sendPacket(payload); available = true; + while (this.queue.size() != 0) { + client.sendPacket(this.queue.remove(0)); + } } @Override diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Launch.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Launch.java index e6d7116a..f66673b8 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Launch.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Launch.java @@ -82,38 +82,38 @@ public final class Launch { System.out.println("*******************************************"); } System.out.println(""); - } - SubProxy plugin = new SubProxy(System.out, patched); - net.md_5.bungee.api.ProxyServer.class.getMethod("setInstance", net.md_5.bungee.api.ProxyServer.class).invoke(null, plugin); - plugin.getLogger().info("Enabled " + plugin.getBungeeName() + " version " + plugin.getVersion()); - plugin.start(); + SubProxy plugin = new SubProxy(System.out, patched); + net.md_5.bungee.api.ProxyServer.class.getMethod("setInstance", net.md_5.bungee.api.ProxyServer.class).invoke(null, plugin); + plugin.getLogger().info("Enabled " + plugin.getBungeeName() + " version " + plugin.getVersion()); + plugin.start(); - if (!options.has("noconsole")) { - try { - if (Try.all.get(() -> Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("readCommands") != null, false)) { // Waterfall Setup - Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("readCommands").invoke(null); - } else if (Try.all.get(() -> Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("start") != null, false)) { - Class console = Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole"); - console.getMethod("start").invoke(console.getConstructor().newInstance()); - } else { - plugin.canSudo = true; - String line; - while (plugin.isRunning && (line = plugin.getConsoleReader().readLine(">")) != null) { - if (plugin.sudo == null) { - if (!plugin.getPluginManager().dispatchCommand(net.md_5.bungee.command.ConsoleCommandSender.class.cast(net.md_5.bungee.command.ConsoleCommandSender.class.getMethod("getInstance").invoke(null)), line)) { - plugin.getConsole().sendMessage(net.md_5.bungee.api.ChatColor.RED + "Command not found"); + if (!options.has("noconsole")) { + try { + if (Try.all.get(() -> Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("readCommands") != null, false)) { // Waterfall Setup + Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("readCommands").invoke(null); + } else if (Try.all.get(() -> Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("start") != null, false)) { + Class console = Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole"); + console.getMethod("start").invoke(console.getConstructor().newInstance()); + } else { + plugin.canSudo = true; + String line; + while (plugin.isRunning && (line = plugin.getConsoleReader().readLine(">")) != null) { + if (plugin.sudo == null) { + if (!plugin.getPluginManager().dispatchCommand(net.md_5.bungee.command.ConsoleCommandSender.class.cast(net.md_5.bungee.command.ConsoleCommandSender.class.getMethod("getInstance").invoke(null)), line)) { + plugin.getConsole().sendMessage(net.md_5.bungee.api.ChatColor.RED + "Command not found"); + } + } else if (line.equalsIgnoreCase("exit")) { + plugin.sudo = null; + net.ME1312.SubServers.Bungee.Library.Compatibility.Logger.get("SubServers").info("Reverting to the BungeeCord Console"); + } else { + plugin.sudo.command(line); } - } else if (line.equalsIgnoreCase("exit")) { - plugin.sudo = null; - net.ME1312.SubServers.Bungee.Library.Compatibility.Logger.get("SubServers").info("Reverting to the BungeeCord Console"); - } else { - plugin.sudo.command(line); } } + } catch (NoSuchMethodError | NoSuchMethodException e) { + plugin.getLogger().warning("Standard BungeeCord console not found; Console commands may now be disabled."); } - } catch (NoSuchMethodError | NoSuchMethodException e) { - plugin.getLogger().warning("Standard BungeeCord console not found; Console commands may now be disabled."); } } } diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketCheckPermissionResponse.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketCheckPermissionResponse.java index 6cb2c471..26dcac03 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketCheckPermissionResponse.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketCheckPermissionResponse.java @@ -48,7 +48,6 @@ public class PacketCheckPermissionResponse implements PacketObjectIn, P @Override public void receive(SubDataClient client, ObjectMap data) throws Throwable { - for (Consumer callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data.getBoolean(0x0001)); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data.getBoolean(0x0001)); } } diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExAddServer.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExAddServer.java index b157c859..2ef487d0 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExAddServer.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExAddServer.java @@ -49,6 +49,10 @@ public class PacketExAddServer implements PacketObjectIn, PacketObjectO callbacks.put(tracker, callback); } + public String peek() { + return name; + } + @Override public ObjectMap send(SubDataClient client) { ObjectMap data = new ObjectMap(); @@ -66,7 +70,6 @@ public class PacketExAddServer implements PacketObjectIn, PacketObjectO @Override public void receive(SubDataClient client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } \ No newline at end of file diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExControlPlayer.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExControlPlayer.java index a187c087..90170bde 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExControlPlayer.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExControlPlayer.java @@ -51,7 +51,6 @@ public class PacketExControlPlayer implements PacketObjectIn, PacketObj @Override public void receive(SubDataClient client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExCreateServer.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExCreateServer.java index 9d0f4d66..96f127ce 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExCreateServer.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExCreateServer.java @@ -117,7 +117,6 @@ public class PacketExCreateServer implements PacketObjectIn, PacketObje @Override public void receive(SubDataClient client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } \ No newline at end of file diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExDeleteServer.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExDeleteServer.java index 924f790c..2e55aa50 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExDeleteServer.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExDeleteServer.java @@ -54,7 +54,6 @@ public class PacketExDeleteServer implements PacketObjectIn, PacketObje @Override public void receive(SubDataClient client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } \ No newline at end of file diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExDisconnectPlayer.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExDisconnectPlayer.java index cfaae5cd..b2431e5d 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExDisconnectPlayer.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExDisconnectPlayer.java @@ -52,7 +52,6 @@ public class PacketExDisconnectPlayer implements PacketObjectIn, Packet @Override public void receive(SubDataClient client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExMessagePlayer.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExMessagePlayer.java index 5623a593..1f3e2a22 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExMessagePlayer.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExMessagePlayer.java @@ -54,7 +54,6 @@ public class PacketExMessagePlayer implements PacketObjectIn, PacketObj @Override public void receive(SubDataClient client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExRemoveServer.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExRemoveServer.java index 67c761c2..90e3bca3 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExRemoveServer.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExRemoveServer.java @@ -47,7 +47,6 @@ public class PacketExRemoveServer implements PacketObjectIn, PacketObje @Override public void receive(SubDataClient client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } \ No newline at end of file diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExTransferPlayer.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExTransferPlayer.java index dfb0017e..feb24011 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExTransferPlayer.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketExTransferPlayer.java @@ -52,7 +52,6 @@ public class PacketExTransferPlayer implements PacketObjectIn, PacketOb @Override public void receive(SubDataClient client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java index a75b8291..65ab54fb 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java @@ -155,30 +155,29 @@ public final class SubProxy extends BungeeCommon implements Listener { Logger.get("SubServers").info("Created ./SubServers/Templates/Sponge"); } else { long stamp = Math.round(Math.random() * 100000); - Version tv1 = new Version("2.18a+"); - Version tv2 = new Version("2.18a+"); + Version tv = new Version("2.18a+"); - if (new File(dir, "Templates/Vanilla/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Vanilla/template.yml"))).get().getVersion("Version", tv2)).compareTo(tv2) != 0) { + if (new File(dir, "Templates/Vanilla/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Vanilla/template.yml"))).get().getVersion("Version", tv)).compareTo(tv) != 0) { Files.move(new File(dir, "Templates/Vanilla").toPath(), new File(dir, "Templates/Vanilla." + stamp + ".x").toPath()); Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/vanilla.zip"), new File(dir, "Templates")); Logger.get("SubServers").info("Updated ./SubServers/Templates/Vanilla"); } - if (new File(dir, "Templates/Spigot/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Spigot/template.yml"))).get().getVersion("Version", tv1)).compareTo(tv1) != 0) { + if (new File(dir, "Templates/Spigot/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Spigot/template.yml"))).get().getVersion("Version", tv)).compareTo(tv) != 0) { Files.move(new File(dir, "Templates/Spigot").toPath(), new File(dir, "Templates/Spigot." + stamp + ".x").toPath()); Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/spigot.zip"), new File(dir, "Templates")); Logger.get("SubServers").info("Updated ./SubServers/Templates/Spigot"); } - if (new File(dir, "Templates/Purpur/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Purpur/template.yml"))).get().getVersion("Version", tv2)).compareTo(tv2) != 0) { + if (new File(dir, "Templates/Purpur/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Purpur/template.yml"))).get().getVersion("Version", tv)).compareTo(tv) != 0) { Files.move(new File(dir, "Templates/Purpur").toPath(), new File(dir, "Templates/Purpur." + stamp + ".x").toPath()); Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/purpur.zip"), new File(dir, "Templates")); Logger.get("SubServers").info("Updated ./SubServers/Templates/Purpur"); } - if (new File(dir, "Templates/Forge/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Forge/template.yml"))).get().getVersion("Version", tv2)).compareTo(tv2) != 0) { + if (new File(dir, "Templates/Forge/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Forge/template.yml"))).get().getVersion("Version", tv)).compareTo(tv) != 0) { Files.move(new File(dir, "Templates/Forge").toPath(), new File(dir, "Templates/Forge." + stamp + ".x").toPath()); Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/forge.zip"), new File(dir, "Templates")); Logger.get("SubServers").info("Updated ./SubServers/Templates/Forge"); } - if (new File(dir, "Templates/Sponge/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Sponge/template.yml"))).get().getVersion("Version", tv1)).compareTo(tv1) != 0) { + if (new File(dir, "Templates/Sponge/template.yml").exists() && ((new YAMLConfig(new File(dir, "Templates/Sponge/template.yml"))).get().getVersion("Version", tv)).compareTo(tv) != 0) { Files.move(new File(dir, "Templates/Sponge").toPath(), new File(dir, "Templates/Sponge." + stamp + ".x").toPath()); Directories.unzip(SubProxy.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/sponge.zip"), new File(dir, "Templates")); Logger.get("SubServers").info("Updated ./SubServers/Templates/Sponge"); diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Graphic/UIRenderer.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Graphic/UIRenderer.java index 45456654..d1ccb754 100644 --- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Graphic/UIRenderer.java +++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Graphic/UIRenderer.java @@ -1,13 +1,14 @@ package net.ME1312.SubServers.Client.Bukkit.Graphic; +import net.ME1312.Galaxi.Library.Access; import net.ME1312.Galaxi.Library.Container.ContainedPair; import net.ME1312.Galaxi.Library.Container.Container; +import net.ME1312.Galaxi.Library.Try; import net.ME1312.Galaxi.Library.Util; import net.ME1312.Galaxi.Library.Version.Version; import net.ME1312.SubServers.Client.Bukkit.SubPlugin; import net.ME1312.SubServers.Client.Common.Network.API.Host; import net.ME1312.SubServers.Client.Common.Network.API.Server; -import net.ME1312.SubServers.Client.Common.Network.API.SubServer; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -16,6 +17,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitRunnable; +import java.lang.invoke.MethodHandle; import java.util.*; import java.util.PrimitiveIterator.OfInt; import java.util.regex.Matcher; @@ -28,6 +30,7 @@ public abstract class UIRenderer { private final boolean USE_TITLES; private final boolean TAPI_1_11; private final boolean TAPI_PLUGIN; + private final MethodHandle MAPI_1_13; static final HashMap> hostPlugins = new HashMap>(); static final HashMap> serverPlugins = new HashMap>(); @@ -48,6 +51,13 @@ public abstract class UIRenderer { this.plugin = plugin; this.player = player; + // Detect Material API + if (plugin.api.getGameVersion().compareTo(new Version("1.13")) < 0) { + MAPI_1_13 = null; + } else { + MAPI_1_13 = Try.all.get(Access.shared.type(Material.class).method("getMaterial").parameters(String.class, boolean.class).returns(Material.class)::handle); + } + // Detect Title API if (USE_TITLES = plugin.config.get().getMap("Settings").getBoolean("Use-Title-Messages", true)) { if (TAPI_1_11 = plugin.api.getGameVersion().compareTo(new Version("1.11")) >= 0) { @@ -296,7 +306,7 @@ public abstract class UIRenderer { @SuppressWarnings({"deprecation", "JavaReflectionMemberAccess"}) public ItemStack parseItem(String str, ItemStack def) { final Container item = new Container(str); - if (plugin.api.getGameVersion().compareTo(new Version("1.13")) < 0) { + if (MAPI_1_13 == null) { try { // int Matcher matcher = Pattern.compile("(?i)^(\\d+)$").matcher(item.value); @@ -332,15 +342,16 @@ public abstract class UIRenderer { } // Material Name - if (plugin.api.getGameVersion().compareTo(new Version("1.13")) < 0) { + if (MAPI_1_13 == null) { try { return new ItemStack(Material.valueOf(item.value.toUpperCase()), 1); } catch (IllegalArgumentException e) {} } else try { - if (Material.class.getMethod("getMaterial", String.class, boolean.class).invoke(null, item.value.toUpperCase(), false) != null) { - return new ItemStack((Material) Material.class.getMethod("getMaterial", String.class, boolean.class).invoke(null, item.value.toUpperCase(), false), 1); + Material material = (Material) MAPI_1_13.invokeExact(item.value.toUpperCase(), false); + if (material != null) { + return new ItemStack(material, 1); } - } catch (Exception e) {} + } catch (Throwable e) {} return def; } diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketCheckPermissionResponse.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketCheckPermissionResponse.java index f22a2418..3dc2b851 100644 --- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketCheckPermissionResponse.java +++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketCheckPermissionResponse.java @@ -49,7 +49,6 @@ public class PacketCheckPermissionResponse implements Forwardable, PacketObjectI @Override public void receive(SubDataSender client, ObjectMap data) throws Throwable { - for (Consumer callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data.getBoolean(0x0001)); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data.getBoolean(0x0001)); } } diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketInExRunEvent.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketInExRunEvent.java index 03d8c63f..dcf9f080 100644 --- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketInExRunEvent.java +++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketInExRunEvent.java @@ -160,9 +160,7 @@ public class PacketInExRunEvent implements PacketObjectIn { @Override public void receive(SubDataSender client, ObjectMap data) { if (callbacks.keySet().contains(data.getString(0x0000))) { - List>> callbacks = PacketInExRunEvent.callbacks.get(data.getString(0x0000)); - PacketInExRunEvent.callbacks.remove(data.getString(0x0000)); - for (Consumer> callback : callbacks) { + for (Consumer> callback : PacketInExRunEvent.callbacks.remove(data.getString(0x0000))) { callback.accept(new ObjectMap<>((Map) data.getObject(0x0001))); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketAddServer.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketAddServer.java index f23ff4fe..bf34cd40 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketAddServer.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketAddServer.java @@ -112,7 +112,6 @@ public class PacketAddServer implements PacketObjectIn, PacketObjectOut @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketCommandServer.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketCommandServer.java index 7818a27a..c954e0b7 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketCommandServer.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketCommandServer.java @@ -59,7 +59,6 @@ public class PacketCommandServer implements PacketObjectIn, PacketObjec @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketCreateServer.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketCreateServer.java index 42778a88..2d8da0f3 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketCreateServer.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketCreateServer.java @@ -88,7 +88,6 @@ public class PacketCreateServer implements PacketObjectIn, PacketObject @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDeleteServer.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDeleteServer.java index db31b959..aba4139c 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDeleteServer.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDeleteServer.java @@ -57,7 +57,6 @@ public class PacketDeleteServer implements PacketObjectIn, PacketObject @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDisconnectPlayer.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDisconnectPlayer.java index ddfe5570..9bfe95a7 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDisconnectPlayer.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDisconnectPlayer.java @@ -51,7 +51,6 @@ public class PacketDisconnectPlayer implements PacketObjectIn, PacketOb @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadGroupInfo.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadGroupInfo.java index 7b3a99bc..434d5cc9 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadGroupInfo.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadGroupInfo.java @@ -50,13 +50,12 @@ public class PacketDownloadGroupInfo implements PacketObjectIn, PacketO @SuppressWarnings("unchecked") @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) { + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) { ObjectMap map = new ObjectMap((Map) data.getObject(0x0001)); ObjectMap ungrouped = (data.contains(0x0002))?new ObjectMap((Map) data.getObject(0x0002)):null; if (ungrouped != null) map.set("", ungrouped); callback.accept(map); } - callbacks.remove(data.getUUID(0x0000)); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadHostInfo.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadHostInfo.java index 0d094c2c..49e15f7c 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadHostInfo.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadHostInfo.java @@ -50,7 +50,6 @@ public class PacketDownloadHostInfo implements PacketObjectIn, PacketOb @SuppressWarnings("unchecked") @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(new ObjectMap((Map) data.getObject(0x0001))); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(new ObjectMap((Map) data.getObject(0x0001))); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadPlatformInfo.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadPlatformInfo.java index 3c6f43ab..53fb967e 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadPlatformInfo.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadPlatformInfo.java @@ -39,7 +39,6 @@ public class PacketDownloadPlatformInfo implements PacketObjectIn, Pack @SuppressWarnings("unchecked") @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(new ObjectMap((Map) data.getObject(0x0001))); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(new ObjectMap((Map) data.getObject(0x0001))); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadPlayerInfo.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadPlayerInfo.java index 4893e9c1..76a89309 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadPlayerInfo.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadPlayerInfo.java @@ -63,7 +63,6 @@ public class PacketDownloadPlayerInfo implements PacketObjectIn, Packet @SuppressWarnings("unchecked") @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(new ObjectMap((Map) data.getObject(0x0001))); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(new ObjectMap((Map) data.getObject(0x0001))); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadProxyInfo.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadProxyInfo.java index 5d8a64b2..31605717 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadProxyInfo.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadProxyInfo.java @@ -50,13 +50,12 @@ public class PacketDownloadProxyInfo implements PacketObjectIn, PacketO @SuppressWarnings("unchecked") @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) { + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) { ObjectMap map = new ObjectMap((Map) data.getObject(0x0001)); ObjectMap master = (data.contains(0x0002))?new ObjectMap((Map) data.getObject(0x0002)):null; if (master != null) map.set(master.getString("name"), master); callback.accept(map); } - callbacks.remove(data.getUUID(0x0000)); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadServerInfo.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadServerInfo.java index 33cbfded..fe4e81f1 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadServerInfo.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketDownloadServerInfo.java @@ -50,7 +50,6 @@ public class PacketDownloadServerInfo implements PacketObjectIn, Packet @SuppressWarnings("unchecked") @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(new ObjectMap((Map) data.getObject(0x0001))); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(new ObjectMap((Map) data.getObject(0x0001))); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketEditServer.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketEditServer.java index 86c84064..38e59b0b 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketEditServer.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketEditServer.java @@ -59,7 +59,6 @@ public class PacketEditServer implements PacketObjectIn, PacketObjectOu @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketMessagePlayer.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketMessagePlayer.java index caa4425b..48930bc9 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketMessagePlayer.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketMessagePlayer.java @@ -53,7 +53,6 @@ public class PacketMessagePlayer implements PacketObjectIn, PacketObjec @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketRemoveServer.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketRemoveServer.java index e844fb5e..4fcad7fb 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketRemoveServer.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketRemoveServer.java @@ -54,7 +54,6 @@ public class PacketRemoveServer implements PacketObjectIn, PacketObject @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketRestartServer.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketRestartServer.java index a323a175..2727ece4 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketRestartServer.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketRestartServer.java @@ -51,7 +51,6 @@ public class PacketRestartServer implements PacketObjectIn, PacketObjec @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketStartServer.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketStartServer.java index 45c71768..8a2a0208 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketStartServer.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketStartServer.java @@ -51,7 +51,6 @@ public class PacketStartServer implements PacketObjectIn, PacketObjectO @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketStopServer.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketStopServer.java index 36f51e7d..950a79d6 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketStopServer.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketStopServer.java @@ -55,7 +55,6 @@ public class PacketStopServer implements PacketObjectIn, PacketObjectOu @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketTransferPlayer.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketTransferPlayer.java index 1de61998..9c49abf4 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketTransferPlayer.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketTransferPlayer.java @@ -51,7 +51,6 @@ public class PacketTransferPlayer implements PacketObjectIn, PacketObje @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketUpdateServer.java b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketUpdateServer.java index fba4b0b0..beb2fd2a 100644 --- a/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketUpdateServer.java +++ b/SubServers.Client/Common/src/net/ME1312/SubServers/Client/Common/Network/Packet/PacketUpdateServer.java @@ -78,7 +78,6 @@ public class PacketUpdateServer implements PacketObjectIn, PacketObject @Override public void receive(SubDataSender client, ObjectMap data) { - for (Consumer> callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer> callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data); } } diff --git a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketCheckPermissionResponse.java b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketCheckPermissionResponse.java index 7277d027..19110f87 100644 --- a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketCheckPermissionResponse.java +++ b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketCheckPermissionResponse.java @@ -49,7 +49,6 @@ public class PacketCheckPermissionResponse implements Forwardable, PacketObjectI @Override public void receive(SubDataSender client, ObjectMap data) throws Throwable { - for (Consumer callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data.getBoolean(0x0001)); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data.getBoolean(0x0001)); } } diff --git a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketInExRunEvent.java b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketInExRunEvent.java index e9735907..b37ec3b8 100644 --- a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketInExRunEvent.java +++ b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketInExRunEvent.java @@ -132,9 +132,7 @@ public class PacketInExRunEvent implements PacketObjectIn { @Override public void receive(SubDataSender client, ObjectMap data) { if (callbacks.keySet().contains(data.getString(0x0000))) { - List>> callbacks = PacketInExRunEvent.callbacks.get(data.getString(0x0000)); - PacketInExRunEvent.callbacks.remove(data.getString(0x0000)); - for (Consumer> callback : callbacks) { + for (Consumer> callback : PacketInExRunEvent.callbacks.remove(data.getString(0x0000))) { callback.accept(new ObjectMap<>((Map) data.getObject(0x0001))); } } diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java b/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java index b1ae9bfd..89dafeaf 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java @@ -76,15 +76,15 @@ public final class ExHost { parser.allowsUnrecognizedOptions(); parser.accepts("v"); parser.accepts("version"); - parser.accepts("noconsole"); joptsimple.OptionSet options = parser.parse(args); - if(options.has("version") || options.has("v")) { - Version galaxi = Version.fromString(GalaxiEngine.class.getAnnotation(App.class).version()); + if (options.has("version") || options.has("v")) { + Class GalaxiEngine = Class.forName("net.ME1312.Galaxi.Engine.Runtime.Engine"); + Version galaxi = Version.fromString(GalaxiEngine.getAnnotation(App.class).version()); Version subservers = Version.fromString(ExHost.class.getAnnotation(App.class).version()); Version galaxibuild = null; Version subserversbuild = null; try { - Manifest manifest = new Manifest(GalaxiEngine.class.getResourceAsStream("/META-INF/GalaxiEngine.MF")); + Manifest manifest = new Manifest(GalaxiEngine.getResourceAsStream("/META-INF/GalaxiEngine.MF")); if (manifest.getMainAttributes().getValue("Implementation-Version") != null && manifest.getMainAttributes().getValue("Implementation-Version").length() > 0) galaxibuild = new Version(manifest.getMainAttributes().getValue("Implementation-Version")); } catch (Exception e) {} try { @@ -95,7 +95,7 @@ public final class ExHost { System.out.println(""); System.out.println(Platform.getSystemName() + ' ' + Platform.getSystemVersion() + ((Platform.getSystemBuild() != null)?" (" + Platform.getSystemBuild() + ')':"") + ((!Platform.getSystemArchitecture().equals("unknown"))?" [" + Platform.getSystemArchitecture() + ']':"") + ','); System.out.println("Java " + Platform.getJavaVersion() + ((!Platform.getJavaArchitecture().equals("unknown"))?" [" + Platform.getJavaArchitecture() + ']':"") + ','); - System.out.println(GalaxiEngine.class.getAnnotation(App.class).name() + " v" + galaxi.toExtendedString() + ((galaxibuild != null)?" (" + galaxibuild + ')':"") + ','); + System.out.println(GalaxiEngine.getAnnotation(App.class).name() + " v" + galaxi.toExtendedString() + ((galaxibuild != null)?" (" + galaxibuild + ')':"") + ','); System.out.println(ExHost.class.getAnnotation(App.class).name() + " v" + subservers.toExtendedString() + ((subserversbuild != null)?" (" + subserversbuild + ')':"")); System.out.println(""); } else { diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/Network/Packet/PacketCheckPermissionResponse.java b/SubServers.Host/src/net/ME1312/SubServers/Host/Network/Packet/PacketCheckPermissionResponse.java index 0ddae1e7..52857a4c 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/Network/Packet/PacketCheckPermissionResponse.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/Network/Packet/PacketCheckPermissionResponse.java @@ -46,7 +46,6 @@ public class PacketCheckPermissionResponse implements Forwardable, PacketObjectI @Override public void receive(SubDataSender client, ObjectMap data) throws Throwable { - for (Consumer callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data.getBoolean(0x0001)); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data.getBoolean(0x0001)); } } diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/Network/Packet/PacketInExRunEvent.java b/SubServers.Host/src/net/ME1312/SubServers/Host/Network/Packet/PacketInExRunEvent.java index ab7b21ed..137c2b7b 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/Network/Packet/PacketInExRunEvent.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/Network/Packet/PacketInExRunEvent.java @@ -129,9 +129,7 @@ public class PacketInExRunEvent implements PacketObjectIn { @Override public void receive(SubDataSender client, ObjectMap data) { if (callbacks.keySet().contains(data.getString(0x0000))) { - List>> callbacks = PacketInExRunEvent.callbacks.get(data.getString(0x0000)); - PacketInExRunEvent.callbacks.remove(data.getString(0x0000)); - for (Consumer> callback : callbacks) { + for (Consumer> callback : PacketInExRunEvent.callbacks.remove(data.getString(0x0000))) { callback.accept(new ObjectMap<>((Map) data.getObject(0x0001))); } } diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Launch.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Launch.java index dcaab698..7483f8e4 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Launch.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Launch.java @@ -81,30 +81,30 @@ public final class Launch { System.out.println("*******************************************"); } System.out.println(""); - } - ExProxy plugin = new ExProxy(System.out, patched); - net.md_5.bungee.api.ProxyServer.class.getMethod("setInstance", net.md_5.bungee.api.ProxyServer.class).invoke(null, plugin); - plugin.getLogger().info("Enabled " + plugin.getBungeeName() + " version " + plugin.getVersion()); - plugin.start(); + ExProxy plugin = new ExProxy(System.out, patched); + net.md_5.bungee.api.ProxyServer.class.getMethod("setInstance", net.md_5.bungee.api.ProxyServer.class).invoke(null, plugin); + plugin.getLogger().info("Enabled " + plugin.getBungeeName() + " version " + plugin.getVersion()); + plugin.start(); - if (!options.has("noconsole")) { - try { - if (Try.all.get(() -> Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("readCommands") != null, false)) { // Waterfall Setup - Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("readCommands").invoke(null); - } else if (Try.all.get(() -> Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("start") != null, false)) { - Class console = Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole"); - console.getMethod("start").invoke(console.getConstructor().newInstance()); - } else { - String line; - while (plugin.isRunning && (line = plugin.getConsoleReader().readLine(">")) != null) { - if (!plugin.getPluginManager().dispatchCommand(net.md_5.bungee.command.ConsoleCommandSender.class.cast(net.md_5.bungee.command.ConsoleCommandSender.class.getMethod("getInstance").invoke(null)), line)) { - plugin.getConsole().sendMessage(net.md_5.bungee.api.ChatColor.RED + "Command not found"); + if (!options.has("noconsole")) { + try { + if (Try.all.get(() -> Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("readCommands") != null, false)) { // Waterfall Setup + Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("readCommands").invoke(null); + } else if (Try.all.get(() -> Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole").getMethod("start") != null, false)) { + Class console = Class.forName("io.github.waterfallmc.waterfall.console.WaterfallConsole"); + console.getMethod("start").invoke(console.getConstructor().newInstance()); + } else { + String line; + while (plugin.isRunning && (line = plugin.getConsoleReader().readLine(">")) != null) { + if (!plugin.getPluginManager().dispatchCommand(net.md_5.bungee.command.ConsoleCommandSender.class.cast(net.md_5.bungee.command.ConsoleCommandSender.class.getMethod("getInstance").invoke(null)), line)) { + plugin.getConsole().sendMessage(net.md_5.bungee.api.ChatColor.RED + "Command not found"); + } } } + } catch (NoSuchMethodError | NoSuchMethodException e) { + plugin.getLogger().warning("Standard BungeeCord console not found; Console commands may now be disabled."); } - } catch (NoSuchMethodError | NoSuchMethodException e) { - plugin.getLogger().warning("Standard BungeeCord console not found; Console commands may now be disabled."); } } } diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketCheckPermissionResponse.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketCheckPermissionResponse.java index e9703bda..606fda5a 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketCheckPermissionResponse.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketCheckPermissionResponse.java @@ -49,7 +49,6 @@ public class PacketCheckPermissionResponse implements Forwardable, PacketObjectI @Override public void receive(SubDataSender client, ObjectMap data) throws Throwable { - for (Consumer callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data.getBoolean(0x0001)); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data.getBoolean(0x0001)); } } diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketInExRunEvent.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketInExRunEvent.java index 4c86b942..ec29db2d 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketInExRunEvent.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketInExRunEvent.java @@ -131,9 +131,7 @@ public class PacketInExRunEvent implements PacketObjectIn { @Override public void receive(SubDataSender client, ObjectMap data) { if (callbacks.keySet().contains(data.getString(0x0000))) { - List>> callbacks = PacketInExRunEvent.callbacks.get(data.getString(0x0000)); - PacketInExRunEvent.callbacks.remove(data.getString(0x0000)); - for (Consumer> callback : callbacks) { + for (Consumer> callback : PacketInExRunEvent.callbacks.remove(data.getString(0x0000))) { callback.accept(new ObjectMap<>((Map) data.getObject(0x0001))); } } diff --git a/SubServers.Sync/velocity/src/net/ME1312/SubServers/Velocity/Network/Packet/PacketCheckPermissionResponse.java b/SubServers.Sync/velocity/src/net/ME1312/SubServers/Velocity/Network/Packet/PacketCheckPermissionResponse.java index adaed722..68094768 100644 --- a/SubServers.Sync/velocity/src/net/ME1312/SubServers/Velocity/Network/Packet/PacketCheckPermissionResponse.java +++ b/SubServers.Sync/velocity/src/net/ME1312/SubServers/Velocity/Network/Packet/PacketCheckPermissionResponse.java @@ -48,7 +48,6 @@ public class PacketCheckPermissionResponse implements Forwardable, PacketObjectI @Override public void receive(SubDataSender client, ObjectMap data) throws Throwable { - for (Consumer callback : callbacks.get(data.getUUID(0x0000))) callback.accept(data.getBoolean(0x0001)); - callbacks.remove(data.getUUID(0x0000)); + for (Consumer callback : callbacks.remove(data.getUUID(0x0000))) callback.accept(data.getBoolean(0x0001)); } } diff --git a/SubServers.Sync/velocity/src/net/ME1312/SubServers/Velocity/Network/Packet/PacketInExRunEvent.java b/SubServers.Sync/velocity/src/net/ME1312/SubServers/Velocity/Network/Packet/PacketInExRunEvent.java index c8892667..da695c8a 100644 --- a/SubServers.Sync/velocity/src/net/ME1312/SubServers/Velocity/Network/Packet/PacketInExRunEvent.java +++ b/SubServers.Sync/velocity/src/net/ME1312/SubServers/Velocity/Network/Packet/PacketInExRunEvent.java @@ -129,9 +129,7 @@ public class PacketInExRunEvent implements PacketObjectIn { @Override public void receive(SubDataSender client, ObjectMap data) { if (callbacks.keySet().contains(data.getString(0x0000))) { - List>> callbacks = PacketInExRunEvent.callbacks.get(data.getString(0x0000)); - PacketInExRunEvent.callbacks.remove(data.getString(0x0000)); - for (Consumer> callback : callbacks) { + for (Consumer> callback : PacketInExRunEvent.callbacks.remove(data.getString(0x0000))) { callback.accept(new ObjectMap<>((Map) data.getObject(0x0001))); } }