diff --git a/nms-patches/CommandDispatcher.patch b/nms-patches/CommandDispatcher.patch index f199c5b4fb..cc91a04785 100644 --- a/nms-patches/CommandDispatcher.patch +++ b/nms-patches/CommandDispatcher.patch @@ -140,10 +140,20 @@ argumentbuilder.requires((icompletionprovider) -> { return true; -@@ -222,7 +301,7 @@ - argumentbuilder.redirect((CommandNode) map.get(argumentbuilder.getRedirect())); +@@ -218,11 +297,15 @@ + } } +- if (argumentbuilder.getRedirect() != null) { +- argumentbuilder.redirect((CommandNode) map.get(argumentbuilder.getRedirect())); ++ // Craftbukkit start - fix redirected CommandNodes not being properly redirected if it is mapped after commandNode2 ++ CommandNode destination = commandnode2.getRedirect(); ++ if (destination != null) { ++ this.a(destination, (CommandNode) destination.createBuilder().build(), commandlistenerwrapper, map); ++ argumentbuilder.redirect((CommandNode) map.get(destination)); + } ++ // Craftbukkit end + - CommandNode commandnode3 = argumentbuilder.build(); + CommandNode commandnode3 = argumentbuilder.build(); // CraftBukkit - decompile error