diff --git a/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java b/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java index abf13331..618d76ab 100644 --- a/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java +++ b/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java @@ -684,9 +684,7 @@ public final class CloudBrigadierManager { final Method getNodesMethod = commandContext.getClass().getDeclaredMethod("getNodes"); final Object nodes = getNodesMethod.invoke(commandContext); if (nodes instanceof List) { - return ((List>) nodes).stream() - .map(n -> Pair.of(n.getNode(), n.getRange())) - .collect(Collectors.toList()); + return ParsedCommandNodeHandler.toPairList((List) nodes); } else if (nodes instanceof Map) { return ((Map, StringRange>) nodes).entrySet().stream() .map(entry -> Pair.of(entry.getKey(), entry.getValue())) @@ -698,4 +696,17 @@ public final class CloudBrigadierManager { throw new RuntimeException(ex); } } + + // Inner class to prevent attempting to load ParsedCommandNode when it doesn't exist + private static final class ParsedCommandNodeHandler { + private ParsedCommandNodeHandler() { + } + + private static List, StringRange>> toPairList(List nodes) { + return ((List>) nodes).stream() + .map(n -> Pair.of(n.getNode(), n.getRange())) + .collect(Collectors.toList()); + } + + } }