From 832e99ce535008ffeb1bf2d63cebb21583262035 Mon Sep 17 00:00:00 2001 From: Krakenied Date: Sat, 10 Feb 2024 19:56:50 +0100 Subject: Ensure that custom menu element commands are ran from Folia GlobalTickThread Closes https://github.com/LMBishop/Quests/issues/601 --- .../quests/bukkit/menu/element/CustomMenuElement.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/CustomMenuElement.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/CustomMenuElement.java index 644ec332..048ad48d 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/CustomMenuElement.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/CustomMenuElement.java @@ -14,6 +14,7 @@ import java.util.UUID; public class CustomMenuElement extends MenuElement{ + private final BukkitQuestsPlugin plugin; private final ItemStack itemStack; private final List commands; private final String playerName; @@ -23,6 +24,7 @@ public class CustomMenuElement extends MenuElement{ } public CustomMenuElement(BukkitQuestsPlugin plugin, UUID owner, String name, ItemStack itemStack, List commands) { + this.plugin = plugin; this.itemStack = MenuUtils.applyPlaceholders(plugin, owner, itemStack); this.commands = commands; this.playerName = name; @@ -35,10 +37,17 @@ public class CustomMenuElement extends MenuElement{ @Override public ClickResult handleClick(ClickType clickType) { - for (String command : commands) { - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), - command.replace("{player}", playerName)); + if (commands.isEmpty()) { + return ClickResult.DO_NOTHING; } + + this.plugin.getScheduler().runTask(() -> { + for (String command : commands) { + command = command.replace("{player}", playerName); + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command); + } + }); + return ClickResult.DO_NOTHING; } -- cgit v1.2.3-70-g09d2