aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java5
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/item/CustomFishingQuestItem.java33
-rw-r--r--docs/configuration/defining-items.md22
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