@@ -7,7 +7,6 @@ import com.mojang.brigadier.CommandDispatcher
77import com.mojang.brigadier.builder.LiteralArgumentBuilder
88import com.mojang.brigadier.context.CommandContext
99import net.minecraft.command.CommandSource
10- import net.minecraft.command.Commands
1110import org.apache.logging.log4j.LogManager
1211import org.apache.logging.log4j.MarkerManager
1312
@@ -51,19 +50,28 @@ abstract class CommandBase(
5150 * @since 2.0.0-SNAPSHOT.1.
5251 */
5352 override fun register (dispatcher : CommandDispatcher <CommandSource >) {
53+ fun hack (value : String ) = try {
54+ with (literal.javaClass.getDeclaredField(" literal" )) {
55+ isAccessible = true
56+ set(literal, value)
57+ }
58+ } catch (any: Exception ) {
59+ logger.error(" Failed register alias $value for $name " )
60+ }
61+
5462 if (ModuleAPI .isModuleExist(" cooldown" )) {
5563 CommandAliases .aliases[name] = aliases.toMutableList()
5664 }
5765
5866 if (actionNeed) {
59- val literalNode = dispatcher.register(literal.executes(:: process) )
60- aliases.filter { it != name }.forEach {
61- dispatcher.register(Commands . literal(it) .executes(:: process).redirect(literalNode))
67+ dispatcher.register(literal.executes { process(it) } )
68+ aliases.filter { it != name }.forEach { alias ->
69+ hack(alias). run { dispatcher.register(literal.executes { process(it) }) }
6270 }
6371 } else {
64- val literalNode = dispatcher.register(literal)
65- aliases.filter { it != name }.forEach {
66- dispatcher.register(Commands . literal(it).redirect(literalNode))
72+ dispatcher.register(literal)
73+ aliases.filter { it != name }.forEach { alias ->
74+ hack(alias). run { dispatcher.register(literal) }
6775 }
6876 }
6977 }
0 commit comments