aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bukkit/build.gradle4
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java4
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/ExecutableItemsQuestItem.java58
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();
+ }
+
+}