From e85e79c801c9732a3442e2fbfdbba8fbe2119755 Mon Sep 17 00:00:00 2001 From: once_a_fairy Date: Fri, 4 Aug 2023 23:41:13 +0200 Subject: [PATCH] Added support for raid quests. --- .../java/com/alttd/altitudequests/AQuest.java | 2 ++ .../altitudequests/events/FinishedRaid.java | 30 +++++++++++++++++++ .../objects/quests/OtherQuest.java | 16 ++++------ 3 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/alttd/altitudequests/events/FinishedRaid.java diff --git a/src/main/java/com/alttd/altitudequests/AQuest.java b/src/main/java/com/alttd/altitudequests/AQuest.java index c8ddc14..2680f71 100644 --- a/src/main/java/com/alttd/altitudequests/AQuest.java +++ b/src/main/java/com/alttd/altitudequests/AQuest.java @@ -72,6 +72,8 @@ public final class AQuest extends JavaPlugin { getServer().getPluginManager().registerEvents(new ItemCaught(), this); getServer().getPluginManager().registerEvents(new PotionBrewingStarted(), this); getServer().getPluginManager().registerEvents(new PotionBrewingFinished(), this); + getServer().getPluginManager().registerEvents(new FinishedRaid(), this); + // getServer().getMessenger().registerOutgoingPluginChannel(this, "aquest:player-data"); // getServer().getMessenger().registerIncomingPluginChannel(this, "aquest:player-data", new PluginMessageListener()); } diff --git a/src/main/java/com/alttd/altitudequests/events/FinishedRaid.java b/src/main/java/com/alttd/altitudequests/events/FinishedRaid.java new file mode 100644 index 0000000..1e88d28 --- /dev/null +++ b/src/main/java/com/alttd/altitudequests/events/FinishedRaid.java @@ -0,0 +1,30 @@ +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.raid.RaidFinishEvent; + +import java.util.List; +import java.util.UUID; + +public class FinishedRaid implements Listener { + + @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) + public void onRaidFinish(RaidFinishEvent event) { + List winners = event.getWinners(); + for (Player player : winners) { + UUID uuid = player.getUniqueId(); + Quest dailyQuest = Quest.getDailyQuest(uuid); + if (dailyQuest == null || dailyQuest.isDone()) { + return; + } + if (dailyQuest instanceof OtherQuest otherQuest) { // check if dailyQuest.getVariant().getName()) == Raidquest + otherQuest.raid(); + } + } + } +} diff --git a/src/main/java/com/alttd/altitudequests/objects/quests/OtherQuest.java b/src/main/java/com/alttd/altitudequests/objects/quests/OtherQuest.java index 42bad51..132f886 100644 --- a/src/main/java/com/alttd/altitudequests/objects/quests/OtherQuest.java +++ b/src/main/java/com/alttd/altitudequests/objects/quests/OtherQuest.java @@ -149,7 +149,7 @@ public class OtherQuest extends Quest { @Override public Component getDisplayName() { - return MiniMessage.miniMessage().deserialize("%s: ".formatted( otherQuestObject.getCategory())); + return MiniMessage.miniMessage().deserialize("%s".formatted( otherQuestObject.getCategory())); //return MiniMessage.miniMessage().deserialize("%s: %s".formatted(QuestsConfig.OTHER_QUEST_NAME, otherQuestObject.getCategory())); } @@ -189,17 +189,11 @@ public class OtherQuest extends Quest { checkDone(); } - public void raid(){} - public void collectDrops(List drops) { - if (isDone() || getAmount() == getStep1()) + public void raid(){ + if (isDone() || getAmount() == getStep1() || otherQuestObject.getCategory() != "Raid") { return; - int total = drops.stream() - .filter(itemStack -> itemStack.getType().equals(otherQuestObject.getMaterial())) - .mapToInt(ItemStack::getAmount) - .sum(); - if (total == 0) - return; - addStep1(Math.min(total, getAmount() - getStep1())); + } + addStep1(1); checkDone(); }