From a57a6030b1e5acffefeb1d4ce0e872c60ee04e2c Mon Sep 17 00:00:00 2001 From: LunaWasFlaggedAgain <90072930+LunaWasFlaggedAgain@users.noreply.github.com> Date: Mon, 13 Sep 2021 15:50:24 -0300 Subject: [PATCH] Cleaned up code + unblocked a few things (#301) --- .../modules/player/PlayerConnection.java | 26 ++++--- .../extras/modules/server/ServerCommand.java | 68 ++++++------------- 2 files changed, 35 insertions(+), 59 deletions(-) diff --git a/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java b/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java index 236d829..104ccf7 100644 --- a/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java +++ b/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java @@ -23,6 +23,17 @@ import pw.kaboom.extras.Main; import pw.kaboom.extras.modules.server.ServerTabComplete; public final class PlayerConnection implements Listener { + + private final String title = JavaPlugin.getPlugin(Main.class).getConfig().getString("playerJoinTitle"); + private final String subtitle = JavaPlugin.getPlugin(Main.class).getConfig().getString("playerJoinSubtitle"); + private final int fadeIn = 10; + private final int stay = 160; + private final int fadeOut = 5; + private final boolean enableKick = JavaPlugin.getPlugin(Main.class).getConfig().getBoolean("enableKick"); + private final boolean enableJoinRestrictions = JavaPlugin.getPlugin(Main.class).getConfig().getBoolean("enableJoinRestrictions"); + private final boolean allowJoinOnFullServer = JavaPlugin.getPlugin(Main.class).getConfig().getBoolean("allowJoinOnFullServer"); + private final boolean opOnJoin = JavaPlugin.getPlugin(Main.class).getConfig().getBoolean("opOnJoin"); + @EventHandler void onAsyncPlayerPreLogin(final AsyncPlayerPreLoginEvent event) { if (Bukkit.getPlayer(event.getName()) != null @@ -46,11 +57,6 @@ public final class PlayerConnection implements Listener { @EventHandler void onPlayerJoin(final PlayerJoinEvent event) { final Player player = event.getPlayer(); - final String title = JavaPlugin.getPlugin(Main.class).getConfig().getString("playerJoinTitle"); - final String subtitle = JavaPlugin.getPlugin(Main.class).getConfig().getString("playerJoinSubtitle"); - final int fadeIn = 10; - final int stay = 160; - final int fadeOut = 5; if (title != null || subtitle != null) { @@ -68,7 +74,7 @@ public final class PlayerConnection implements Listener { @EventHandler void onPlayerKick(final PlayerKickEvent event) { - if (!JavaPlugin.getPlugin(Main.class).getConfig().getBoolean("enableKick")) { + if (!enableKick) { event.setCancelled(true); } } @@ -81,19 +87,17 @@ public final class PlayerConnection implements Listener { return; } - if (!JavaPlugin.getPlugin(Main.class).getConfig().getBoolean("enableJoinRestrictions")) { + if (!enableJoinRestrictions) { event.allow(); } - if (Result.KICK_FULL.equals(event.getResult()) - && JavaPlugin.getPlugin(Main.class).getConfig().getBoolean("allowJoinOnFullServer")) { + if (Result.KICK_FULL.equals(event.getResult()) && allowJoinOnFullServer) { event.allow(); } final Player player = event.getPlayer(); - if (JavaPlugin.getPlugin(Main.class).getConfig().getBoolean("opOnJoin") - && !player.isOp()) { + if (opOnJoin && !player.isOp()) { player.setOp(true); } diff --git a/src/main/java/pw/kaboom/extras/modules/server/ServerCommand.java b/src/main/java/pw/kaboom/extras/modules/server/ServerCommand.java index bef284f..ba11ae6 100644 --- a/src/main/java/pw/kaboom/extras/modules/server/ServerCommand.java +++ b/src/main/java/pw/kaboom/extras/modules/server/ServerCommand.java @@ -3,6 +3,8 @@ package pw.kaboom.extras.modules.server; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.Arrays; + import org.bukkit.block.CommandBlock; import org.bukkit.command.BlockCommandSender; import org.bukkit.command.CommandSender; @@ -16,17 +18,10 @@ public final class ServerCommand implements Listener { public static boolean checkExecuteCommand(final String cmd) { return ("execute".equalsIgnoreCase(cmd) - || "banlist".equalsIgnoreCase(cmd) || "clone".equalsIgnoreCase(cmd) - || "data".equalsIgnoreCase(cmd) - || "datapack".equalsIgnoreCase(cmd) - || "debug".equalsIgnoreCase(cmd) - || "difficulty".equalsIgnoreCase(cmd) || "fill".equalsIgnoreCase(cmd) || "forceload".equalsIgnoreCase(cmd) - || "help".equalsIgnoreCase(cmd) || "kick".equalsIgnoreCase(cmd) - || "list".equalsIgnoreCase(cmd) || "locate".equalsIgnoreCase(cmd) || "locatebiome".equalsIgnoreCase(cmd) || "me".equalsIgnoreCase(cmd) @@ -34,11 +29,8 @@ public final class ServerCommand implements Listener { || "reload".equalsIgnoreCase(cmd) || "save-all".equalsIgnoreCase(cmd) || "say".equalsIgnoreCase(cmd) - || "seed".equalsIgnoreCase(cmd) - || "setblock".equalsIgnoreCase(cmd) || "spreadplayers".equalsIgnoreCase(cmd) || "stop".equalsIgnoreCase(cmd) - || "summon".equalsIgnoreCase(cmd) || "teammsg".equalsIgnoreCase(cmd) || "teleport".equalsIgnoreCase(cmd) || "tell".equalsIgnoreCase(cmd) @@ -46,7 +38,6 @@ public final class ServerCommand implements Listener { || "tm".equalsIgnoreCase(cmd) || "tp".equalsIgnoreCase(cmd) || "w".equalsIgnoreCase(cmd) - || "whitelist".equalsIgnoreCase(cmd) ); } public static String checkCommand(final CommandSender sender, final String command, final boolean isConsoleCommand) { @@ -92,45 +83,25 @@ public final class ServerCommand implements Listener { for (int i = 1; i < arr.length; i++) { if ("run".equalsIgnoreCase(arr[i])) { - if (i + 1 < arr.length) { - if (checkExecuteCommand(arr[i + 1])) { - return "cancel"; - } else if (i + 3 < arr.length - && "gamerule".equalsIgnoreCase(arr[i + 1])) { - if ("randomTickSpeed".equalsIgnoreCase(arr[i + 2]) - && Double.parseDouble(arr[i + 3]) > 6) { - return command.replaceFirst("(?i)" + "randomTickSpeed " + arr[i + 3], "randomTickSpeed 6"); - } - } else if ("give".equalsIgnoreCase(arr[i + 1])) { - if (Double.parseDouble(arr[arr.length - 1]) > 64) { - // Limit item count - arr[arr.length - 1] = "64"; - return String.join(" ", arr); - } - } else if ("particle".equalsIgnoreCase(arr[i + 1])) { - int[] numArgs = {i + 15, i + 11}; - for (int j : numArgs) { - if (arr.length < j || arr.length > j + 2) { - continue; - } - if (Double.parseDouble(arr[j - 1]) > 10) { - // Limit particle count - arr[j - 1] = "10"; - return String.join(" ", arr); - } - } - } else if ("bossbar".equalsIgnoreCase(arr[i + 1]) - || "fill".equalsIgnoreCase(arr[i + 1]) - || "setblock".equalsIgnoreCase(arr[i + 1]) - || "tellraw".equalsIgnoreCase(arr[i + 1]) - || "title".equalsIgnoreCase(arr[i + 1])) { - final String charCommand = parseCharCodes(command); - if (charCommand.contains("selector")) { + if (i + 1 == arr.length) { + break; + } + if (checkExecuteCommand(arr[i + 1])) { + return "cancel"; + } else { + final String[] executeCommand = Arrays.copyOfRange(arr, i + 1, arr.length); + String result = checkCommand(sender, String.join(" ", executeCommand), true); + if (result == null) { + break; + } + switch (result) { + case "cancel": return "cancel"; - } + default: + String pureExecute = String.join(" ", Arrays.copyOfRange(arr, 0, i + 1)); + return (pureExecute + " " + result); } } - break; } } } @@ -143,6 +114,7 @@ public final class ServerCommand implements Listener { if (command.contains("selector")) { return "cancel"; } + break; case "/minecraft:gamerule": case "/gamerule": if (arr.length >= 3) { @@ -176,7 +148,7 @@ public final class ServerCommand implements Listener { break; case "/minecraft:spreadplayers": case "/spreadplayers": - if (arr.length == 7 && arr[6].contains("@")) { + if (arr.length == 7 && (arr[6].contains("@e") || arr[6].contains("@a"))) { return "cancel"; } else if (arr.length >= 5) { if (Double.parseDouble(arr[3]) > 0) {