Skip to content

Commit 4507a48

Browse files
committed
New module system
1 parent 8520545 commit 4507a48

File tree

8 files changed

+194
-81
lines changed

8 files changed

+194
-81
lines changed

src/main/java/dev/despical/commandframework/CommandArguments.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
package dev.despical.commandframework;
2020

21+
import dev.despical.commandframework.internal.FrameworkContext;
22+
import dev.despical.commandframework.internal.MessageHelper;
2123
import dev.despical.commandframework.utils.Utils;
2224
import net.kyori.adventure.text.Component;
2325
import org.bukkit.Bukkit;
@@ -55,11 +57,13 @@ public final class CommandArguments {
5557
private final String label;
5658
private final String [] arguments;
5759

58-
CommandArguments(CommandSender commandSender,
59-
Command bukkitCommand,
60-
dev.despical.commandframework.annotations.Command command,
61-
String label,
62-
String... arguments) {
60+
CommandArguments(
61+
CommandSender commandSender,
62+
Command bukkitCommand,
63+
dev.despical.commandframework.annotations.Command command,
64+
String label,
65+
String... arguments
66+
) {
6367
this.commandSender = commandSender;
6468
this.bukkitCommand = bukkitCommand;
6569
this.command = command;
@@ -257,7 +261,7 @@ public boolean isArgumentsEmpty() {
257261
public void sendMessage(String message) {
258262
if (message == null)
259263
return;
260-
commandSender.sendMessage(Message.applyColorFormatter(message));
264+
commandSender.sendMessage(MessageHelper.applyColorFormatter(message));
261265
}
262266

263267
/**
@@ -270,7 +274,7 @@ public void sendMessage(String message) {
270274
public void sendMessage(String message, Object... params) {
271275
if (message == null)
272276
return;
273-
commandSender.sendMessage(Message.applyColorFormatter(MessageFormat.format(message, params)));
277+
commandSender.sendMessage(MessageHelper.applyColorFormatter(MessageFormat.format(message, params)));
274278
}
275279

276280
/**
@@ -512,7 +516,7 @@ public boolean isFloatingDecimal(String string) {
512516
* @return {@code true} if the sender has a cooldown on this command
513517
*/
514518
public boolean checkCooldown() {
515-
return CommandFramework.getInstance().getCooldownManager().hasCooldown(this);
519+
return FrameworkContext.getInstance().getCooldownManager().hasCooldown(this);
516520
}
517521

518522
void setParsedOptions(Map<String, List<String>> parsedOptions) {

src/main/java/dev/despical/commandframework/CommandFramework.java

Lines changed: 20 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,16 @@
2020

2121
import dev.despical.commandframework.annotations.Command;
2222
import dev.despical.commandframework.annotations.Param;
23-
import dev.despical.commandframework.confirmations.ConfirmationManager;
2423
import dev.despical.commandframework.exceptions.CommandException;
25-
import dev.despical.commandframework.cooldown.CooldownManager;
2624
import dev.despical.commandframework.debug.DebugLogger;
2725
import dev.despical.commandframework.options.FrameworkOption;
2826
import dev.despical.commandframework.options.OptionManager;
2927
import org.bukkit.command.CommandMap;
30-
import org.bukkit.command.CommandSender;
3128
import org.bukkit.plugin.Plugin;
3229
import org.jetbrains.annotations.ApiStatus;
30+
import org.jetbrains.annotations.Contract;
3331
import org.jetbrains.annotations.NotNull;
3432

35-
import java.lang.reflect.Method;
3633
import java.util.ArrayList;
3734
import java.util.List;
3835
import java.util.function.Function;
@@ -52,22 +49,16 @@ public class CommandFramework extends CommandHandler {
5249
protected static CommandFramework instance;
5350

5451
private Logger logger;
55-
private CooldownManager cooldownManager;
56-
private ConfirmationManager confirmationManager;
57-
58-
protected final Plugin plugin;
59-
private final OptionManager optionManager;
60-
private final CommandRegistry registry;
52+
private final Plugin plugin;
53+
private final OptionManager optionManager;
6154

6255
public CommandFramework(@NotNull Plugin plugin) {
6356
this.checkRelocation();
6457
this.checkIsAlreadyInitialized();
6558

6659
this.plugin = plugin;
67-
this.registry = new CommandRegistry();
68-
this.optionManager = new OptionManager();
60+
this.optionManager = new OptionManager();
6961
this.initializeLogger();
70-
super.setRegistry(this);
7162
}
7263

7364
private void checkRelocation() {
@@ -114,14 +105,14 @@ public final void registerCommands(@NotNull Object instance) {
114105
* @param commandName name of the command that's going to be removed
115106
*/
116107
public final void unregisterCommand(@NotNull String commandName) {
117-
this.registry.unregisterCommand(commandName);
108+
this.registry.unregisterCommand(commandName);
118109
}
119110

120111
/**
121112
* Unregisters all of registered commands and tab completers using that instance.
122113
*/
123114
public final void unregisterCommands() {
124-
this.registry.unregisterCommands();
115+
this.registry.unregisterCommands();
125116
}
126117

127118
/**
@@ -171,6 +162,7 @@ public final <T> void addCustomParameter(@NotNull Class<T> clazz, @NotNull Funct
171162
* @since 1.4.8
172163
*/
173164
@NotNull
165+
@Contract(pure = true)
174166
public final Logger getLogger() {
175167
return logger;
176168
}
@@ -195,31 +187,8 @@ public final OptionManager options() {
195187
return this.optionManager;
196188
}
197189

198-
@ApiStatus.Internal
199-
CooldownManager getCooldownManager() {
200-
if (this.cooldownManager == null)
201-
this.cooldownManager = new CooldownManager(this);
202-
return cooldownManager;
203-
}
204-
205-
@ApiStatus.Internal
206-
CommandRegistry getRegistry() {
207-
return registry;
208-
}
209-
210-
@ApiStatus.Internal
211-
boolean checkConfirmation(CommandSender sender, final Command command, final Method method) {
212-
if (!this.optionManager.isEnabled(FrameworkOption.CONFIRMATIONS)) {
213-
return false;
214-
}
215-
216-
if (this.confirmationManager == null)
217-
this.confirmationManager = new ConfirmationManager();
218-
return confirmationManager.checkConfirmations(sender, command, method);
219-
}
220-
221190
protected final void setCommandMap(CommandMap commandMap) {
222-
this.registry.setCommandMap(commandMap);
191+
this.registry.setCommandMap(commandMap);
223192
}
224193

225194
/**
@@ -228,6 +197,7 @@ protected final void setCommandMap(CommandMap commandMap) {
228197
* @return list of the commands.
229198
*/
230199
@NotNull
200+
@Contract(pure = true)
231201
public final List<Command> getCommands() {
232202
return new ArrayList<>(this.registry.getCommands());
233203
}
@@ -238,6 +208,7 @@ public final List<Command> getCommands() {
238208
* @return list of the sub-commands.
239209
*/
240210
@NotNull
211+
@Contract(pure = true)
241212
public final List<Command> getSubCommands() {
242213
return new ArrayList<>(this.registry.getSubCommands());
243214
}
@@ -248,14 +219,21 @@ public final List<Command> getSubCommands() {
248219
* @return list of the commands and sub-commands.
249220
*/
250221
@NotNull
222+
@Contract(pure = true)
251223
public final List<Command> getAllCommands() {
252-
final List<Command> commands = new ArrayList<>(this.registry.getCommands());
253-
commands.addAll(this.registry.getSubCommands());
224+
final List<Command> commands = new ArrayList<>(registry.getCommands());
225+
commands.addAll(registry.getSubCommands());
254226

255227
return commands;
256228
}
257229

258-
public static CommandFramework getInstance() {
230+
@NotNull
231+
@Contract(pure = true)
232+
public final Plugin getPlugin() {
233+
return plugin;
234+
}
235+
236+
public static CommandFramework getInstance() {
259237
return instance;
260238
}
261239
}

src/main/java/dev/despical/commandframework/CommandHandler.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
import dev.despical.commandframework.annotations.Command;
2424
import dev.despical.commandframework.annotations.Completer;
2525
import dev.despical.commandframework.exceptions.CooldownException;
26+
import dev.despical.commandframework.internal.CommandRegistry;
27+
import dev.despical.commandframework.internal.FrameworkContext;
28+
import dev.despical.commandframework.internal.ParameterHandler;
2629
import dev.despical.commandframework.options.FrameworkOption;
2730
import dev.despical.commandframework.parser.OptionParser;
2831
import dev.despical.commandframework.utils.Utils;
@@ -54,15 +57,15 @@
5457
@ApiStatus.NonExtendable
5558
abstract class CommandHandler implements CommandExecutor, TabCompleter {
5659

57-
private CommandRegistry registry;
58-
protected ParameterHandler parameterHandler;
60+
protected final CommandRegistry registry;
61+
protected final ParameterHandler parameterHandler;
5962

60-
void setRegistry(CommandFramework commandFramework) {
61-
this.registry = commandFramework.getRegistry();
62-
this.parameterHandler = new ParameterHandler();
63-
}
63+
public CommandHandler() {
64+
this.registry = FrameworkContext.getInstance().getRegistry();
65+
this.parameterHandler = new ParameterHandler();
66+
}
6467

65-
@Override
68+
@Override
6669
public boolean onCommand(@NotNull CommandSender sender, @NotNull org.bukkit.command.Command cmd, @NotNull String label, String[] args) {
6770
Map.Entry<Command, Map.Entry<Method, Object>> entry = registry.getCommandMatcher().getAssociatedCommand(cmd.getName(), args);
6871

@@ -109,12 +112,13 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull org.bukkit.comm
109112
}
110113

111114
CommandFramework commandFramework = CommandFramework.getInstance();
115+
FrameworkContext context = FrameworkContext.getInstance();
112116

113-
if (commandFramework.checkConfirmation(sender, command, method)) {
117+
if (context.checkConfirmation(sender, command, method)) {
114118
return true;
115119
}
116120

117-
if (!commandFramework.options().isEnabled(FrameworkOption.CUSTOM_COOLDOWN_CHECKER) && commandFramework.getCooldownManager().hasCooldown(arguments, command, method)) {
121+
if (!commandFramework.options().isEnabled(FrameworkOption.CUSTOM_COOLDOWN_CHECKER) && context.getCooldownManager().hasCooldown(arguments, command, method)) {
118122
return true;
119123
}
120124

@@ -142,8 +146,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull org.bukkit.comm
142146
};
143147

144148
if (command.async()) {
145-
Plugin plugin = commandFramework.plugin;
146-
149+
Plugin plugin = commandFramework.getPlugin();
147150
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, invocation);
148151
} else {
149152
invocation.run();

0 commit comments

Comments
 (0)