From 8a86f0513350e51fee73547fade26ef4a0adb070 Mon Sep 17 00:00:00 2001 From: rayzsyt Date: Tue, 17 Feb 2026 03:10:57 +0100 Subject: [PATCH] Fixed that proxies would create non-existing command tab-completions --- .../de/rayzs/pat/plugin/subarguments/SubArguments.java | 10 +++++++--- .../rayzs/pat/utils/node/ProxyCommandNodeHelper.java | 7 ++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/rayzs/pat/plugin/subarguments/SubArguments.java b/src/main/java/de/rayzs/pat/plugin/subarguments/SubArguments.java index 9750023e..a2514175 100644 --- a/src/main/java/de/rayzs/pat/plugin/subarguments/SubArguments.java +++ b/src/main/java/de/rayzs/pat/plugin/subarguments/SubArguments.java @@ -78,6 +78,7 @@ public class SubArguments { } final List inputs = source.getAllInputs(); + final List actuallyExistingCommands = helper.getChildrenNames(); if (turn) { List allEntries = inputs.stream().map(StringUtils::getFirstArg).toList(); @@ -98,8 +99,9 @@ public class SubArguments { if (!negated) { - if (turn) helper.add(input, true); - else helper.removeSubArguments(input); + if (turn && actuallyExistingCommands.contains(StringUtils.getFirstArg(input))) { + helper.add(input, true); + } else helper.removeSubArguments(input); continue; } @@ -112,7 +114,9 @@ public class SubArguments { input = Storage.Blacklist.BlockTypeFetcher.cleanse(input); if (turn) helper.removeSubArguments(input); - else helper.add(input, true); + else if (actuallyExistingCommands.contains(StringUtils.getFirstArg(input))) { + helper.add(input, true); + } } } diff --git a/src/main/java/de/rayzs/pat/utils/node/ProxyCommandNodeHelper.java b/src/main/java/de/rayzs/pat/utils/node/ProxyCommandNodeHelper.java index a5fda46c..a01d50a4 100644 --- a/src/main/java/de/rayzs/pat/utils/node/ProxyCommandNodeHelper.java +++ b/src/main/java/de/rayzs/pat/utils/node/ProxyCommandNodeHelper.java @@ -150,8 +150,13 @@ public class ProxyCommandNodeHelper { String part = args[index]; - if (index == 0) + if (index == 0) { part = Storage.Blacklist.BlockTypeFetcher.modify(Storage.Blacklist.BlockTypeFetcher.modify(part)); + } + + if (part.length() > 1 && part.startsWith("%") && part.endsWith("%")) { + return; + } String next = index + 1 >= args.length ? null : args[index + 1]; CommandNode childNode = parent.getChild(part);