Add SWCommand.enabled for enabling and disabling commands
Dieser Commit ist enthalten in:
Ursprung
d0186a43d1
Commit
54c3c8e203
@ -33,6 +33,7 @@ import static de.steamwar.command.SWCommandUtils.getAnnotation;
|
||||
|
||||
public abstract class SWCommand {
|
||||
|
||||
private boolean enabled = true;
|
||||
private final Set<SubCommand> commandSet = new HashSet<>();
|
||||
private final Set<SubCommand> commandHelpSet = new HashSet<>();
|
||||
|
||||
@ -44,6 +45,7 @@ public abstract class SWCommand {
|
||||
SWCommandUtils.commandMap.register("steamwar", new Command(command, "", "/" + command, Arrays.asList(aliases)) {
|
||||
@Override
|
||||
public boolean execute(CommandSender sender, String alias, String[] args) {
|
||||
if (!enabled) return false;
|
||||
for (SubCommand subCommand : commandSet) {
|
||||
if (subCommand.invoke(sender, args)) {
|
||||
return false;
|
||||
@ -59,6 +61,7 @@ public abstract class SWCommand {
|
||||
|
||||
@Override
|
||||
public List<String> tabComplete(CommandSender sender, String alias, String[] args) throws IllegalArgumentException {
|
||||
if (!enabled) return Collections.emptyList();
|
||||
List<String> strings = new ArrayList<>();
|
||||
for (SubCommand subCommand : commandSet) {
|
||||
List<String> tabCompletes = subCommand.tabComplete(sender, args);
|
||||
@ -132,6 +135,14 @@ public abstract class SWCommand {
|
||||
consumer.accept(anno, parameters);
|
||||
}
|
||||
|
||||
protected boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
protected void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target({ElementType.METHOD})
|
||||
protected @interface Register {
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren