Skip to content

Commit 7555183

Browse files
committed
Cleran up the command logic
1 parent 13aa1dd commit 7555183

1 file changed

Lines changed: 31 additions & 44 deletions

File tree

Commands/src/main/java/org/broken/arrow/library/command/CommandRegister.java

Lines changed: 31 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -58,54 +58,31 @@ public CommandBuilder registerCommand(final Plugin plugin, final String mainComm
5858

5959
if (mainCommands.length > 0) {
6060
for (String main : mainCommands) {
61-
if (isCommandRegistered(main)) continue;
62-
commands.compute(main, (commandLabel, mainCommandHandler) -> {
63-
if (mainCommandHandler != null) {
64-
return null;
65-
}
66-
this.registerMainCommand(plugin.getName().toLowerCase(Locale.ROOT), main);
67-
return commandBuilder.getMainCommandHandler();
68-
});
61+
if (this.isCommandRegistered(main)) continue;
62+
this.registerCommand(plugin, main, commandBuilder);
6963
}
7064
return commandBuilder;
7165
}
72-
if (isCommandRegistered(mainCommand)) return commandBuilder;
73-
commands.compute(mainCommand, (commandLabel, mainCommandHandler) -> {
74-
if (mainCommandHandler != null) {
75-
return null;
76-
}
77-
this.registerMainCommand(plugin.getName().toLowerCase(Locale.ROOT), mainCommand);
78-
return commandBuilder.getMainCommandHandler();
79-
});
66+
if (this.isCommandRegistered(mainCommand)) return commandBuilder;
67+
this.registerCommand(plugin, mainCommand, commandBuilder);
8068
return commandBuilder;
8169
}
8270

71+
8372
@Override
8473
public void registerCommand(@Nonnull final Plugin plugin, @Nonnull final String mainCommand, @Nonnull final Consumer<CommandBuilder> callback) {
8574
final String[] mainCommands = mainCommand.split("\\|");
8675
final CommandBuilder commandBuilder = new CommandBuilder();
8776
callback.accept(commandBuilder);
8877
if (mainCommands.length > 0) {
8978
for (String main : mainCommands) {
90-
if (isCommandRegistered(main)) continue;
91-
commands.compute(main, (commandLabel, mainCommandHandler) -> {
92-
if (mainCommandHandler != null) {
93-
return null;
94-
}
95-
this.registerMainCommand(plugin.getName().toLowerCase(Locale.ROOT), main);
96-
return commandBuilder.getMainCommandHandler();
97-
});
79+
if (this.isCommandRegistered(main)) continue;
80+
this.registerCommand(plugin, main, commandBuilder);
9881
}
9982
return;
10083
}
101-
if (isCommandRegistered(mainCommand)) return;
102-
commands.compute(mainCommand, (commandLabel, mainCommandHandler) -> {
103-
if (mainCommandHandler != null) {
104-
return null;
105-
}
106-
this.registerMainCommand(plugin.getName().toLowerCase(Locale.ROOT), mainCommand);
107-
return commandBuilder.getMainCommandHandler();
108-
});
84+
if (this.isCommandRegistered(mainCommand)) return;
85+
this.registerCommand(plugin, mainCommand, commandBuilder);
10986
}
11087

11188
@Override
@@ -135,6 +112,23 @@ public static String translateColors(final String message) {
135112
return ChatColor.translateAlternateColorCodes('&', message);
136113
}
137114

115+
/**
116+
* Register the command both to both cache and server.
117+
*
118+
* @param plugin the plugin to register
119+
* @param main The main command to register.
120+
* @param commandBuilder The CommandRegistering instance.
121+
*/
122+
private void registerCommand(@Nonnull final Plugin plugin, @Nonnull final String main, @Nonnull final CommandBuilder commandBuilder) {
123+
commands.compute(main, (commandLabel, mainCommandHandler) -> {
124+
if (mainCommandHandler != null) {
125+
return null;
126+
}
127+
this.registerMainCommand(plugin.getName().toLowerCase(Locale.ROOT), main);
128+
return commandBuilder.getMainCommandHandler();
129+
});
130+
}
131+
138132
/**
139133
* Registers the main command with the specified fallback prefix, command, description, usage message, and aliases.
140134
* If the main command has already been registered, this method does nothing.
@@ -143,10 +137,8 @@ public static String translateColors(final String message) {
143137
* @param mainCommand The main command to register.
144138
* @return The CommandRegistering instance.
145139
*/
146-
private CommandRegistering registerMainCommand(String fallbackPrefix, String mainCommand) {
147-
final String description = "This is the command registered: " + mainCommand;
148-
final String usageMessage = "usage for command/" + mainCommand;
149-
return this.registerMainCommand(fallbackPrefix, mainCommand, description, usageMessage, new String[0]);
140+
private CommandRegistering registerMainCommand(@Nonnull final String fallbackPrefix, @Nonnull final String mainCommand) {
141+
return this.registerMainCommand(fallbackPrefix, mainCommand, new String[0]);
150142
}
151143

152144
/**
@@ -158,7 +150,7 @@ private CommandRegistering registerMainCommand(String fallbackPrefix, String mai
158150
* @param aliases The aliases of the main command.
159151
* @return The CommandRegistering instance.
160152
*/
161-
private CommandRegistering registerMainCommand(String fallbackPrefix, String mainCommand, String... aliases) {
153+
private CommandRegistering registerMainCommand(@Nonnull final String fallbackPrefix, @Nonnull final String mainCommand, @Nonnull final String... aliases) {
162154
final String description = "This is the command registered: " + mainCommand;
163155
final String usageMessage = "usage for command/" + mainCommand;
164156
return this.registerMainCommand(fallbackPrefix, mainCommand, description, usageMessage, aliases);
@@ -176,14 +168,9 @@ private CommandRegistering registerMainCommand(String fallbackPrefix, String mai
176168
* @return The CommandRegistering instance.
177169
*/
178170
private CommandRegistering registerMainCommand(@Nonnull final String fallbackPrefix, @Nonnull final String mainCommand, @Nonnull final String description, @Nonnull final String usageMessage, @Nonnull final String... aliases) {
179-
final String[] main = mainCommand.split("\\|");
180171
if (registeredMainCommand) return this;
181172

182-
if (main.length > 1)
183-
for (final String command : main)
184-
this.register(fallbackPrefix + ":" + mainCommand, new CommandExecutor(this, command, description, usageMessage, Arrays.asList(aliases)));
185-
else
186-
this.register(fallbackPrefix, new CommandExecutor(this, mainCommand, description, usageMessage, Arrays.asList(aliases)));
173+
this.register(fallbackPrefix, new CommandExecutor(this, mainCommand, description, usageMessage, Arrays.asList(aliases)));
187174
return this;
188175
}
189176

@@ -195,7 +182,7 @@ private CommandRegistering registerMainCommand(@Nonnull final String fallbackPre
195182
* @param fallbackPrefix The fallback prefix to use if the normal command cannot be used.
196183
* @param command The command to register.
197184
*/
198-
private void register(final String fallbackPrefix, final Command command) {
185+
private void register(@Nonnull final String fallbackPrefix, @Nonnull final Command command) {
199186
try {
200187
final Field bukkitCommandMap = Bukkit.getServer().getClass().getDeclaredField("commandMap");
201188

0 commit comments

Comments
 (0)