From 6debb5b605ac8b368e0a5fa2fe9822aae5771da8 Mon Sep 17 00:00:00 2001 From: ME1312 Date: Thu, 18 Apr 2019 10:10:00 -0400 Subject: [PATCH 1/4] Update for the Sponge Web API The sponge dependencies now use two formats. This is adds support for the new one. --- .../SubServers/Bungee/Host/Internal/InternalSubCreator.java | 2 +- .../src/net/ME1312/SubServers/Host/Executable/SubCreator.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java index f90dbbc4..1b2af53b 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java @@ -111,7 +111,7 @@ public class InternalSubCreator extends SubCreator { System.out.println(name + File.separator + "Creator > Found \"sponge" + ((template.getType() == ServerType.FORGE)?"forge":"vanilla") + "-" + spversion.toString() + '"'); if (template.getType() == ServerType.FORGE) { - Version mcfversion = new Version(spprofile.getSection("dependencies").getRawString("minecraft") + '-' + spprofile.getSection("dependencies").getRawString("forge")); + Version mcfversion = new Version(((spprofile.getSection("dependencies").getRawString("forge").contains("-"))?"":spprofile.getSection("dependencies").getRawString("minecraft") + '-') + spprofile.getSection("dependencies").getRawString("forge")); System.out.println(name + File.separator + "Creator > Found \"forge-" + mcfversion.toString() + '"'); var.put("mcf_version", mcfversion.toString()); diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubCreator.java b/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubCreator.java index a3fd80dc..451e3608 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubCreator.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubCreator.java @@ -258,7 +258,7 @@ public class SubCreator { host.subdata.sendPacket(new PacketOutExLogMessage(address, "Found \"sponge" + ((template.getType() == ServerType.FORGE)?"forge":"vanilla") + "-" + spversion.toString() + '"')); if (template.getType() == ServerType.FORGE) { - Version mcfversion = new Version(spprofile.getSection("dependencies").getRawString("minecraft") + '-' + spprofile.getSection("dependencies").getRawString("forge")); + Version mcfversion = new Version(((spprofile.getSection("dependencies").getRawString("forge").contains("-"))?"":spprofile.getSection("dependencies").getRawString("minecraft") + '-') + spprofile.getSection("dependencies").getRawString("forge")); log.logger.info.println("Found \"forge-" + mcfversion.toString() + '"'); host.subdata.sendPacket(new PacketOutExLogMessage(address, "Found \"forge-" + mcfversion.toString() + '"')); From 2c41c402138f00154668d64fd7ec5694cb631d43 Mon Sep 17 00:00:00 2001 From: ME1312 Date: Fri, 19 Apr 2019 11:46:39 -0400 Subject: [PATCH 2/4] Move encryption keys to a variable --- .../net/ME1312/SubServers/Bungee/Network/Client.java | 4 ++-- .../Bungee/Network/Packet/PacketAuthorization.java | 3 ++- .../SubServers/Bungee/Network/SubDataServer.java | 2 ++ .../Bukkit/Network/Packet/PacketAuthorization.java | 6 ++++-- .../Client/Bukkit/Network/SubDataClient.java | 10 ++++++---- .../Sponge/Network/Packet/PacketAuthorization.java | 7 ++++--- .../Client/Sponge/Network/SubDataClient.java | 10 ++++++---- .../Host/Network/Packet/PacketAuthorization.java | 12 ++++-------- .../SubServers/Host/Network/SubDataClient.java | 10 ++++++---- .../Sync/Network/Packet/PacketAuthorization.java | 10 ++++++---- .../SubServers/Sync/Network/SubDataClient.java | 10 ++++++---- 11 files changed, 48 insertions(+), 36 deletions(-) diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Client.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Client.java index acfd1e43..2d4925c0 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Client.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Client.java @@ -86,7 +86,7 @@ public class Client { private void recievePacket(Value input) { try { - YAMLSection data = subdata.getCipher().decrypt(subdata.plugin.config.get().getSection("Settings").getSection("SubData").getRawString("Password"), input); + YAMLSection data = subdata.getCipher().decrypt(subdata.password, input); for (PacketIn packet : SubDataServer.decodePacket(this, data)) { boolean auth = authorized == null; if (auth || packet instanceof PacketAuthorization) { @@ -134,7 +134,7 @@ public class Client { public void sendPacket(PacketOut packet) { if (Util.isNull(packet)) throw new NullPointerException(); if (!isClosed()) try { - out.packValue(subdata.getCipher().encrypt(subdata.plugin.config.get().getSection("Settings").getSection("SubData").getRawString("Password"), SubDataServer.encodePacket(this, packet))); + out.packValue(subdata.getCipher().encrypt(subdata.password, SubDataServer.encodePacket(this, packet))); out.flush(); } catch (Throwable e) { e.printStackTrace(); diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketAuthorization.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketAuthorization.java index f83d0349..a8408f6c 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketAuthorization.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/Packet/PacketAuthorization.java @@ -6,6 +6,7 @@ import net.ME1312.SubServers.Bungee.Library.Version.Version; import net.ME1312.SubServers.Bungee.Network.Client; import net.ME1312.SubServers.Bungee.Network.PacketIn; import net.ME1312.SubServers.Bungee.Network.PacketOut; +import net.ME1312.SubServers.Bungee.Network.SubDataServer; import net.ME1312.SubServers.Bungee.SubPlugin; /** @@ -49,7 +50,7 @@ public final class PacketAuthorization implements PacketIn, PacketOut { @Override public void execute(Client client, YAMLSection data) { try { - if (data.getRawString("password").equals(plugin.config.get().getSection("Settings").getSection("SubData").getRawString("Password"))) { + if (data.getRawString("password").equals(Util.reflect(SubDataServer.class.getDeclaredField("password"), plugin.subdata))) { client.authorize(); client.sendPacket(new PacketAuthorization(0, "Successfully Logged in")); } else { diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/SubDataServer.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/SubDataServer.java index f3a7986a..ac9fa2e9 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/SubDataServer.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Network/SubDataServer.java @@ -34,6 +34,7 @@ public final class SubDataServer { private ServerSocket server; private Cipher cipher; protected SubPlugin plugin; + String password; /** * SubData Server Instance @@ -55,6 +56,7 @@ public final class SubDataServer { } if (UPnP.isUPnPAvailable() && plugin.config.get().getSection("Settings").getSection("UPnP", new YAMLSection()).getBoolean("Forward-SubData", false)) UPnP.openPortTCP(port); this.plugin = plugin; + this.password = plugin.config.get().getSection("Settings").getSection("SubData").getRawString("Password"); this.cipher = (cipher != null)?cipher:new Cipher() { @Override public String getName() { diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketAuthorization.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketAuthorization.java index 8751a310..e375a6d3 100644 --- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketAuthorization.java +++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/Packet/PacketAuthorization.java @@ -15,16 +15,18 @@ import java.lang.reflect.Method; public final class PacketAuthorization implements PacketIn, PacketOut { private SubPlugin plugin; + private String password; - public PacketAuthorization(SubPlugin plugin) { + public PacketAuthorization(SubPlugin plugin, String password) { if (Util.isNull(plugin)) throw new NullPointerException(); this.plugin = plugin; + this.password = password; } @Override public YAMLSection generate() { YAMLSection json = new YAMLSection(); - json.set("password", plugin.config.get().getSection("Settings").getSection("SubData").getString("Password")); + json.set("password", password); return json; } diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/SubDataClient.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/SubDataClient.java index d39cd56c..961cf33b 100644 --- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/SubDataClient.java +++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Network/SubDataClient.java @@ -38,6 +38,7 @@ public final class SubDataClient { private NamedContainer socket; private String name; private Cipher cipher; + private String password; private SubPlugin plugin; private LinkedList> queue; @@ -58,6 +59,7 @@ public final class SubDataClient { this.name = (name == null || name.length() > 0)?name:null; this.out = MessagePack.newDefaultPacker(socket.get().getOutputStream()); this.queue = new LinkedList>(); + this.password = plugin.config.get().getSection("Settings").getSection("SubData").getRawString("Password"); this.cipher = (cipher != null)?cipher:new Cipher() { @Override public String getName() { @@ -77,7 +79,7 @@ public final class SubDataClient { if (!defaults) loadDefaults(); loop(); - sendPacket(new NamedContainer<>(null, new PacketAuthorization(plugin))); + sendPacket(new NamedContainer<>(null, new PacketAuthorization(plugin, password))); } private void init() { @@ -98,7 +100,7 @@ public final class SubDataClient { } private void loadDefaults() { defaults = true; - registerPacket(new PacketAuthorization(plugin), "SubData", "Authorization"); + registerPacket(new PacketAuthorization(plugin, null), "SubData", "Authorization"); registerPacket(new PacketCommandServer(), "SubServers", "CommandServer"); registerPacket(new PacketCreateServer(), "SubServers", "CreateServer"); registerPacket(new PacketDownloadGroupInfo(), "SubServers", "DownloadGroupInfo"); @@ -160,7 +162,7 @@ public final class SubDataClient { private void recieve(Value input) { try { - YAMLSection data = cipher.decrypt(plugin.config.get().getSection("Settings").getSection("SubData").getRawString("Password"), input); + YAMLSection data = cipher.decrypt(password, input); for (PacketIn packet : decodePacket(data)) { if (plugin.isEnabled()) Bukkit.getScheduler().runTask(plugin, () -> { try { @@ -332,7 +334,7 @@ public final class SubDataClient { try { YAMLSection data = encodePacket(packet.get()); if (packet.name() != null) data.set("f", packet.name()); - out.packValue(getCipher().encrypt(plugin.config.get().getSection("Settings").getSection("SubData").getRawString("Password"), data)); + out.packValue(getCipher().encrypt(password, data)); out.flush(); } catch (Throwable e) { e.printStackTrace(); diff --git a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketAuthorization.java b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketAuthorization.java index 5df32483..f43ab93f 100644 --- a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketAuthorization.java +++ b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/Packet/PacketAuthorization.java @@ -17,17 +17,18 @@ import java.lang.reflect.Method; public final class PacketAuthorization implements PacketIn, PacketOut { private SubPlugin plugin; private Logger log = null; + private String password; - public PacketAuthorization(SubPlugin plugin) { + public PacketAuthorization(SubPlugin plugin, String password) { if (Util.isNull(plugin)) throw new NullPointerException(); this.plugin = plugin; - Util.isException(() -> this.log = Util.reflect(SubDataClient.class.getDeclaredField("log"), null)); + this.password = password; } @Override public YAMLSection generate() { YAMLSection json = new YAMLSection(); - json.set("password", plugin.config.get().getSection("Settings").getSection("SubData").getString("Password")); + json.set("password", password); return json; } diff --git a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/SubDataClient.java b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/SubDataClient.java index 7dcab99c..d1dc5799 100644 --- a/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/SubDataClient.java +++ b/SubServers.Client/Sponge/src/net/ME1312/SubServers/Client/Sponge/Network/SubDataClient.java @@ -41,6 +41,7 @@ public final class SubDataClient { private NamedContainer socket; private String name; private Cipher cipher; + private String password; private SubPlugin plugin; private LinkedList> queue; @@ -61,6 +62,7 @@ public final class SubDataClient { this.name = (name == null || name.length() > 0)?name:null; this.out = MessagePack.newDefaultPacker(socket.get().getOutputStream()); this.queue = new LinkedList>(); + this.password = plugin.config.get().getSection("Settings").getSection("SubData").getRawString("Password"); this.cipher = (cipher != null)?cipher:new Cipher() { @Override public String getName() { @@ -80,7 +82,7 @@ public final class SubDataClient { if (!defaults) loadDefaults(); loop(); - sendPacket(new NamedContainer<>(null, new PacketAuthorization(plugin))); + sendPacket(new NamedContainer<>(null, new PacketAuthorization(plugin, password))); } private void init() { @@ -102,7 +104,7 @@ public final class SubDataClient { defaults = true; log = LoggerFactory.getLogger("SubData"); - registerPacket(new PacketAuthorization(plugin), "SubData", "Authorization"); + registerPacket(new PacketAuthorization(plugin, null), "SubData", "Authorization"); registerPacket(new PacketCommandServer(), "SubServers", "CommandServer"); registerPacket(new PacketCreateServer(), "SubServers", "CreateServer"); registerPacket(new PacketDownloadGroupInfo(), "SubServers", "DownloadGroupInfo"); @@ -164,7 +166,7 @@ public final class SubDataClient { private void recieve(Value input) { try { - YAMLSection data = getCipher().decrypt(plugin.config.get().getSection("Settings").getSection("SubData").getRawString("Password"), input); + YAMLSection data = getCipher().decrypt(password, input); for (PacketIn packet : decodePacket(data)) { Sponge.getScheduler().createTaskBuilder().execute(() -> { try { @@ -336,7 +338,7 @@ public final class SubDataClient { try { YAMLSection data = encodePacket(packet.get()); if (packet.name() != null) data.set("f", packet.name()); - out.packValue(getCipher().encrypt(plugin.config.get().getSection("Settings").getSection("SubData").getRawString("Password"), data)); + out.packValue(getCipher().encrypt(password, data)); out.flush(); } catch (Throwable e) { e.printStackTrace(); diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/Network/Packet/PacketAuthorization.java b/SubServers.Host/src/net/ME1312/SubServers/Host/Network/Packet/PacketAuthorization.java index b45b3944..210b5bfb 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/Network/Packet/PacketAuthorization.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/Network/Packet/PacketAuthorization.java @@ -20,22 +20,18 @@ import java.lang.reflect.Method; public final class PacketAuthorization implements PacketIn, PacketOut { private ExHost host; private Logger log = null; + private String password; - /** - * New PacketAuthorization - * - * @param host SubServers.Host - */ - public PacketAuthorization(ExHost host) { + public PacketAuthorization(ExHost host, String password) { if (Util.isNull(host)) throw new NullPointerException(); this.host = host; - Util.isException(() -> this.log = Util.reflect(SubDataClient.class.getDeclaredField("log"), null)); + this.password = password; } @Override public YAMLSection generate() { YAMLSection json = new YAMLSection(); - json.set("password", host.config.get().getSection("Settings").getSection("SubData").getString("Password")); + json.set("password", password); return json; } diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/Network/SubDataClient.java b/SubServers.Host/src/net/ME1312/SubServers/Host/Network/SubDataClient.java index 54282f63..aae6a8c8 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/Network/SubDataClient.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/Network/SubDataClient.java @@ -44,6 +44,7 @@ public final class SubDataClient { private NamedContainer socket; private String name; private Cipher cipher; + private String password; private ExHost host; private LinkedList> queue; @@ -64,6 +65,7 @@ public final class SubDataClient { this.name = name; this.out = MessagePack.newDefaultPacker(socket.get().getOutputStream()); this.queue = new LinkedList>(); + this.password = host.config.get().getSection("Settings").getSection("SubData").getRawString("Password"); this.cipher = (cipher != null)?cipher:new Cipher() { @Override public String getName() { @@ -83,7 +85,7 @@ public final class SubDataClient { if (!defaults) loadDefaults(); loop(); - sendPacket(new NamedContainer<>(null, new PacketAuthorization(host))); + sendPacket(new NamedContainer<>(null, new PacketAuthorization(host, password))); } private void init() { @@ -107,7 +109,7 @@ public final class SubDataClient { defaults = true; log = new Logger("SubData"); - registerPacket(new PacketAuthorization(host), "SubData", "Authorization"); + registerPacket(new PacketAuthorization(host, null), "SubData", "Authorization"); registerPacket(new PacketCommandServer(), "SubServers", "CommandServer"); registerPacket(new PacketCreateServer(), "SubServers", "CreateServer"); registerPacket(new PacketDownloadGroupInfo(), "SubServers", "DownloadGroupInfo"); @@ -184,7 +186,7 @@ public final class SubDataClient { private void recieve(Value input) { try { - YAMLSection data = cipher.decrypt(host.config.get().getSection("Settings").getSection("SubData").getRawString("Password"), input); + YAMLSection data = cipher.decrypt(password, input); for (PacketIn packet : decodePacket(data)) { try { packet.execute((data.contains("c"))?data.getSection("c"):null); @@ -354,7 +356,7 @@ public final class SubDataClient { try { YAMLSection data = encodePacket(packet.get()); if (packet.name() != null) data.set("f", packet.name()); - out.packValue(getCipher().encrypt(host.config.get().getSection("Settings").getSection("SubData").getRawString("Password"), data)); + out.packValue(getCipher().encrypt(password, data)); out.flush(); } catch (Throwable e) { log.error.println(e); diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketAuthorization.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketAuthorization.java index 9e83a074..cf9fab9f 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketAuthorization.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/Packet/PacketAuthorization.java @@ -13,17 +13,19 @@ import java.lang.reflect.Method; public final class PacketAuthorization implements PacketIn, PacketOut { private SubPlugin plugin; + private String password; - public PacketAuthorization(SubPlugin plugin) { + public PacketAuthorization(SubPlugin plugin, String password) { if (Util.isNull(plugin)) throw new NullPointerException(); this.plugin = plugin; + this.password = password; } @Override public YAMLSection generate() { - YAMLSection data = new YAMLSection(); - data.set("password", plugin.config.get().getSection("Settings").getSection("SubData").getString("Password")); - return data; + YAMLSection json = new YAMLSection(); + json.set("password", password); + return json; } @Override diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/SubDataClient.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/SubDataClient.java index bcc02055..cbc0cf26 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/SubDataClient.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Network/SubDataClient.java @@ -47,6 +47,7 @@ public final class SubDataClient { private NamedContainer socket; private String name = null; private Cipher cipher; + private String password; private SubPlugin plugin; private LinkedList> queue; @@ -65,6 +66,7 @@ public final class SubDataClient { this.plugin = plugin; this.name = (name == null || name.length() > 0)?name:null; this.out = MessagePack.newDefaultPacker(socket.get().getOutputStream()); + this.password = plugin.config.get().getSection("Settings").getSection("SubData").getRawString("Password"); this.cipher = (cipher != null)?cipher:new Cipher() { @Override public String getName() { @@ -85,7 +87,7 @@ public final class SubDataClient { if (!defaults) loadDefaults(); loop(); - sendPacket(new NamedContainer<>(null, new PacketAuthorization(plugin))); + sendPacket(new NamedContainer<>(null, new PacketAuthorization(plugin, password))); } private void init() { @@ -131,7 +133,7 @@ public final class SubDataClient { } private void loadDefaults() { defaults = true; - registerPacket(new PacketAuthorization(plugin), "SubData", "Authorization"); + registerPacket(new PacketAuthorization(plugin, null), "SubData", "Authorization"); registerPacket(new PacketCommandServer(), "SubServers", "CommandServer"); registerPacket(new PacketCreateServer(), "SubServers", "CreateServer"); registerPacket(new PacketDownloadGroupInfo(), "SubServers", "DownloadGroupInfo"); @@ -193,7 +195,7 @@ public final class SubDataClient { private void recieve(Value input) { try { - YAMLSection data = cipher.decrypt(plugin.config.get().getSection("Settings").getSection("SubData").getRawString("Password"), input); + YAMLSection data = cipher.decrypt(password, input); for (PacketIn packet : decodePacket(data)) { try { packet.execute((data.contains("c")) ? data.getSection("c") : null); @@ -374,7 +376,7 @@ public final class SubDataClient { try { YAMLSection data = encodePacket(packet.get()); if (packet.name() != null) data.set("f", packet.name()); - out.packValue(getCipher().encrypt(plugin.config.get().getSection("Settings").getSection("SubData").getRawString("Password"), data)); + out.packValue(getCipher().encrypt(password, data)); out.flush(); } catch (Throwable e) { e.printStackTrace(); From df029e3a7e3ae79625221ea014c4f76555b27ed9 Mon Sep 17 00:00:00 2001 From: ME1312 Date: Thu, 25 Apr 2019 23:40:02 -0400 Subject: [PATCH 3/4] Add proper 1.14 support --- .../Host/External/ExternalSubLogger.java | 2 +- .../Host/Internal/InternalSubLogger.java | 2 +- .../Bukkit/Graphic/DefaultUIHandler.java | 41 ++++++++++--------- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalSubLogger.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalSubLogger.java index eaf44fe5..9a31b593 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalSubLogger.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/External/ExternalSubLogger.java @@ -141,7 +141,7 @@ public class ExternalSubLogger extends SubLogger { @Override public void unregisterFilter(SubLogFilter filter) { if (Util.isNull(filter)) throw new NullPointerException(); - filters.remove(filter); + Util.isException(() -> filters.remove(filter)); } @Override diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubLogger.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubLogger.java index 1fb05913..7ddc01ff 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubLogger.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubLogger.java @@ -158,7 +158,7 @@ public class InternalSubLogger extends SubLogger { @Override public void unregisterFilter(SubLogFilter filter) { if (Util.isNull(filter)) throw new NullPointerException(); - filters.remove(filter); + Util.isException(() -> filters.remove(filter)); } private void destroy() { diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Graphic/DefaultUIHandler.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Graphic/DefaultUIHandler.java index 13e7625c..c64fb40d 100644 --- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Graphic/DefaultUIHandler.java +++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/Graphic/DefaultUIHandler.java @@ -58,12 +58,13 @@ public class DefaultUIHandler implements UIHandler, Listener { Player player = (Player) event.getWhoClicked(); if (!event.isCancelled() && enabled && gui.keySet().contains(player.getUniqueId())) { DefaultUIRenderer gui = this.gui.get(player.getUniqueId()); - if (gui.open && event.getClickedInventory() != null && event.getClickedInventory().getTitle() != null) { + String title = event.getView().getTitle(); + if (gui.open && event.getClickedInventory() != null && title != null) { if (plugin.subdata == null) { new IllegalStateException("SubData is not connected").printStackTrace(); } else if (Util.isException(() -> plugin.api.getLangChannels())) { new IllegalStateException("There are no lang options available at this time").printStackTrace(); - } else if (event.getClickedInventory().getTitle().equals(plugin.api.getLang("SubServers", "Interface.Host-Menu.Title"))) { // Host Menu + } else if (title.equals(plugin.api.getLang("SubServers", "Interface.Host-Menu.Title"))) { // Host Menu if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR && event.getCurrentItem().hasItemMeta()) { String item = event.getCurrentItem().getItemMeta().getDisplayName(); @@ -90,9 +91,9 @@ public class DefaultUIHandler implements UIHandler, Listener { gui.hostAdmin(obj); } } - } else if (event.getClickedInventory().getTitle().startsWith(plugin.api.getLang("SubServers", "Interface.Host-Creator.Title").split("\\$str\\$")[0]) && // Host Creator + } else if (title.startsWith(plugin.api.getLang("SubServers", "Interface.Host-Creator.Title").split("\\$str\\$")[0]) && // Host Creator (plugin.api.getLang("SubServers", "Interface.Host-Creator.Title").split("\\$str\\$").length == 1 || - event.getClickedInventory().getTitle().endsWith(plugin.api.getLang("SubServers", "Interface.Host-Creator.Title").split("\\$str\\$")[1]))) { + title.endsWith(plugin.api.getLang("SubServers", "Interface.Host-Creator.Title").split("\\$str\\$")[1]))) { if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR && event.getCurrentItem().hasItemMeta()) { String item = event.getCurrentItem().getItemMeta().getDisplayName(); if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back"))) { @@ -169,9 +170,9 @@ public class DefaultUIHandler implements UIHandler, Listener { }); } } - } else if (event.getClickedInventory().getTitle().startsWith(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Template.Title").split("\\$str\\$")[0]) && // Host Creator Templates + } else if (title.startsWith(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Template.Title").split("\\$str\\$")[0]) && // Host Creator Templates (plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Template.Title").split("\\$str\\$").length == 1 || - event.getClickedInventory().getTitle().endsWith(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Template.Title").split("\\$str\\$")[1]))) { + title.endsWith(plugin.api.getLang("SubServers", "Interface.Host-Creator.Edit-Template.Title").split("\\$str\\$")[1]))) { if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR && event.getCurrentItem().hasItemMeta()) { String item = event.getCurrentItem().getItemMeta().getDisplayName(); if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back-Arrow"))) { @@ -195,9 +196,9 @@ public class DefaultUIHandler implements UIHandler, Listener { gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]); } } - } else if (event.getClickedInventory().getTitle().startsWith(plugin.api.getLang("SubServers", "Interface.Host-Plugin.Title").split("\\$str\\$")[0]) && // Host Plugin + } else if (title.startsWith(plugin.api.getLang("SubServers", "Interface.Host-Plugin.Title").split("\\$str\\$")[0]) && // Host Plugin (plugin.api.getLang("SubServers", "Interface.Host-Plugin.Title").split("\\$str\\$").length == 1 || - event.getClickedInventory().getTitle().endsWith(plugin.api.getLang("SubServers", "Interface.Host-Plugin.Title").split("\\$str\\$")[1]))) { + title.endsWith(plugin.api.getLang("SubServers", "Interface.Host-Plugin.Title").split("\\$str\\$")[1]))) { if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR && event.getCurrentItem().hasItemMeta()) { String item = event.getCurrentItem().getItemMeta().getDisplayName(); if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back-Arrow"))) { @@ -231,7 +232,7 @@ public class DefaultUIHandler implements UIHandler, Listener { } } - } else if (event.getClickedInventory().getTitle().equals(plugin.api.getLang("SubServers", "Interface.Group-Menu.Title"))) { // Host Menu + } else if (title.equals(plugin.api.getLang("SubServers", "Interface.Group-Menu.Title"))) { // Host Menu if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR && event.getCurrentItem().hasItemMeta()) { String item = event.getCurrentItem().getItemMeta().getDisplayName(); @@ -249,13 +250,13 @@ public class DefaultUIHandler implements UIHandler, Listener { gui.serverMenu(1, null, ChatColor.stripColor(item)); } } - } else if (event.getClickedInventory().getTitle().equals(plugin.api.getLang("SubServers", "Interface.Server-Menu.Title")) || // SubServer Menu - event.getClickedInventory().getTitle().startsWith(plugin.api.getLang("SubServers", "Interface.Host-SubServer.Title").split("\\$str\\$")[0]) && + } else if (title.equals(plugin.api.getLang("SubServers", "Interface.Server-Menu.Title")) || // SubServer Menu + title.startsWith(plugin.api.getLang("SubServers", "Interface.Host-SubServer.Title").split("\\$str\\$")[0]) && (plugin.api.getLang("SubServers", "Interface.Host-SubServer.Title").split("\\$str\\$").length == 1 || - event.getClickedInventory().getTitle().endsWith(plugin.api.getLang("SubServers", "Interface.Host-SubServer.Title").split("\\$str\\$")[1])) || - event.getClickedInventory().getTitle().startsWith(plugin.api.getLang("SubServers", "Interface.Group-SubServer.Title").split("\\$str\\$")[0]) && + title.endsWith(plugin.api.getLang("SubServers", "Interface.Host-SubServer.Title").split("\\$str\\$")[1])) || + title.startsWith(plugin.api.getLang("SubServers", "Interface.Group-SubServer.Title").split("\\$str\\$")[0]) && (plugin.api.getLang("SubServers", "Interface.Group-SubServer.Title").split("\\$str\\$").length == 1 || - event.getClickedInventory().getTitle().endsWith(plugin.api.getLang("SubServers", "Interface.Group-SubServer.Title").split("\\$str\\$")[1]))) { + title.endsWith(plugin.api.getLang("SubServers", "Interface.Group-SubServer.Title").split("\\$str\\$")[1]))) { if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR && event.getCurrentItem().hasItemMeta()) { String item = event.getCurrentItem().getItemMeta().getDisplayName(); @@ -282,9 +283,9 @@ public class DefaultUIHandler implements UIHandler, Listener { gui.subserverAdmin(obj); } } - } else if (event.getClickedInventory().getTitle().startsWith(plugin.api.getLang("SubServers", "Interface.Host-Admin.Title").split("\\$str\\$")[0]) && // Host Admin + } else if (title.startsWith(plugin.api.getLang("SubServers", "Interface.Host-Admin.Title").split("\\$str\\$")[0]) && // Host Admin (plugin.api.getLang("SubServers", "Interface.Host-Admin.Title").split("\\$str\\$").length == 1 || - event.getClickedInventory().getTitle().endsWith(plugin.api.getLang("SubServers", "Interface.Host-Admin.Title").split("\\$str\\$")[1]))) { + title.endsWith(plugin.api.getLang("SubServers", "Interface.Host-Admin.Title").split("\\$str\\$")[1]))) { if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR && event.getCurrentItem().hasItemMeta()) { String item = event.getCurrentItem().getItemMeta().getDisplayName(); @@ -304,9 +305,9 @@ public class DefaultUIHandler implements UIHandler, Listener { gui.hostPlugin(1, (String) gui.lastVisitedObjects[0]); } } - } else if (event.getClickedInventory().getTitle().startsWith(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Title").split("\\$str\\$")[0]) && // SubServer Admin + } else if (title.startsWith(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Title").split("\\$str\\$")[0]) && // SubServer Admin (plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Title").split("\\$str\\$").length == 1 || - event.getClickedInventory().getTitle().endsWith(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Title").split("\\$str\\$")[1]))) { + title.endsWith(plugin.api.getLang("SubServers", "Interface.SubServer-Admin.Title").split("\\$str\\$")[1]))) { if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR && event.getCurrentItem().hasItemMeta()) { String item = event.getCurrentItem().getItemMeta().getDisplayName(); @@ -387,9 +388,9 @@ public class DefaultUIHandler implements UIHandler, Listener { gui.subserverPlugin(1, (String) gui.lastVisitedObjects[0]); } } - } else if (event.getClickedInventory().getTitle().startsWith(plugin.api.getLang("SubServers", "Interface.SubServer-Plugin.Title").split("\\$str\\$")[0]) && // SubServer Plugin + } else if (title.startsWith(plugin.api.getLang("SubServers", "Interface.SubServer-Plugin.Title").split("\\$str\\$")[0]) && // SubServer Plugin (plugin.api.getLang("SubServers", "Interface.SubServer-Plugin.Title").split("\\$str\\$").length == 1 || - event.getClickedInventory().getTitle().endsWith(plugin.api.getLang("SubServers", "Interface.SubServer-Plugin.Title").split("\\$str\\$")[1]))) { + title.endsWith(plugin.api.getLang("SubServers", "Interface.SubServer-Plugin.Title").split("\\$str\\$")[1]))) { if (event.getCurrentItem() != null && event.getCurrentItem().getType() != Material.AIR && event.getCurrentItem().hasItemMeta()) { String item = event.getCurrentItem().getItemMeta().getDisplayName(); if (item.equals(plugin.api.getLang("SubServers", "Interface.Generic.Back-Arrow"))) { From f8d597f5130b643e8d19dff3e93f5ceb48df15e1 Mon Sep 17 00:00:00 2001 From: ME1312 Date: Thu, 2 May 2019 12:10:01 -0400 Subject: [PATCH 4/4] #41 Add `host` to the environment --- .../SubServers/Bungee/Host/Internal/InternalSubCreator.java | 1 + .../SubServers/Bungee/Host/Internal/InternalSubServer.java | 1 + .../src/net/ME1312/SubServers/Host/Executable/SubCreator.java | 1 + .../src/net/ME1312/SubServers/Host/Executable/SubServer.java | 1 + 4 files changed, 4 insertions(+) diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java index 1b2af53b..ad531084 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java @@ -87,6 +87,7 @@ public class InternalSubCreator extends SubCreator { System.out.println(name + File.separator + "Creator > Loading Template: " + template.getDisplayName()); Util.copyDirectory(template.getDirectory(), dir); var.put("name", name); + var.put("host", host.getName()); var.put("template", template.getName()); var.put("type", template.getType().toString().toUpperCase()); var.put("version", version.toString()); diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubServer.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubServer.java index 17556f2b..819d9f81 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubServer.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubServer.java @@ -121,6 +121,7 @@ public class InternalSubServer extends SubServerContainer { try { ProcessBuilder pb = new ProcessBuilder().command(Executable.parse(host.getCreator().getBashDirectory(), executable)).directory(directory); pb.environment().put("name", getName()); + pb.environment().put("host", host.getName()); pb.environment().put("address", host.getAddress().getHostAddress()); pb.environment().put("port", Integer.toString(getAddress().getPort())); process = pb.start(); diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubCreator.java b/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubCreator.java index 451e3608..83a4683a 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubCreator.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubCreator.java @@ -232,6 +232,7 @@ public class SubCreator { host.subdata.sendPacket(new PacketOutExLogMessage(address, "Loading Template: " + template.getDisplayName())); Util.copyDirectory(template.getDirectory(), dir); var.put("name", name); + if (host.subdata != null) var.put("host", host.subdata.getName()); var.put("template", template.getName()); var.put("type", template.getType().toString().toUpperCase()); var.put("version", version.toString()); diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubServer.java b/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubServer.java index 45260531..da8a1183 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubServer.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubServer.java @@ -110,6 +110,7 @@ public class SubServer { try { ProcessBuilder pb = new ProcessBuilder().command(Executable.parse(host.host.getRawString("Git-Bash"), executable)).directory(directory); pb.environment().put("name", getName()); + if (host.subdata != null) pb.environment().put("host", host.subdata.getName()); pb.environment().put("address", host.config.get().getSection("Settings").getRawString("Server-Bind")); pb.environment().put("port", Integer.toString(getPort())); process = pb.start();