From 724c9b01a8d218dfecae9cdb38eef218d6cb701f Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Wed, 13 Jul 2022 03:48:16 +0200 Subject: [PATCH] idk what i did --- .../altitudequests/events/LogoutEvent.java | 3 +- .../alttd/altitudequests/objects/Quest.java | 32 ++++++++++++++++--- .../alttd/altitudequests/objects/Variant.java | 6 +++- .../objects/quests/BreedMobsQuest.java | 3 ++ .../objects/quests/CollectDropsQuest.java | 3 ++ .../objects/quests/KillMobsQuest.java | 3 ++ .../objects/quests/MineQuest.java | 3 ++ 7 files changed, 46 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/alttd/altitudequests/events/LogoutEvent.java b/src/main/java/com/alttd/altitudequests/events/LogoutEvent.java index 0caf485..2a96a5d 100644 --- a/src/main/java/com/alttd/altitudequests/events/LogoutEvent.java +++ b/src/main/java/com/alttd/altitudequests/events/LogoutEvent.java @@ -12,13 +12,14 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.scheduler.BukkitRunnable; +import java.util.ArrayList; import java.util.UUID; public class LogoutEvent implements Listener { + @EventHandler public void onPlayerQuit(PlayerQuitEvent event) { UUID uuid = event.getPlayer().getUniqueId(); - new BukkitRunnable() { @Override public void run() { diff --git a/src/main/java/com/alttd/altitudequests/objects/Quest.java b/src/main/java/com/alttd/altitudequests/objects/Quest.java index 3a4b853..2358ea2 100644 --- a/src/main/java/com/alttd/altitudequests/objects/Quest.java +++ b/src/main/java/com/alttd/altitudequests/objects/Quest.java @@ -55,6 +55,9 @@ public abstract class Quest { this.variant = variant; this.isDone = rewardReceived; this.rewardReceived = rewardReceived; + if (variant == null) { + Logger.warning("Created % quest without a variant for %", this.getClass().getName(), uuid.toString()); + } if (variant != null && amount == -1) this.amount = variant.calculateAmount(loadQuestsDoneThisMonth(uuid)); else @@ -107,7 +110,7 @@ public abstract class Quest { Quest.weeklyQuest = newQuest; } - private static HashSet queriedUsers = new HashSet<>(); + private static final HashSet queriedUsers = new HashSet<>(); public static void tryLoadDailyQuest(UUID uuid) { if (queriedUsers.contains(uuid) || dailyQuests.containsKey(uuid)) return; @@ -152,6 +155,16 @@ public abstract class Quest { Class aClass = any.get(); Constructor constructor; try { + if (Config.DEBUG) { + Logger.info("quest: %, uuid: %, step1: %, step2: %, variant: %, amount: %, turnedIn:%", + quest, + uuid.toString(), + String.valueOf(step_1_progress), + String.valueOf(step_2_progress), + quest_variant, + String.valueOf(amount), + String.valueOf(turnedIn)); + } constructor = aClass.getConstructor(UUID.class, int.class, int.class, String.class, int.class, boolean.class); Quest quest1 = constructor.newInstance(uuid, step_1_progress, step_2_progress, quest_variant, amount, turnedIn); dailyQuests.put(uuid, quest1); @@ -207,11 +220,17 @@ public abstract class Quest { public void checkDone(Player player) { checkDone(); - if (!isDone) + if (!isDone()) return; - saveDone(); - QuestCompleteEvent event = new QuestCompleteEvent(player, this, true); - event.callEvent(); + final Quest quest = this; + new BukkitRunnable() { + @Override + public void run() { + saveDone(); + QuestCompleteEvent event = new QuestCompleteEvent(player, quest, true); + event.callEvent(); + } + }.runTaskAsynchronously(AQuest.getInstance()); } private void saveDone() { @@ -226,6 +245,9 @@ public abstract class Quest { statement.setInt(2, calendar.get(Calendar.YEAR)); statement.setInt(3, calendar.get(Calendar.MONTH)); statement.setInt(4, calendar.get(Calendar.DAY_OF_MONTH)); + statement.executeUpdate(); + if (Config.DEBUG) + Logger.info("% finished their quest", uuid.toString()); } catch (SQLException e) { e.printStackTrace(); Logger.severe("Error while trying to create quest log table"); diff --git a/src/main/java/com/alttd/altitudequests/objects/Variant.java b/src/main/java/com/alttd/altitudequests/objects/Variant.java index cf9d203..267801e 100644 --- a/src/main/java/com/alttd/altitudequests/objects/Variant.java +++ b/src/main/java/com/alttd/altitudequests/objects/Variant.java @@ -1,5 +1,7 @@ package com.alttd.altitudequests.objects; +import com.alttd.altitudequests.config.Config; +import com.alttd.altitudequests.util.Logger; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; @@ -43,7 +45,9 @@ public abstract class Variant { double difficultyOffset = ((rangeMax - rangeMin) / (double) getDaysInMonth()); int min = Math.max(rangeMin, rangeMin + (int) (difficultyOffset * (questsCompleted - 5))); int max = Math.min(rangeMax, rangeMin + (int) (difficultyOffset * (questsCompleted + 5))); - return new Random().nextInt(min, max); + if (Config.DEBUG) + Logger.info("variant: %, min: %, max: %", internalName, String.valueOf(min), String.valueOf(max)); + return min == max ? min : new Random().nextInt(min, max); } private int getDaysInMonth() { diff --git a/src/main/java/com/alttd/altitudequests/objects/quests/BreedMobsQuest.java b/src/main/java/com/alttd/altitudequests/objects/quests/BreedMobsQuest.java index c0aadf9..b91e069 100644 --- a/src/main/java/com/alttd/altitudequests/objects/quests/BreedMobsQuest.java +++ b/src/main/java/com/alttd/altitudequests/objects/quests/BreedMobsQuest.java @@ -4,6 +4,7 @@ import com.alttd.altitudequests.config.Config; import com.alttd.altitudequests.config.QuestsConfig; import com.alttd.altitudequests.database.Database; import com.alttd.altitudequests.objects.Quest; +import com.alttd.altitudequests.objects.Variant; import com.alttd.altitudequests.objects.variants.BreedMobsQuestObject; import com.alttd.altitudequests.util.Logger; import com.alttd.altitudequests.util.Utilities; @@ -18,6 +19,7 @@ import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.List; import java.util.UUID; +import java.util.stream.Collectors; public class BreedMobsQuest extends Quest { @@ -46,6 +48,7 @@ public class BreedMobsQuest extends Quest { this.breedMobsQuestObject = null; if (breedMobsQuestObject == null) { Logger.warning("Tried to create breedMobQuest but unable to find variant: %.", variant); + Logger.warning("Possible variants: %", QuestsConfig.BREED_MOB_QUEST.stream().map(Variant::getInternalName).collect(Collectors.joining(", "))); return; } checkDone(); diff --git a/src/main/java/com/alttd/altitudequests/objects/quests/CollectDropsQuest.java b/src/main/java/com/alttd/altitudequests/objects/quests/CollectDropsQuest.java index 8976423..080fe05 100644 --- a/src/main/java/com/alttd/altitudequests/objects/quests/CollectDropsQuest.java +++ b/src/main/java/com/alttd/altitudequests/objects/quests/CollectDropsQuest.java @@ -4,6 +4,7 @@ import com.alttd.altitudequests.config.Config; import com.alttd.altitudequests.config.QuestsConfig; import com.alttd.altitudequests.database.Database; import com.alttd.altitudequests.objects.Quest; +import com.alttd.altitudequests.objects.Variant; import com.alttd.altitudequests.objects.variants.CollectDropsQuestObject; import com.alttd.altitudequests.util.Logger; import com.alttd.altitudequests.util.Utilities; @@ -21,6 +22,7 @@ import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.UUID; +import java.util.stream.Collectors; public class CollectDropsQuest extends Quest { @@ -49,6 +51,7 @@ public class CollectDropsQuest extends Quest { this.collectDropsQuestObject = null; if (collectDropsQuestObject == null) { Logger.warning("Tried to create collectDropsQuest but unable to find variant: %.", variant); + Logger.warning("Possible variants: %", QuestsConfig.COLLECT_DROPS_QUEST.stream().map(Variant::getInternalName).collect(Collectors.joining(", "))); return; } checkDone(); diff --git a/src/main/java/com/alttd/altitudequests/objects/quests/KillMobsQuest.java b/src/main/java/com/alttd/altitudequests/objects/quests/KillMobsQuest.java index b6838e4..f3345ad 100644 --- a/src/main/java/com/alttd/altitudequests/objects/quests/KillMobsQuest.java +++ b/src/main/java/com/alttd/altitudequests/objects/quests/KillMobsQuest.java @@ -4,6 +4,7 @@ import com.alttd.altitudequests.config.Config; import com.alttd.altitudequests.config.QuestsConfig; import com.alttd.altitudequests.database.Database; import com.alttd.altitudequests.objects.Quest; +import com.alttd.altitudequests.objects.Variant; import com.alttd.altitudequests.objects.variants.KillMobsQuestObject; import com.alttd.altitudequests.util.Logger; import com.alttd.altitudequests.util.Utilities; @@ -18,6 +19,7 @@ import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.List; import java.util.UUID; +import java.util.stream.Collectors; public class KillMobsQuest extends Quest { @@ -46,6 +48,7 @@ public class KillMobsQuest extends Quest { this.killMobsQuestObject = null; if (killMobsQuestObject == null) { Logger.warning("Tried to create killMobsQuest but unable to find variant: %.", variant); + Logger.warning("Possible variants: %", QuestsConfig.KILL_MOB_QUEST.stream().map(Variant::getInternalName).collect(Collectors.joining(", "))); return; } checkDone(); diff --git a/src/main/java/com/alttd/altitudequests/objects/quests/MineQuest.java b/src/main/java/com/alttd/altitudequests/objects/quests/MineQuest.java index c67483e..8999db8 100644 --- a/src/main/java/com/alttd/altitudequests/objects/quests/MineQuest.java +++ b/src/main/java/com/alttd/altitudequests/objects/quests/MineQuest.java @@ -3,6 +3,7 @@ package com.alttd.altitudequests.objects.quests; import com.alttd.altitudequests.config.Config; import com.alttd.altitudequests.config.QuestsConfig; import com.alttd.altitudequests.database.Database; +import com.alttd.altitudequests.objects.Variant; import com.alttd.altitudequests.objects.variants.MineQuestObject; import com.alttd.altitudequests.objects.Quest; import com.alttd.altitudequests.util.Logger; @@ -18,6 +19,7 @@ import org.bukkit.inventory.PlayerInventory; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.*; +import java.util.stream.Collectors; public class MineQuest extends Quest { @@ -47,6 +49,7 @@ public class MineQuest extends Quest { this.mineQuestObject = null; if (mineQuestObject == null) { Logger.warning("Tried to create MineQuest but unable to find variant: %.", variant); + Logger.warning("Possible variants: %", QuestsConfig.MINE_QUESTS.stream().map(Variant::getInternalName).collect(Collectors.joining(", "))); return; } checkDone();