Added support for raid quests.
This commit is contained in:
parent
8eb28ea5f6
commit
e85e79c801
|
|
@ -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());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<Player> 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -149,7 +149,7 @@ public class OtherQuest extends Quest {
|
|||
|
||||
@Override
|
||||
public Component getDisplayName() {
|
||||
return MiniMessage.miniMessage().deserialize("<green>%s: </green>".formatted( otherQuestObject.getCategory()));
|
||||
return MiniMessage.miniMessage().deserialize("<green>%s</green>".formatted( otherQuestObject.getCategory()));
|
||||
//return MiniMessage.miniMessage().deserialize("%s<green>: </green>%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<ItemStack> 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();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user