diff options
| author | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2022-07-06 20:54:31 +0100 |
|---|---|---|
| committer | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2022-07-06 20:54:31 +0100 |
| commit | 77cded0fe148b79ce39b98941df3515b23e5f9de (patch) | |
| tree | 10250b38e0686d185bd53500cecd9e33f1bda693 /bukkit/src/main/java | |
| parent | ce4675af7024795201291b9c52996f7e28dffe3d (diff) | |
Add executableitems quest item (closes #364)
Diffstat (limited to 'bukkit/src/main/java')
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java | 4 | ||||
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/ExecutableItemsQuestItem.java | 58 |
2 files changed, 62 insertions, 0 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java index efd4f7f0..8becadf5 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java @@ -456,6 +456,10 @@ public class BukkitQuestsLoader implements QuestsLoader { if (!Bukkit.getPluginManager().isPluginEnabled("Slimefun")) return FileVisitResult.CONTINUE; item = new SlimefunQuestItem(id, config.getString("item.id")); break; + case "executableitems": + if (!Bukkit.getPluginManager().isPluginEnabled("ExecutableItems")) return FileVisitResult.CONTINUE; + item = new ExecutableItemsQuestItem(id, config.getString("item.id")); + break; } questItemRegistry.registerItem(id, item); diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/ExecutableItemsQuestItem.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/ExecutableItemsQuestItem.java new file mode 100644 index 00000000..3aa31b6a --- /dev/null +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/ExecutableItemsQuestItem.java @@ -0,0 +1,58 @@ +package com.leonardobishop.quests.bukkit.item; + +import com.ssomar.score.api.executableitems.ExecutableItemsAPI; +import com.ssomar.score.api.executableitems.config.ExecutableItemInterface; +import com.ssomar.score.api.executableitems.config.ExecutableItemsManagerInterface; +import org.bukkit.inventory.ItemStack; + +import java.util.Optional; + +public class ExecutableItemsQuestItem extends QuestItem { + + private final String executableItemsId; + private final ExecutableItemsManagerInterface executableItemsManager; + + public ExecutableItemsQuestItem(String id, String executableItemsId) { + super("executableitems", id); + this.executableItemsId = executableItemsId; + this.executableItemsManager = ExecutableItemsAPI.getExecutableItemsManager(); + } + + @Override + public ItemStack getItemStack() { + ExecutableItemInterface item = getExecutableItem(); + + if (item == null) { + return null; + } + + return item.buildItem(1, Optional.empty()); + } + + @Override + public boolean compareItemStack(ItemStack other) { + ExecutableItemInterface item = getExecutableItem(); + + Optional<ExecutableItemInterface> otherItemOptional = executableItemsManager.getExecutableItem(other); + if (item == null|| otherItemOptional.isEmpty()) { + return false; + } + + ExecutableItemInterface otherItem = otherItemOptional.get(); + + return otherItem.getId().equals(item.getId()); + } + + private ExecutableItemInterface getExecutableItem() { + if (!executableItemsManager.isValidID(executableItemsId)) { + return null; + } + + Optional<ExecutableItemInterface> itemOptional = executableItemsManager.getExecutableItem(executableItemsId); + if (itemOptional.isEmpty()) { + return null; + } + return itemOptional.get(); + } + +} |
