From 531c27b11d3cb78392a2f8159d91605dc18c0342 Mon Sep 17 00:00:00 2001 From: VarLong <173472493+OptimisticDeving@users.noreply.github.com> Date: Sun, 26 Jan 2025 15:42:37 +0000 Subject: [PATCH] Fix for execute crash (#368) --- .../pw/kaboom/extras/modules/server/ServerCommand.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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 13015f5..d724801 100644 --- a/src/main/java/pw/kaboom/extras/modules/server/ServerCommand.java +++ b/src/main/java/pw/kaboom/extras/modules/server/ServerCommand.java @@ -36,8 +36,8 @@ public final class ServerCommand implements Listener { return false; } - private static String checkSelectors(final String[] arr) { - final String[] args = Arrays.copyOfRange(arr, 1, arr.length); + private static String checkSelectors(final String[] arr, final int offset) { + final String[] args = Arrays.copyOfRange(arr, offset, arr.length); final String str = String.join(" ", args); final Matcher matcher = SELECTOR_PATTERN.matcher(str); final long count = matcher.results().count(); @@ -79,6 +79,10 @@ public final class ServerCommand implements Listener { switch (commandName) { case "/minecraft:execute", "/execute" -> { if (arr.length >= 2) { + if (arr.length >= 3 && checkSelectors(arr, 2) != null) { + return "cancel"; + } + for (int i = 1; i < arr.length; i++) { if ("summon".equalsIgnoreCase(arr[i])) { return "cancel"; @@ -138,7 +142,7 @@ public final class ServerCommand implements Listener { case "/minecraft:ban", "/ban", "/minecraft:kick", "/kick", "/minecraft:tell", "/tell", "/minecraft:msg", "/msg", "/minecraft:w", "/w", "/minecraft:say", "/say" -> { - return checkSelectors(arr); + return checkSelectors(arr, 1); } case "/minecraft:spreadplayers", "/spreadplayers" -> { if (arr.length == 7 && (arr[6].contains("@e") || arr[6].contains("@a"))) {