From a797e89c14dd9468a211d3580f4007a52b39dd76 Mon Sep 17 00:00:00 2001 From: Tad Hunt Date: Sun, 6 Nov 2022 09:54:54 -0700 Subject: [PATCH] change allowlist implementation to HashMap & don't leak the implementation outside of the ServerProperties class --- src/main/java/com/loohp/limbo/Limbo.java | 10 ++++------ .../com/loohp/limbo/file/ServerProperties.java | 14 +++++++++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/loohp/limbo/Limbo.java b/src/main/java/com/loohp/limbo/Limbo.java index 52fad0f..9ccf1f1 100644 --- a/src/main/java/com/loohp/limbo/Limbo.java +++ b/src/main/java/com/loohp/limbo/Limbo.java @@ -442,13 +442,11 @@ public class Limbo { return true; } - for (UUID allowedUuid : properties.getAllowlist()) { - if (requestedUuid.equals(allowedUuid)) { - if(!properties.isReducedDebugInfo()) { - Limbo.getInstance().getConsole().sendMessage(String.format("allowlist: %s allowed", requestedUuid.toString())); - } - return true; + if (properties.uuidIsAllowed(requestedUuid)) { + if(!properties.isReducedDebugInfo()) { + Limbo.getInstance().getConsole().sendMessage(String.format("allowlist: %s allowed", requestedUuid.toString())); } + return true; } if(!properties.isReducedDebugInfo()) { diff --git a/src/main/java/com/loohp/limbo/file/ServerProperties.java b/src/main/java/com/loohp/limbo/file/ServerProperties.java index 7da1b91..8446494 100644 --- a/src/main/java/com/loohp/limbo/file/ServerProperties.java +++ b/src/main/java/com/loohp/limbo/file/ServerProperties.java @@ -31,6 +31,7 @@ import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map.Entry; @@ -84,7 +85,7 @@ public class ServerProperties { private double ticksPerSecond; private boolean handshakeVerbose; private boolean enforceAllowlist; - private ArrayList allowlist; + private HashMap allowlist; private String resourcePackSHA1; private String resourcePackLink; @@ -208,7 +209,7 @@ public class ServerProperties { public void reloadAllowlist() { Console console = Limbo.getInstance().getConsole(); - allowlist = new ArrayList(); + allowlist = new HashMap(); try { JSONParser parser = new JSONParser(); Object obj = parser.parse(new FileReader("allowlist.json")); @@ -241,7 +242,7 @@ public class ServerProperties { String uuidStr = (String) o; UUID allowedUuid = UUID.fromString(uuidStr); - allowlist.add(allowedUuid); + allowlist.put(allowedUuid, true); } } catch (IllegalArgumentException e) { console.sendMessage(e.toString()); @@ -368,8 +369,11 @@ public class ServerProperties { return enforceAllowlist; } - public ArrayList getAllowlist() { - return allowlist; + public boolean uuidIsAllowed(UUID requestedUuid) { + if (allowlist.containsKey(requestedUuid)) { + return true; + } + return false; } public String getResourcePackLink() {