From 812e2daa3b749322b4f3f2cc3396944fc5fc870c Mon Sep 17 00:00:00 2001 From: Shadowrs Date: Tue, 28 Aug 2018 14:35:51 +0100 Subject: [PATCH 1/4] Add -uuid flag as an alternative to -server quicklaunch arg --- src/main/java/org/parabot/Landing.java | 3 +++ src/main/java/org/parabot/core/Core.java | 3 ++- .../org/parabot/core/desc/ServerDescription.java | 1 + .../core/parsers/servers/LocalServers.java | 11 +++++++++-- .../java/org/parabot/core/ui/ServerSelector.java | 16 +++++++++++++--- 5 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/parabot/Landing.java b/src/main/java/org/parabot/Landing.java index 51c6a67..edbd93a 100644 --- a/src/main/java/org/parabot/Landing.java +++ b/src/main/java/org/parabot/Landing.java @@ -135,6 +135,9 @@ public final class Landing { case "-no_validation": Core.disableValidation(); break; + case "-uuid": + Core.quickLaunchByUuid = Integer.parseInt(args[++i]); + break; } } } diff --git a/src/main/java/org/parabot/core/Core.java b/src/main/java/org/parabot/core/Core.java index 68f8623..8f2a900 100644 --- a/src/main/java/org/parabot/core/Core.java +++ b/src/main/java/org/parabot/core/Core.java @@ -28,7 +28,8 @@ import java.security.NoSuchAlgorithmException; @SuppressWarnings("Duplicates") public class Core { - private static boolean debug; + public static int quickLaunchByUuid; // used like -server, but denoted by an Int rather than the server name + private static boolean debug; // in debug mode, we will print more detailed error messages. private static boolean verbose; private static boolean dump; private static boolean loadLocal; //Loads both local and public scripts/servers diff --git a/src/main/java/org/parabot/core/desc/ServerDescription.java b/src/main/java/org/parabot/core/desc/ServerDescription.java index 687410c..f3901da 100644 --- a/src/main/java/org/parabot/core/desc/ServerDescription.java +++ b/src/main/java/org/parabot/core/desc/ServerDescription.java @@ -9,6 +9,7 @@ public class ServerDescription implements Comparable { private String serverName; private String author; private double revision; + public int uuid; public ServerDescription(final String serverName, final String author, final double revision) { diff --git a/src/main/java/org/parabot/core/parsers/servers/LocalServers.java b/src/main/java/org/parabot/core/parsers/servers/LocalServers.java index eb0f698..3da0cf5 100644 --- a/src/main/java/org/parabot/core/parsers/servers/LocalServers.java +++ b/src/main/java/org/parabot/core/parsers/servers/LocalServers.java @@ -86,17 +86,24 @@ public class LocalServers extends ServerParser { if ((bank = object.get("bank")) != null) { bankTabs = (int) bank; } + String uuidStr = (String) object.get("uuid"); // optional + JSONObject locations = (JSONObject) object.get("locations"); String server = (String) locations.get("server"); String provider = (String) locations.get("provider"); String hooks = (String) locations.get("hooks"); + Core.verbose("[Local server]: " + name); + ServerProviderInfo serverProviderInfo = new ServerProviderInfo(server, hooks, name, clientClass, bankTabs); - ServerDescription desc = new ServerDescription(name, - author, version); + ServerDescription desc = new ServerDescription(name, author, version); + if (uuidStr != null && uuidStr.length() > 0) { + desc.uuid = Integer.parseInt(uuidStr); + } + SERVER_CACHE.put(desc, new LocalPublicServerExecuter(name, serverProviderInfo, server, provider)); } catch (IOException | ParseException e) { e.printStackTrace(); diff --git a/src/main/java/org/parabot/core/ui/ServerSelector.java b/src/main/java/org/parabot/core/ui/ServerSelector.java index 31da8dd..5b76fdd 100755 --- a/src/main/java/org/parabot/core/ui/ServerSelector.java +++ b/src/main/java/org/parabot/core/ui/ServerSelector.java @@ -1,5 +1,6 @@ package org.parabot.core.ui; +import org.parabot.core.Core; import org.parabot.core.desc.ServerDescription; import org.parabot.core.parsers.servers.ServerParser; import org.parabot.core.ui.components.ServerComponent; @@ -23,7 +24,7 @@ public class ServerSelector extends JPanel { public ServerSelector() { Queue widgets = getServers(); - if (initServer != null) { + if (initServer != null || Core.quickLaunchByUuid > 0) { if (runServer(widgets)) { initServer = null; return; @@ -67,7 +68,7 @@ public class ServerSelector extends JPanel { } /** - * This method is called when -server argument is given + * This method is called when -server argument is given, or -uuid arg is given. * * @param widgets */ @@ -75,7 +76,16 @@ public class ServerSelector extends JPanel { if (widgets == null || widgets.isEmpty()) { return false; } - final String serverName = initServer.toLowerCase(); + if (Core.quickLaunchByUuid > 0) { // match the pre-requested server config uuid to quick-launch + for (ServerComponent widget : widgets) { + if (widget.desc.uuid == Core.quickLaunchByUuid) { + Environment.load(widget.desc); + return true; + } + } + } + + final String serverName = initServer.toLowerCase(); // match the pre-requested server name to quick-launch for (ServerComponent widget : widgets) { if (widget.desc.getServerName().toLowerCase().equals(serverName)) { Environment.load(widget.desc); From 166eb9dbfb13d88ca8865c26b2a682dd29a83e11 Mon Sep 17 00:00:00 2001 From: Shadowrs Date: Tue, 28 Aug 2018 16:33:57 +0100 Subject: [PATCH 2/4] NPE Fix --- .../java/org/parabot/core/ui/ServerSelector.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/parabot/core/ui/ServerSelector.java b/src/main/java/org/parabot/core/ui/ServerSelector.java index 5b76fdd..289712d 100755 --- a/src/main/java/org/parabot/core/ui/ServerSelector.java +++ b/src/main/java/org/parabot/core/ui/ServerSelector.java @@ -85,11 +85,13 @@ public class ServerSelector extends JPanel { } } - final String serverName = initServer.toLowerCase(); // match the pre-requested server name to quick-launch - for (ServerComponent widget : widgets) { - if (widget.desc.getServerName().toLowerCase().equals(serverName)) { - Environment.load(widget.desc); - return true; + if (initServer != null) { + final String serverName = initServer.toLowerCase(); // match the pre-requested server name to quick-launch + for (ServerComponent widget : widgets) { + if (widget.desc.getServerName().toLowerCase().equals(serverName)) { + Environment.load(widget.desc); + return true; + } } } return false; From 43cfd1b17008c5f552d3930d2df4391861346a25 Mon Sep 17 00:00:00 2001 From: Shadowrs Date: Sat, 1 Sep 2018 20:18:38 +0100 Subject: [PATCH 3/4] Code style fixes --- src/main/java/org/parabot/Landing.java | 2 +- src/main/java/org/parabot/core/Core.java | 12 ++++++++++-- .../java/org/parabot/core/ui/ServerSelector.java | 8 +++++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/parabot/Landing.java b/src/main/java/org/parabot/Landing.java index edbd93a..b3a9ea2 100644 --- a/src/main/java/org/parabot/Landing.java +++ b/src/main/java/org/parabot/Landing.java @@ -136,7 +136,7 @@ public final class Landing { Core.disableValidation(); break; case "-uuid": - Core.quickLaunchByUuid = Integer.parseInt(args[++i]); + Core.setQuickLaunchByUuid(Integer.parseInt(args[++i])); break; } } diff --git a/src/main/java/org/parabot/core/Core.java b/src/main/java/org/parabot/core/Core.java index 8f2a900..7e17c12 100644 --- a/src/main/java/org/parabot/core/Core.java +++ b/src/main/java/org/parabot/core/Core.java @@ -28,8 +28,8 @@ import java.security.NoSuchAlgorithmException; @SuppressWarnings("Duplicates") public class Core { - public static int quickLaunchByUuid; // used like -server, but denoted by an Int rather than the server name - private static boolean debug; // in debug mode, we will print more detailed error messages. + private static int quickLaunchByUuid = -1; // used like -server, but denoted by an Int rather than the server name + private static boolean debug; // in debug mode, we will print more detailed error messages. private static boolean verbose; private static boolean dump; private static boolean loadLocal; //Loads both local and public scripts/servers @@ -47,6 +47,14 @@ public class Core { return validate; } + public static int getQuickLaunchByUuid() { + return quickLaunchByUuid; + } + + public static void setQuickLaunchByUuid(int quickLaunchByUuid) { + Core.quickLaunchByUuid = quickLaunchByUuid; + } + /** * Enabled loadLocal mode * diff --git a/src/main/java/org/parabot/core/ui/ServerSelector.java b/src/main/java/org/parabot/core/ui/ServerSelector.java index 289712d..97884d6 100755 --- a/src/main/java/org/parabot/core/ui/ServerSelector.java +++ b/src/main/java/org/parabot/core/ui/ServerSelector.java @@ -24,7 +24,7 @@ public class ServerSelector extends JPanel { public ServerSelector() { Queue widgets = getServers(); - if (initServer != null || Core.quickLaunchByUuid > 0) { + if (initServer != null || Core.getQuickLaunchByUuid() > -1) { if (runServer(widgets)) { initServer = null; return; @@ -76,13 +76,14 @@ public class ServerSelector extends JPanel { if (widgets == null || widgets.isEmpty()) { return false; } - if (Core.quickLaunchByUuid > 0) { // match the pre-requested server config uuid to quick-launch + if (Core.getQuickLaunchByUuid() > -1) { // match the pre-requested server config uuid to quick-launch for (ServerComponent widget : widgets) { - if (widget.desc.uuid == Core.quickLaunchByUuid) { + if (widget.desc.uuid == Core.getQuickLaunchByUuid()) { Environment.load(widget.desc); return true; } } + System.err.println("No server config with -uuid "+Core.getQuickLaunchByUuid()+" was found to quick launch."); } if (initServer != null) { @@ -93,6 +94,7 @@ public class ServerSelector extends JPanel { return true; } } + System.err.println("No server config with -server "+serverName+" was found to quick launch."); } return false; } From e8af65335b2022a7e8cc05636d0c28519c540c0b Mon Sep 17 00:00:00 2001 From: Shadowrs Date: Wed, 12 Sep 2018 00:59:46 +0100 Subject: [PATCH 4/4] Code style fixes --- src/main/java/org/parabot/core/ui/ServerSelector.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/parabot/core/ui/ServerSelector.java b/src/main/java/org/parabot/core/ui/ServerSelector.java index 97884d6..8140122 100755 --- a/src/main/java/org/parabot/core/ui/ServerSelector.java +++ b/src/main/java/org/parabot/core/ui/ServerSelector.java @@ -83,7 +83,7 @@ public class ServerSelector extends JPanel { return true; } } - System.err.println("No server config with -uuid "+Core.getQuickLaunchByUuid()+" was found to quick launch."); + System.err.println("No server config with -uuid " + Core.getQuickLaunchByUuid() + " was found to quick launch."); } if (initServer != null) { @@ -94,7 +94,7 @@ public class ServerSelector extends JPanel { return true; } } - System.err.println("No server config with -server "+serverName+" was found to quick launch."); + System.err.println("No server config with -server " + serverName + " was found to quick launch."); } return false; }