diff --git a/src/main/java/com/alttd/altitudequests/events/ItemCaught.java b/src/main/java/com/alttd/altitudequests/events/ItemCaught.java new file mode 100644 index 0000000..2b2cea8 --- /dev/null +++ b/src/main/java/com/alttd/altitudequests/events/ItemCaught.java @@ -0,0 +1,32 @@ +package com.alttd.altitudequests.events; + +import com.alttd.altitudequests.objects.Quest; +import com.alttd.altitudequests.objects.quests.OtherQuest; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerFishEvent; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Item; +import org.bukkit.inventory.ItemStack; + +public class ItemCaught implements Listener { + + @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) + public void onItemCaught(PlayerFishEvent event) { + if (event.getCaught() == null || event.getCaught().getType() != EntityType.DROPPED_ITEM) { + return; //Only if an item was caught do further processing. Otherwise error might come up later + } + Player player = event.getPlayer(); + Quest dailyQuest = Quest.getDailyQuest(player.getUniqueId()); + if (dailyQuest == null || dailyQuest.isDone()) { + return; + } + if (dailyQuest instanceof OtherQuest otherQuest) { + Item item = (Item) event.getCaught(); + ItemStack caughtItem = item.getItemStack(); + otherQuest.fish(caughtItem); + } + } +}