diff options
| author | Krakenied <krakenied1@gmail.com> | 2025-07-20 02:39:39 +0200 |
|---|---|---|
| committer | Krakenied <46192742+Krakenied@users.noreply.github.com> | 2025-07-29 00:06:46 +0200 |
| commit | b1a82a59ec6d11d9a0241504d6a5104e9d109538 (patch) | |
| tree | 7b1e58f98bde6a97637baf1483790d83b7bd97f5 | |
| parent | 6d8f2c258519f6e1ef58064bcac9569a87802cf4 (diff) | |
Add CustomFishing item def
3 files changed, 60 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 7aba3481..561e65b3 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 @@ -2,6 +2,7 @@ package com.leonardobishop.quests.bukkit.config; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.bukkit.hook.itemgetter.ItemGetter; +import com.leonardobishop.quests.bukkit.item.CustomFishingQuestItem; import com.leonardobishop.quests.bukkit.item.ExecutableItemsQuestItem; import com.leonardobishop.quests.bukkit.item.ItemsAdderQuestItem; import com.leonardobishop.quests.bukkit.item.MMOItemsQuestItem; @@ -519,6 +520,10 @@ public class BukkitQuestsLoader implements QuestsLoader { if (!Bukkit.getPluginManager().isPluginEnabled("Nexo")) return FileVisitResult.CONTINUE; item = new NexoQuestItem(id, config.getString("item.id")); break; + case "customfishing": + if (!Bukkit.getPluginManager().isPluginEnabled("CustomFishing")) return FileVisitResult.CONTINUE; + item = new CustomFishingQuestItem(id, config.contains("item.ids") ? config.getStringList("item.ids") : Collections.singletonList(config.getString("item.id"))); + break; } questItemRegistry.registerItem(id, item); diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/CustomFishingQuestItem.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/CustomFishingQuestItem.java new file mode 100644 index 00000000..9ec12347 --- /dev/null +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/CustomFishingQuestItem.java @@ -0,0 +1,33 @@ +package com.leonardobishop.quests.bukkit.item; + +import net.momirealms.customfishing.api.BukkitCustomFishingPlugin; +import net.momirealms.customfishing.api.mechanic.context.Context; +import org.bukkit.inventory.ItemStack; + +import java.util.List; + +public class CustomFishingQuestItem extends QuestItem { + + private final List<String> loots; + + public CustomFishingQuestItem(final String id, final List<String> loots) { + super("customfishing", id); + this.loots = List.copyOf(loots); + } + + @Override + public ItemStack getItemStack() { + return BukkitCustomFishingPlugin.getInstance() + .getItemManager() + .buildAny( + Context.player(null), + !this.loots.isEmpty() ? this.loots.getFirst() : "null" + ); + } + + @Override + public boolean compareItemStack(final ItemStack other, final boolean exactMatch) { + final String loot = BukkitCustomFishingPlugin.getInstance().getItemManager().getCustomFishingItemID(other); + return this.loots.contains(loot); + } +} diff --git a/docs/configuration/defining-items.md b/docs/configuration/defining-items.md index c4b3802b..aab18de9 100644 --- a/docs/configuration/defining-items.md +++ b/docs/configuration/defining-items.md @@ -229,6 +229,7 @@ The types of quest items are as follows: - `defined` (items manually written following the format above) - `mmoitems` (items from MMOItems) - `slimefun` (items from Slimefun) +- `customfishing` (items from CustomFishing) - `executableitems` (items from ExecutableItems) - `itemsadder` (items from ItemsAdder) - `nexo` (items from Nexo) @@ -296,6 +297,27 @@ item: id: "slimefun_item_id" #slimefun id ``` +#### CustomFishing + +**CustomFishing quest items** are ItemStacks which belong to the +CustomFishing plugin. + + items/testitem.yml + +``` yaml +type: "customfishing" +item: + id: "customfishing_id" #customfishing id +``` +or +``` yaml +type: "customfishing" +item: + ids: #customfishing ids + - "customfishing_id_1" + - "customfishing_id_2" +``` + #### ExecutableItems **ExecutableItems quest items** are ItemStacks which belong to the |
