Skip to content

Commit 7db2e9e

Browse files
committed
Initial commit for a hotfix
Regards Paper 1.20.6, build 65+, they've merged the Brigadier command API and removed the vanillaCommandDispatcher field.
1 parent 36ddedb commit 7db2e9e

File tree

1 file changed

+13
-1
lines changed
  • commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms

1 file changed

+13
-1
lines changed

commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.mojang.brigadier.tree.CommandNode;
2929
import dev.jorel.commandapi.CommandAPIBukkit;
3030
import dev.jorel.commandapi.CommandAPIHandler;
31+
import dev.jorel.commandapi.SafeVarHandle;
3132
import dev.jorel.commandapi.arguments.ArgumentSubType;
3233
import dev.jorel.commandapi.arguments.SuggestionProviders;
3334
import dev.jorel.commandapi.commandsenders.AbstractCommandSender;
@@ -92,6 +93,12 @@
9293
*/
9394
public abstract class NMS_Common extends CommandAPIBukkit<CommandSourceStack> {
9495

96+
private static final SafeVarHandle<MinecraftServer, CommandDispatcher> commandDispatcher;
97+
98+
static {
99+
commandDispatcher = SafeVarHandle.ofOrNull(MinecraftServer.class, "vanillaCommandDispatcher", "vanillaCommandDispatcher", CommandDispatcher.class);
100+
}
101+
95102
private static NamespacedKey fromResourceLocation(ResourceLocation key) {
96103
return NamespacedKey.fromString(key.getNamespace() + ":" + key.getPath());
97104
}
@@ -350,7 +357,12 @@ public abstract Predicate<Block> getBlockPredicate(CommandContext<CommandSourceS
350357

351358
@Override
352359
public final CommandDispatcher<CommandSourceStack> getBrigadierDispatcher() {
353-
return this.<MinecraftServer>getMinecraftServer().vanillaCommandDispatcher.getDispatcher();
360+
if (commandDispatcher != null) {
361+
return this.<MinecraftServer>getMinecraftServer().vanillaCommandDispatcher.getDispatcher();
362+
} else {
363+
// Hoping this actually acts as a hotfix and commands at least register with Paper 1.20.6 build 65
364+
return getResourcesDispatcher();
365+
}
354366
}
355367

356368
@Override

0 commit comments

Comments
 (0)