From acb23705d8bca16b7a0337d3684f3b590d4dcbbb Mon Sep 17 00:00:00 2001 From: yoyosource Date: Wed, 8 Dec 2021 17:45:01 +0100 Subject: [PATCH] Hotfix SubCommand --- SpigotCore_Main/src/de/steamwar/command/SubCommand.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/SpigotCore_Main/src/de/steamwar/command/SubCommand.java b/SpigotCore_Main/src/de/steamwar/command/SubCommand.java index 0db26e8..f83aa76 100644 --- a/SpigotCore_Main/src/de/steamwar/command/SubCommand.java +++ b/SpigotCore_Main/src/de/steamwar/command/SubCommand.java @@ -45,7 +45,7 @@ class SubCommand { GuardChecker guardChecker; Class varArgType = null; private boolean help; - boolean noTabComplete = false; + boolean noTabComplete; SubCommand(SWCommand swCommand, Method method, String[] subCommand, Map> localTypeMapper, Map localGuardChecker, boolean help, String[] description, boolean noTabComplete) { this.swCommand = swCommand; @@ -71,7 +71,8 @@ class SubCommand { } SWCommand.Mapper mapper = parameter.getAnnotation(SWCommand.Mapper.class); - if (clazz.isEnum() && mapper == null && !MAPPER_FUNCTIONS.containsKey(clazz.getTypeName()) && !localTypeMapper.containsKey(clazz.getTypeName())) { + SWCommand.ClassMapper classMapper = parameter.getAnnotation(SWCommand.ClassMapper.class); + if (clazz.isEnum() && mapper == null && classMapper == null && !MAPPER_FUNCTIONS.containsKey(clazz.getTypeName()) && !localTypeMapper.containsKey(clazz.getTypeName())) { Class> enumClass = (Class>) clazz; List tabCompletes = new ArrayList<>(); for (Enum enumConstant : enumClass.getEnumConstants()) { @@ -82,7 +83,9 @@ class SubCommand { } String name = clazz.getTypeName(); - if (mapper != null) { + if (classMapper != null) { + name = classMapper.value().getTypeName(); + } else if (mapper != null) { name = mapper.value(); } else { SWCommand.StaticValue staticValue = parameter.getAnnotation(SWCommand.StaticValue.class);