From d43aae84863660ff465f3b5099a05dc328730929 Mon Sep 17 00:00:00 2001 From: ME1312 Date: Tue, 18 Aug 2020 20:03:59 -0400 Subject: [PATCH] Allow command overrides to be disabled seperately This also leaves room for disabling overrides in other features in the future. --- .../SubServers/Bungee/Library/ConfigUpdater.java | 12 ++++++++++-- .../net/ME1312/SubServers/Bungee/SubProxy.java | 5 +++-- .../src/net/ME1312/SubServers/Sync/ExProxy.java | 5 +++-- .../SubServers/Sync/Library/ConfigUpdater.java | 15 +++++++++++++-- 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/ConfigUpdater.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/ConfigUpdater.java index 9418e62c..c91fd40e 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/ConfigUpdater.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/ConfigUpdater.java @@ -120,13 +120,21 @@ public class ConfigUpdater { existing = updated.clone(); i++; - } if (was.compareTo(new Version("20w26a")) <= 0) { + } if (was.compareTo(new Version("20w34a")) <= 0) { if (existing.getMap("Settings", new YAMLSection()).contains("Smart-Fallback") && existing.getMap("Settings").isBoolean("Smart-Fallback")) { YAMLSection smart_fallback = new YAMLSection(); smart_fallback.set("Enabled", existing.getMap("Settings").getBoolean("Smart-Fallback")); smart_fallback.set("Fallback", existing.getMap("Settings").getBoolean("Smart-Fallback")); updated.getMap("Settings").set("Smart-Fallback", smart_fallback); } + if (existing.getMap("Settings", new YAMLSection()).contains("Override-Bungee-Commands") && existing.getMap("Settings").isBoolean("Override-Bungee-Commands")) { + List overrides = new LinkedList<>(); + if (!existing.getMap("Settings").getBoolean("Override-Bungee-Commands")) { + overrides.add("/server"); + overrides.add("/glist"); + } + updated.getMap("Settings").set("Disabled-Overrides", overrides); + } existing = updated.clone(); i++; @@ -142,7 +150,7 @@ public class ConfigUpdater { if (i > 0) { YAMLSection settings = new YAMLSection(); settings.set("Version", ((now.compareTo(was) <= 0)?was:now).toString()); - settings.set("Override-Bungee-Commands", updated.getMap("Settings", new YAMLSection()).getBoolean("Override-Bungee-Commands", true)); + settings.set("Disabled-Overrides", updated.getMap("Settings", new YAMLSection()).getRawStringList("Disabled-Overrides", Collections.emptyList())); YAMLSection smart_fallback = new YAMLSection(); smart_fallback.set("Enabled", updated.getMap("Settings", new YAMLSection()).getMap("Smart-Fallback", new YAMLSection()).getBoolean("Enabled", true)); diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java index f8036b09..da59ec8b 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubProxy.java @@ -630,10 +630,11 @@ public final class SubProxy extends BungeeCord implements Listener { } private void post() { - if (config.get().getMap("Settings").getBoolean("Override-Bungee-Commands", true)) { + if (!config.get().getMap("Settings").getRawStringList("Disabled-Overrides", Collections.emptyList()).contains("/server")) getPluginManager().registerCommand(null, SubCommand.BungeeServer.newInstance(this, "server").get()); + if (!config.get().getMap("Settings").getRawStringList("Disabled-Overrides", Collections.emptyList()).contains("/glist")) getPluginManager().registerCommand(null, new SubCommand.BungeeList(this, "glist")); - } + getPluginManager().registerCommand(null, SubCommand.newInstance(this, "subservers").get()); getPluginManager().registerCommand(null, SubCommand.newInstance(this, "subserver").get()); getPluginManager().registerCommand(null, SubCommand.newInstance(this, "sub").get()); diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java index d0bacc34..c19ac150 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/ExProxy.java @@ -199,10 +199,11 @@ public final class ExProxy extends BungeeCord implements Listener { } private void post() { - if (config.get().getMap("Settings").getBoolean("Override-Bungee-Commands", true)) { + if (!config.get().getMap("Settings").getRawStringList("Disabled-Overrides", Collections.emptyList()).contains("/server")) getPluginManager().registerCommand(null, SubCommand.BungeeServer.newInstance(this, "server").get()); + if (!config.get().getMap("Settings").getRawStringList("Disabled-Overrides", Collections.emptyList()).contains("/glist")) getPluginManager().registerCommand(null, new SubCommand.BungeeList(this, "glist")); - } + getPluginManager().registerCommand(null, SubCommand.newInstance(this, "subservers").get()); getPluginManager().registerCommand(null, SubCommand.newInstance(this, "subserver").get()); getPluginManager().registerCommand(null, SubCommand.newInstance(this, "sub").get()); diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Library/ConfigUpdater.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Library/ConfigUpdater.java index dbc46ad2..4680b000 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/Library/ConfigUpdater.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/Library/ConfigUpdater.java @@ -11,6 +11,9 @@ import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Calendar; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; /** * SubServers Configuration Updater @@ -42,13 +45,21 @@ public class ConfigUpdater { if (was.compareTo(new Version("19w17a")) <= 0) { i++; - } if (was.compareTo(new Version("20w26a")) <= 0) { + } if (was.compareTo(new Version("20w34a")) <= 0) { if (existing.getMap("Settings", new YAMLSection()).contains("Smart-Fallback") && existing.getMap("Settings").isBoolean("Smart-Fallback")) { YAMLSection smart_fallback = new YAMLSection(); smart_fallback.set("Enabled", existing.getMap("Settings").getBoolean("Smart-Fallback")); smart_fallback.set("Fallback", existing.getMap("Settings").getBoolean("Smart-Fallback")); updated.getMap("Settings").set("Smart-Fallback", smart_fallback); } + if (existing.getMap("Settings", new YAMLSection()).contains("Override-Bungee-Commands") && existing.getMap("Settings").isBoolean("Override-Bungee-Commands")) { + List overrides = new LinkedList<>(); + if (!existing.getMap("Settings").getBoolean("Override-Bungee-Commands")) { + overrides.add("/server"); + overrides.add("/glist"); + } + updated.getMap("Settings").set("Disabled-Overrides", overrides); + } existing = updated.clone(); i++; @@ -63,7 +74,7 @@ public class ConfigUpdater { if (i > 0) { YAMLSection settings = new YAMLSection(); settings.set("Version", ((now.compareTo(was) <= 0)?was:now).toString()); - settings.set("Override-Bungee-Commands", updated.getMap("Settings", new YAMLSection()).getBoolean("Override-Bungee-Commands", true)); + settings.set("Disabled-Overrides", updated.getMap("Settings", new YAMLSection()).getRawStringList("Disabled-Overrides", Collections.emptyList())); YAMLSection smart_fallback = new YAMLSection(); smart_fallback.set("Enabled", updated.getMap("Settings", new YAMLSection()).getMap("Smart-Fallback", new YAMLSection()).getBoolean("Enabled", true));