diff --git a/SubServers.Bungee/pom.xml b/SubServers.Bungee/pom.xml index b02a20cf..3aa5c6c2 100644 --- a/SubServers.Bungee/pom.xml +++ b/SubServers.Bungee/pom.xml @@ -30,20 +30,20 @@ net.ME1312.Galaxi GalaxiUtil - 19w28a + 19w39b compile true net.ME1312.Galaxi GalaxiEngine - 19w28a + 19w39b provided net.ME1312.SubData Server - 19w26a + 19w39a compile true diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Updates/ConfigUpdater.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Updates/ConfigUpdater.java index a17daabf..8866bb25 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Updates/ConfigUpdater.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Updates/ConfigUpdater.java @@ -10,8 +10,12 @@ import net.ME1312.SubServers.Bungee.SubAPI; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; +import java.util.Arrays; import java.util.Calendar; import java.util.Collections; +import java.util.LinkedList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * SubServers Configuration Updater @@ -68,14 +72,50 @@ public class ConfigUpdater { existing = updated.clone(); i++; - } if (was.compareTo(new Version("19w35b")) <= 0) { - if (existing.getMap("Settings", new YAMLSection()).getMap("SubData", new YAMLSection()).contains("Allowed-Connections")) - updated.getMap("Settings").getMap("SubData").safeSet("Whitelist", existing.getMap("Settings").getMap("SubData").getRawStringList("Allowed-Connections")); + } if (was.compareTo(new Version("19w35c")) <= 0) { + if (existing.getMap("Settings", new YAMLSection()).contains("SubData")) { + LinkedList whitelist = new LinkedList<>(); + LinkedList newWhitelist = new LinkedList<>(); + whitelist.addAll(existing.getMap("Settings", new YAMLSection()).getMap("SubData", new YAMLSection()).getStringList("Allowed-Connections", Collections.emptyList())); + whitelist.addAll(existing.getMap("Settings", new YAMLSection()).getMap("SubData", new YAMLSection()).getStringList("Whitelist", Collections.emptyList())); + + boolean warnPls = false; + for (String address : whitelist) { + Matcher regAddress = Pattern.compile("^(\\d{1,3}|%)\\.(\\d{1,3}|%)\\.(\\d{1,3}|%)\\.(\\d{1,3}|%)$").matcher(address); + if (regAddress.find()) { + StringBuilder newAddress = new StringBuilder(); + int subnet = -1; + boolean warn = false; + for (int o = 1; o <= 4; o++) { + if (o > 1) newAddress.append('.'); + if (subnet == -1) { + if (!regAddress.group(o).equals("%")) { + newAddress.append(regAddress.group(o)); + } else { + subnet = 8 * (o - 1); + newAddress.append('0'); + } + } else { + if (!regAddress.group(o).equals("%")) warn = warnPls = true; + newAddress.append('0'); + } + } + if (subnet < 0) subnet = 32; + if (warn) Logger.get("SubServers").warning("Updating non-standard mask: " + address); + newAddress.append('/'); + newAddress.append(subnet); + newWhitelist.add(newAddress.toString()); + } + } + updated.getMap("Settings").getMap("SubData").set("Whitelist", newWhitelist); + if (warnPls) Logger.get("SubServers").warning("Non-standard masks have been updated. This may expose SubData to unintended networks!"); + } existing = updated.clone(); i++; }// if (was.compareTo(new Version("99w99a")) <= 0) { // // do something + // existing = updated.clone(); // i++ //} @@ -250,7 +290,7 @@ public class ConfigUpdater { lang.set("Bungee.Feature.Smart-Fallback.Result", updated.getMap("Lang", new YAMLSection()).getRawString("Bungee.Feature.Smart-Fallback.Result", "&6You are now on $str$.")); lang.set("Bungee.Ping.Offline", updated.getMap("Lang", new YAMLSection()).getRawString("Bungee.Ping.Offline", "&6&l[&e&lWarning&6&l] &7Backend server(s) are not running")); lang.set("Bungee.Server.Current", updated.getMap("Lang", new YAMLSection()).getRawString("Bungee.Server.Current", "&6You are currently connected to $str$")); - lang.set("Bungee.Server.Available", updated.getMap("Lang", new YAMLSection()).getRawString("Bungee.Server.Available", "&6You may connect to the following servers at this tRime:")); + lang.set("Bungee.Server.Available", updated.getMap("Lang", new YAMLSection()).getRawString("Bungee.Server.Available", "&6You may connect to the following servers at this time:")); lang.set("Bungee.Server.List", updated.getMap("Lang", new YAMLSection()).getRawString("Bungee.Server.List", "&6$str$")); lang.set("Bungee.Server.Hover", updated.getMap("Lang", new YAMLSection()).getRawString("Bungee.Server.Hover", "$int$ player(s)\n&oClick to connect to the server")); lang.set("Bungee.Server.Divider", updated.getMap("Lang", new YAMLSection()).getRawString("Bungee.Server.Divider", "&6, ")); diff --git a/SubServers.Client/Bukkit/pom.xml b/SubServers.Client/Bukkit/pom.xml index 60f8802e..9d27cf0a 100644 --- a/SubServers.Client/Bukkit/pom.xml +++ b/SubServers.Client/Bukkit/pom.xml @@ -48,14 +48,14 @@ net.ME1312.Galaxi GalaxiUtil - 19w28a + 19w39b compile true net.ME1312.SubData Client - 19w26a + 19w39a compile true diff --git a/SubServers.Client/Sponge/pom.xml b/SubServers.Client/Sponge/pom.xml index c177c595..15e50367 100644 --- a/SubServers.Client/Sponge/pom.xml +++ b/SubServers.Client/Sponge/pom.xml @@ -30,14 +30,14 @@ net.ME1312.Galaxi GalaxiUtil - 19w28a + 19w39b compile true net.ME1312.SubData Client - 19w26a + 19w39a compile true diff --git a/SubServers.Console/src/net/ME1312/SubServers/Console/ConsoleWindow.java b/SubServers.Console/src/net/ME1312/SubServers/Console/ConsoleWindow.java index 988f286e..47e51d72 100644 --- a/SubServers.Console/src/net/ME1312/SubServers/Console/ConsoleWindow.java +++ b/SubServers.Console/src/net/ME1312/SubServers/Console/ConsoleWindow.java @@ -132,7 +132,7 @@ public final class ConsoleWindow implements SubLogFilter { } break; case KeyEvent.VK_F: - if (kpressed[KeyEvent.VK_SHIFT] == Boolean.TRUE) { + if ((event.getModifiers() & ActionEvent.CTRL_MASK) == ActionEvent.CTRL_MASK && kpressed[KeyEvent.VK_SHIFT] == Boolean.TRUE) { boolean open = false; if (ifocus) { findT.setText(input.getSelectedText()); diff --git a/SubServers.Host/pom.xml b/SubServers.Host/pom.xml index cd33b893..5009b64e 100644 --- a/SubServers.Host/pom.xml +++ b/SubServers.Host/pom.xml @@ -20,14 +20,14 @@ net.ME1312.Galaxi GalaxiEngine - 19w28a + 19w39b compile true net.ME1312.SubData Client - 19w26a + 19w39a compile true diff --git a/SubServers.Sync/pom.xml b/SubServers.Sync/pom.xml index 5ab66ab7..564b3aa6 100644 --- a/SubServers.Sync/pom.xml +++ b/SubServers.Sync/pom.xml @@ -30,20 +30,20 @@ net.ME1312.Galaxi GalaxiUtil - 19w28a + 19w39b compile true net.ME1312.Galaxi GalaxiEngine - 19w28a + 19w39b provided net.ME1312.SubData Client - 19w26a + 19w39a compile true