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 cf667923..38820acb 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 @@ -31,6 +31,7 @@ import cloud.commandframework.arguments.StaticArgument; import cloud.commandframework.arguments.compound.CompoundArgument; import cloud.commandframework.arguments.compound.FlagArgument; import cloud.commandframework.arguments.parser.ArgumentParser; +import cloud.commandframework.arguments.parser.MappedArgumentParser; import cloud.commandframework.arguments.standard.BooleanArgument; import cloud.commandframework.arguments.standard.ByteArgument; import cloud.commandframework.arguments.standard.DoubleArgument; @@ -387,7 +388,12 @@ public final class CloudBrigadierManager { final @NonNull TypeToken argumentType, final @NonNull K argument ) { - final ArgumentParser commandArgument = (ArgumentParser) argument; + /* Unwrap mapped arguments */ + ArgumentParser commandArgument = (ArgumentParser) argument; + while (commandArgument instanceof MappedArgumentParser) { + commandArgument = ((MappedArgumentParser) commandArgument).getBaseParser(); + } + final BrigadierMapping mapping = (BrigadierMapping) this.mappers .get(GenericTypeReflector.erase(argumentType.getType())); if (mapping == null || mapping.getMapper() == null) {