mirror of
https://github.com/aikar/commands.git
synced 2026-06-17 20:50:37 +00:00
Warn if you register replacements after commands
This commit is contained in:
@@ -101,6 +101,11 @@ public class BukkitCommandManager extends CommandManager {
|
||||
return completions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasRegisteredCommands() {
|
||||
return !registeredCommands.isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCommand(BaseCommand command) {
|
||||
final String plugin = this.plugin.getName().toLowerCase();
|
||||
|
||||
@@ -32,7 +32,7 @@ import java.util.Map;
|
||||
public abstract class CommandManager {
|
||||
|
||||
protected Map<String, RootCommand> rootCommands = new HashMap<>();
|
||||
protected CommandReplacements replacements = new CommandReplacements();
|
||||
protected CommandReplacements replacements = new CommandReplacements(this);
|
||||
|
||||
/**
|
||||
* Gets the command contexts manager
|
||||
@@ -66,6 +66,7 @@ public abstract class CommandManager {
|
||||
* @return boolean
|
||||
*/
|
||||
public abstract void registerCommand(BaseCommand command);
|
||||
public abstract boolean hasRegisteredCommands();
|
||||
|
||||
public abstract TimingManager getTimings();
|
||||
|
||||
|
||||
@@ -32,6 +32,12 @@ import java.util.regex.Pattern;
|
||||
* Manages replacement template strings
|
||||
*/
|
||||
public class CommandReplacements {
|
||||
|
||||
private final CommandManager manager;
|
||||
|
||||
CommandReplacements(CommandManager manager) {
|
||||
this.manager = manager;
|
||||
}
|
||||
private final Map<String, Map.Entry<Pattern, String>> replacements = new LinkedHashMap<>();
|
||||
|
||||
public void addReplacements(String... replacements) {
|
||||
@@ -44,6 +50,11 @@ public class CommandReplacements {
|
||||
}
|
||||
|
||||
public String addReplacement(String key, String val) {
|
||||
if (this.manager.hasRegisteredCommands()) {
|
||||
ACFLog.severe("You are registering replacements after you have registered your commands!");
|
||||
ACFLog.severe("This is not allowed, and this replacement (" + key + ") will not work for any previously registered command.");
|
||||
}
|
||||
|
||||
key = ACFPatterns.PERCENTAGE.matcher(key.toLowerCase()).replaceAll("");
|
||||
Pattern pattern = Pattern.compile("%" + Pattern.quote(key) + "\\b", Pattern.CASE_INSENSITIVE);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user