From de11df0a59f0dea1a7a23936ec87a4a053414d65 Mon Sep 17 00:00:00 2001 From: Krakenied Date: Tue, 13 May 2025 17:24:07 +0200 Subject: Add Nexo quest item support Closes https://github.com/LMBishop/Quests/issues/783 --- bukkit/build.gradle.kts | 4 ++++ .../quests/bukkit/config/BukkitQuestsLoader.java | 5 +++++ .../quests/bukkit/item/NexoQuestItem.java | 25 ++++++++++++++++++++++ bukkit/src/main/resources/plugin.yml | 1 + docs/configuration/defining-items.md | 14 ++++++++++++ 5 files changed, 49 insertions(+) create mode 100644 bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/NexoQuestItem.java diff --git a/bukkit/build.gradle.kts b/bukkit/build.gradle.kts index 98a3c22f..e7ab248c 100644 --- a/bukkit/build.gradle.kts +++ b/bukkit/build.gradle.kts @@ -31,6 +31,8 @@ repositories { maven("https://nexus.phoenixdevt.fr/repository/maven-public/") // MythicMobs 4, MythicMobs 5 maven("https://mvn.lumine.io/repository/maven-public/") + // Nexo + maven("https://repo.nexomc.com/releases") // NuVotifier maven("https://repo.leonardobishop.com/releases/") // Oraxen @@ -99,6 +101,8 @@ dependencies { compileOnlyPlugin("io.lumine.xikage:MythicMobs:4.12.0") // MythicMobs 5 compileOnlyPlugin("io.lumine:Mythic-Dist:5.2.0") + // Nexo + compileOnlyPlugin("com.nexomc:nexo:1.1.0") // NuVotifier compileOnlyPlugin("com.vexsoftware:NuVotifier:2.7.3") // Oraxen 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 660f3eed..aabf8998 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 @@ -5,6 +5,7 @@ import com.leonardobishop.quests.bukkit.hook.itemgetter.ItemGetter; import com.leonardobishop.quests.bukkit.item.ExecutableItemsQuestItem; import com.leonardobishop.quests.bukkit.item.ItemsAdderQuestItem; import com.leonardobishop.quests.bukkit.item.MMOItemsQuestItem; +import com.leonardobishop.quests.bukkit.item.NexoQuestItem; import com.leonardobishop.quests.bukkit.item.OraxenQuestItem; import com.leonardobishop.quests.bukkit.item.ParsedQuestItem; import com.leonardobishop.quests.bukkit.item.PyroFishingProQuestItem; @@ -511,6 +512,10 @@ public class BukkitQuestsLoader implements QuestsLoader { if (!Bukkit.getPluginManager().isPluginEnabled("PyroFishingPro")) return FileVisitResult.CONTINUE; item = new PyroFishingProQuestItem(id, config.getInt("item.fish-number", -1), config.getString("item.tier")); break; + case "nexo": + if (!Bukkit.getPluginManager().isPluginEnabled("Nexo")) return FileVisitResult.CONTINUE; + item = new NexoQuestItem(id, config.getString("item.id")); + break; } questItemRegistry.registerItem(id, item); diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/NexoQuestItem.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/NexoQuestItem.java new file mode 100644 index 00000000..e4629367 --- /dev/null +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/NexoQuestItem.java @@ -0,0 +1,25 @@ +package com.leonardobishop.quests.bukkit.item; + +import com.nexomc.nexo.api.NexoItems; +import org.bukkit.inventory.ItemStack; + +public class NexoQuestItem extends QuestItem { + + private final String nexoId; + + public NexoQuestItem(String id, String nexoId) { + super("nexo", id); + this.nexoId = nexoId; + } + + @Override + public ItemStack getItemStack() { + return NexoItems.itemFromId(this.nexoId).build(); + } + + @Override + public boolean compareItemStack(ItemStack other, boolean exactMatch) { + final String otherId = NexoItems.idFromItem(other); + return this.nexoId.equals(otherId); + } +} diff --git a/bukkit/src/main/resources/plugin.yml b/bukkit/src/main/resources/plugin.yml index 6e15f2f0..33feddff 100644 --- a/bukkit/src/main/resources/plugin.yml +++ b/bukkit/src/main/resources/plugin.yml @@ -20,6 +20,7 @@ softdepend: - FabledSkyBlock - IridiumSkyblock - MythicMobs +- Nexo - Oraxen - PinataParty - PlaceholderAPI diff --git a/docs/configuration/defining-items.md b/docs/configuration/defining-items.md index 1e7aeaf3..c4b3802b 100644 --- a/docs/configuration/defining-items.md +++ b/docs/configuration/defining-items.md @@ -231,6 +231,7 @@ The types of quest items are as follows: - `slimefun` (items from Slimefun) - `executableitems` (items from ExecutableItems) - `itemsadder` (items from ItemsAdder) +- `nexo` (items from Nexo) - `oraxen` (items from Oraxen) - `pyrofishingpro` (items from PyroFishingPro) @@ -321,6 +322,19 @@ item: id: "itemsadder" #itemsdadder id ``` +#### Nexo + +**Nexo quest items** are ItemStacks which belong to the +Nexo plugin. + + items/testitem.yml + +``` yaml +type: "nexo" +item: + id: "nexo_id" #nexo id +``` + #### Oraxen **Oraxen quest items** are ItemStacks which belong to the -- cgit v1.2.3-70-g09d2