diff options
3 files changed, 65 insertions, 1 deletions
diff --git a/bukkit/build.gradle b/bukkit/build.gradle index 822e17df..e2013f41 100644 --- a/bukkit/build.gradle +++ b/bukkit/build.gradle @@ -26,7 +26,7 @@ repositories { maven { url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/' } // EssentialsX maven { url = 'https://repo.essentialsx.net/releases/' } - // JitPack (IridiumSkyblock, ShopGUI+) + // JitPack (IridiumSkyblock, ShopGUI+, SCore) maven { url = 'https://jitpack.io' } // CoreProtect maven { url = 'https://maven.playpro.com/' } @@ -117,6 +117,8 @@ dependencies { compileOnly 'com.github.Slimefun:Slimefun4:RC-28' // NuVotifier compileOnly "com.vexsoftware:NuVotifier:2.7.3" + // SCore + compileOnly "com.github.Ssomar-Developement:SCore:main-SNAPSHOT" // bStats implementation 'org.bstats:bstats-bukkit-lite:1.8' // HikariCP 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(); + } + +} |
