diff options
Diffstat (limited to 'bukkit')
3 files changed, 30 insertions, 2 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/CategoryQMenu.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/CategoryQMenu.java index 607931bb..36782ea4 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/CategoryQMenu.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/CategoryQMenu.java @@ -51,7 +51,8 @@ public class CategoryQMenu implements QMenu { MenuElement menuElement; if (config.getConfig().contains("custom-elements.categories." + s + ".display")) { ItemStack is = config.getItem("custom-elements.categories." + s + ".display"); - menuElement = new CustomMenuElement(plugin, owner.getPlayerUUID(), is); + List<String> commands = plugin.getQuestsConfig().getStringList( "custom-elements." + s + ".commands"); + menuElement = new CustomMenuElement(plugin, owner.getPlayerUUID(), is, commands); } else if (config.getBoolean("custom-elements.categories." + s + ".spacer", false)) { menuElement = new SpacerMenuElement(); } else continue; // user = idiot @@ -169,6 +170,12 @@ public class CategoryQMenu implements QMenu { } else { return true; } + } else if (element instanceof CustomMenuElement) { + CustomMenuElement customMenuElement = (CustomMenuElement) element; + for (String command : customMenuElement.getCommands()) { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), + command.replace("{player}", event.getWhoClicked().getName())); + } } } return false; diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java index 747dc28b..36b744b9 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java @@ -75,7 +75,8 @@ public class QuestQMenu implements QMenu { MenuElement menuElement; if (plugin.getConfig().contains(path + "." + s + ".display")) { ItemStack is = plugin.getConfiguredItemStack(path + "." + s + ".display", plugin.getConfig()); - menuElement = new CustomMenuElement(plugin, owner.getPlayerUUID(), is); + List<String> commands = plugin.getQuestsConfig().getStringList(path + "." + s + ".commands"); + menuElement = new CustomMenuElement(plugin, owner.getPlayerUUID(), is, commands); } else if (plugin.getConfig().getBoolean(path + "." + s + ".spacer", false)) { menuElement = new SpacerMenuElement(); } else continue; // user = idiot @@ -240,6 +241,12 @@ public class QuestQMenu implements QMenu { MenuUtils.handleRightClick(plugin, this, quest, Bukkit.getPlayer(owner.getPlayerUUID()), controller); return true; } + } else if (menuElement instanceof CustomMenuElement) { + CustomMenuElement customMenuElement = (CustomMenuElement) menuElement; + for (String command : customMenuElement.getCommands()) { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), + command.replace("{player}", event.getWhoClicked().getName())); + } } } return false; 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 440ac217..c0125dfe 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 @@ -4,18 +4,32 @@ import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.bukkit.util.MenuUtils; import org.bukkit.inventory.ItemStack; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.UUID; public class CustomMenuElement extends MenuElement{ private final ItemStack itemStack; + private final List<String> commands; public CustomMenuElement(BukkitQuestsPlugin plugin, UUID owner, ItemStack itemStack) { this.itemStack = MenuUtils.applyPlaceholders(plugin, owner, itemStack); + this.commands = new ArrayList<>(); + } + + public CustomMenuElement(BukkitQuestsPlugin plugin, UUID owner, ItemStack itemStack, List<String> commands) { + this.itemStack = MenuUtils.applyPlaceholders(plugin, owner, itemStack); + this.commands = commands; } @Override public ItemStack asItemStack() { return itemStack; } + + public List<String> getCommands() { + return Collections.unmodifiableList(commands); + } } |
