diff --git a/nms-patches/net/minecraft/commands/CommandDispatcher.patch b/nms-patches/net/minecraft/commands/CommandDispatcher.patch index ae67fca8a..ef71fa55f 100644 --- a/nms-patches/net/minecraft/commands/CommandDispatcher.patch +++ b/nms-patches/net/minecraft/commands/CommandDispatcher.patch @@ -22,7 +22,7 @@ CommandAdvancement.a(this.b); CommandAttribute.a(this.b); CommandExecute.a(this.b); -@@ -188,14 +197,57 @@ +@@ -188,17 +197,61 @@ } this.b.findAmbiguities((commandnode, commandnode1, commandnode2, collection) -> { @@ -71,19 +71,24 @@ + args[0] = "minecraft:" + args[0]; + } + -+ return this.a(sender, joiner.join(args)); ++ String newCommand = joiner.join(args); ++ return this.a(sender, newCommand, newCommand, false); + } + public int a(CommandListenerWrapper commandlistenerwrapper, String s) { -+ return this.a(commandlistenerwrapper, s, s); ++ return this.a(commandlistenerwrapper, s, s, true); + } + -+ public int a(CommandListenerWrapper commandlistenerwrapper, String s, String label) { -+ // CraftBukkit end ++ public int a(CommandListenerWrapper commandlistenerwrapper, String s, String label, boolean stripSlash) { StringReader stringreader = new StringReader(s); - if (stringreader.canRead() && stringreader.peek() == '/') { -@@ -222,7 +274,7 @@ +- if (stringreader.canRead() && stringreader.peek() == '/') { ++ if (stripSlash && stringreader.canRead() && stringreader.peek() == '/') { ++ // CraftBukkit end + stringreader.skip(); + } + +@@ -222,7 +275,7 @@ if (commandsyntaxexception.getInput() != null && commandsyntaxexception.getCursor() >= 0) { int j = Math.min(commandsyntaxexception.getInput().length(), commandsyntaxexception.getCursor()); IChatMutableComponent ichatmutablecomponent = (new ChatComponentText("")).a(EnumChatFormat.GRAY).format((chatmodifier) -> { @@ -92,7 +97,7 @@ }); if (j > 10) { -@@ -272,11 +324,36 @@ +@@ -272,11 +325,36 @@ } public void a(EntityPlayer entityplayer) { @@ -130,7 +135,7 @@ entityplayer.playerConnection.sendPacket(new PacketPlayOutCommands(rootcommandnode)); } -@@ -287,7 +364,7 @@ +@@ -287,7 +365,7 @@ CommandNode commandnode2 = (CommandNode) iterator.next(); if (commandnode2.canUse(commandlistenerwrapper)) { @@ -139,7 +144,7 @@ argumentbuilder.requires((icompletionprovider) -> { return true; -@@ -310,7 +387,7 @@ +@@ -310,7 +388,7 @@ argumentbuilder.redirect((CommandNode) map.get(argumentbuilder.getRedirect())); } diff --git a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java index 5702f18cd..56a066512 100644 --- a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java +++ b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java @@ -42,7 +42,7 @@ public final class VanillaCommandWrapper extends BukkitCommand { if (!testPermission(sender)) return true; CommandListenerWrapper icommandlistener = getListener(sender); - dispatcher.a(icommandlistener, toDispatcher(args, getName()), toDispatcher(args, commandLabel)); + dispatcher.a(icommandlistener, toDispatcher(args, getName()), toDispatcher(args, commandLabel), true); return true; }