From 49036b8943398c0abd32b01b6178293e13af3648 Mon Sep 17 00:00:00 2001 From: ME1312 Date: Thu, 23 May 2019 14:37:18 -0400 Subject: [PATCH] Add support for console sudo in GalaxiBungee --- SubServers.Bungee/pom.xml | 8 +++- .../Compatibility/GalaxiEventListener.java | 39 +++++++++++++++++++ .../ME1312/SubServers/Bungee/SubPlugin.java | 4 +- SubServers.Client/Bukkit/pom.xml | 2 +- SubServers.Client/Sponge/pom.xml | 2 +- SubServers.Host/pom.xml | 2 +- SubServers.Sync/pom.xml | 8 +++- .../net/ME1312/SubServers/Sync/SubPlugin.java | 2 - 8 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Compatibility/GalaxiEventListener.java diff --git a/SubServers.Bungee/pom.xml b/SubServers.Bungee/pom.xml index 608e8c69..d68063c9 100644 --- a/SubServers.Bungee/pom.xml +++ b/SubServers.Bungee/pom.xml @@ -30,9 +30,15 @@ net.ME1312.Galaxi GalaxiUtil - 19w20k + 19w21a compile + + net.ME1312.Galaxi + GalaxiEngine + 19w21a + provided + net.ME1312.SubData Server diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Compatibility/GalaxiEventListener.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Compatibility/GalaxiEventListener.java new file mode 100644 index 00000000..bec715bb --- /dev/null +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Compatibility/GalaxiEventListener.java @@ -0,0 +1,39 @@ +package net.ME1312.SubServers.Bungee.Library.Compatibility; + +import net.ME1312.Galaxi.Event.ConsoleInputEvent; +import net.ME1312.Galaxi.Galaxi; +import net.ME1312.Galaxi.Library.Event.ListenerOrder; +import net.ME1312.Galaxi.Library.Event.Subscribe; +import net.ME1312.SubServers.Bungee.SubPlugin; + +/** + * Galaxi Event Listener Class + */ +public class GalaxiEventListener { + private SubPlugin plugin; + + /** + * Create & Register a Galaxi Event Listener + * + * @param plugin Plugin + */ + public GalaxiEventListener(SubPlugin plugin) throws Throwable { + this.plugin = plugin; + + Galaxi.getInstance().getPluginManager().registerListener(Galaxi.getInstance().getAppInfo(), this); + plugin.canSudo = true; + } + + @Subscribe(order = ListenerOrder.FIRST, override = true) + public void sudo(ConsoleInputEvent e) { + if (plugin.sudo != null) { + e.setCancelled(true); + if (e.getInput().equalsIgnoreCase("exit")) { + plugin.sudo = null; + Logger.get("SubServers").info("Reverting to the BungeeCord Console"); + } else { + plugin.sudo.command(e.getInput()); + } + } + } +} diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java index 1239646b..da766b66 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java @@ -7,6 +7,7 @@ import net.ME1312.Galaxi.Library.Map.ObjectMap; import net.ME1312.Galaxi.Library.NamedContainer; import net.ME1312.Galaxi.Library.UniversalFile; import net.ME1312.Galaxi.Library.Util; +import net.ME1312.Galaxi.Plugin.PluginInfo; import net.ME1312.SubData.Server.*; import net.ME1312.SubData.Server.Encryption.AES; import net.ME1312.SubData.Server.Encryption.RSA; @@ -226,6 +227,7 @@ public final class SubPlugin extends BungeeCord implements Listener { subprotocol = SubProtocol.get(); Logger.get("SubServers").info("Loading BungeeCord Libraries..."); + if (isGalaxi) Util.reflect(net.ME1312.SubServers.Bungee.Library.Compatibility.GalaxiEventListener.class.getConstructor(SubPlugin.class), this); } /** @@ -857,7 +859,7 @@ public final class SubPlugin extends BungeeCord implements Listener { ServerInfo next = new LinkedList>(fallbacks.entrySet()).getFirst().getValue(); e.setCancelServer(next); if (Util.isException(() -> Util.reflect(ServerKickEvent.class.getDeclaredMethod("setCancelServers", ServerInfo[].class), e, (Object) fallbacks.values().toArray(new ServerInfo[0])))) { - ((UserConnection) e.getPlayer()).setServerJoinQueue(new LinkedBlockingQueue<>(fallbacks.keySet())); + ((UserConnection) e.getPlayer()).setServerJoinQueue(new LinkedList<>(fallbacks.keySet())); ((UserConnection) e.getPlayer()).connect(next, null, true); } } diff --git a/SubServers.Client/Bukkit/pom.xml b/SubServers.Client/Bukkit/pom.xml index 96118031..a0ebc590 100644 --- a/SubServers.Client/Bukkit/pom.xml +++ b/SubServers.Client/Bukkit/pom.xml @@ -48,7 +48,7 @@ net.ME1312.Galaxi GalaxiUtil - 19w20k + 19w21a compile diff --git a/SubServers.Client/Sponge/pom.xml b/SubServers.Client/Sponge/pom.xml index 3a12ab91..03269f48 100644 --- a/SubServers.Client/Sponge/pom.xml +++ b/SubServers.Client/Sponge/pom.xml @@ -30,7 +30,7 @@ net.ME1312.Galaxi GalaxiUtil - 19w20k + 19w21a compile diff --git a/SubServers.Host/pom.xml b/SubServers.Host/pom.xml index 1f8385ca..4020aabe 100644 --- a/SubServers.Host/pom.xml +++ b/SubServers.Host/pom.xml @@ -20,7 +20,7 @@ net.ME1312.Galaxi GalaxiEngine - 19w20k + 19w21a compile diff --git a/SubServers.Sync/pom.xml b/SubServers.Sync/pom.xml index 78e027af..ce34fab5 100644 --- a/SubServers.Sync/pom.xml +++ b/SubServers.Sync/pom.xml @@ -30,9 +30,15 @@ net.ME1312.Galaxi GalaxiUtil - 19w20k + 19w21a compile + + net.ME1312.Galaxi + GalaxiEngine + 19w21a + provided + net.ME1312.SubData Client diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java index 1372257d..c35c053b 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java @@ -36,9 +36,7 @@ import java.lang.reflect.InvocationTargetException; import java.net.InetAddress; import java.net.URL; import java.nio.charset.Charset; -import java.nio.file.Files; import java.util.*; -import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; /**