diff --git a/src/main/java/com/bitaspire/cyberlevels/cache/Rewards.java b/src/main/java/com/bitaspire/cyberlevels/cache/Rewards.java index 634af2c..4b4f929 100644 --- a/src/main/java/com/bitaspire/cyberlevels/cache/Rewards.java +++ b/src/main/java/com/bitaspire/cyberlevels/cache/Rewards.java @@ -102,19 +102,21 @@ String parseFormat(String prefix, String line) { } public void executeCommands(Player player) { - for (String command : commands) { - command = command.trim(); + for (String rawCommand : commands) { + String command = rawCommand.trim(); if (StringUtils.isBlank(command)) continue; if (main.isEnabled("PlaceholderAPI")) command = PlaceholderAPI.setPlaceholders(player, main.levelSystem().replacePlaceholders(command, player.getUniqueId(), false)); - if (command.toLowerCase().startsWith("[player]")) { - Bukkit.dispatchCommand(player, parseFormat("[player]", command)); - continue; - } - - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), parseFormat("[console]", command)); + final String toExecute = command; + Bukkit.getScheduler().runTask(main, () -> { + if (toExecute.toLowerCase().startsWith("[player]")) { + Bukkit.dispatchCommand(player, parseFormat("[player]", toExecute)); + } else { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), parseFormat("[console]", toExecute)); + } + }); } }