diff --git a/src/main/java/fr/xephi/authme/settings/commandconfig/Command.java b/src/main/java/fr/xephi/authme/settings/commandconfig/Command.java index 5e6db90e..cc0a9f4c 100644 --- a/src/main/java/fr/xephi/authme/settings/commandconfig/Command.java +++ b/src/main/java/fr/xephi/authme/settings/commandconfig/Command.java @@ -25,8 +25,7 @@ public class Command { * @param executor the executor of the command */ public Command(String command, Executor executor) { - this.command = command; - this.executor = executor; + this(command, executor, 0); } /** diff --git a/src/main/java/fr/xephi/authme/settings/commandconfig/CommandManager.java b/src/main/java/fr/xephi/authme/settings/commandconfig/CommandManager.java index 0531496c..df7022e2 100644 --- a/src/main/java/fr/xephi/authme/settings/commandconfig/CommandManager.java +++ b/src/main/java/fr/xephi/authme/settings/commandconfig/CommandManager.java @@ -124,20 +124,26 @@ public class CommandManager implements Reloadable { } private void executeCommands(Player player, List commands, Predicate predicate) { - for (T command : commands) { - if (predicate.test(command)) { - final String execution = command.getCommand(); - bukkitService.scheduleSyncDelayedTask(() -> { - if (Executor.CONSOLE.equals(command.getExecutor())) { - bukkitService.dispatchConsoleCommand(execution); - } else { - bukkitService.dispatchCommand(player, execution); - } - }, command.getDelay()); + for (T cmd : commands) { + if (predicate.test(cmd)) { + long delay = cmd.getDelay(); + if (delay > 0) { + bukkitService.scheduleSyncDelayedTask(() -> dispatchCommand(player, cmd), delay); + } else { + dispatchCommand(player, cmd); + } } } } + private void dispatchCommand(Player player, Command command) { + if (Executor.CONSOLE.equals(command.getExecutor())) { + bukkitService.dispatchConsoleCommand(command.getCommand()); + } else { + bukkitService.dispatchCommand(player, command.getCommand()); + } + } + private static boolean shouldCommandBeRun(OnLoginCommand command, int numberOfOtherAccounts) { return (!command.getIfNumberOfAccountsAtLeast().isPresent() || command.getIfNumberOfAccountsAtLeast().get() <= numberOfOtherAccounts)