From 2cefdf8840cc94fb1f0b9a843cc2112546426660 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Fri, 3 Jun 2022 04:02:45 +0200 Subject: [PATCH] Log when someone completes a quest and fixed CompleteQuestEvent storing quests --- .../java/com/alttd/altitudequests/AQuest.java | 1 - .../altitudequests/events/QuestComplete.java | 15 ------------ .../alttd/altitudequests/objects/Quest.java | 23 +++++++++++++++---- .../objects/QuestCompleteEvent.java | 16 +++++++++---- 4 files changed, 30 insertions(+), 25 deletions(-) delete mode 100644 src/main/java/com/alttd/altitudequests/events/QuestComplete.java diff --git a/src/main/java/com/alttd/altitudequests/AQuest.java b/src/main/java/com/alttd/altitudequests/AQuest.java index 6ff53c9..40ae009 100644 --- a/src/main/java/com/alttd/altitudequests/AQuest.java +++ b/src/main/java/com/alttd/altitudequests/AQuest.java @@ -59,7 +59,6 @@ public final class AQuest extends JavaPlugin { getServer().getPluginManager().registerEvents(new EntityBucketed(), this); getServer().getPluginManager().registerEvents(new EntityBreed(), this); getServer().getPluginManager().registerEvents(new DonNotMessWithNPC(), this); - getServer().getPluginManager().registerEvents(new QuestComplete(), 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/QuestComplete.java b/src/main/java/com/alttd/altitudequests/events/QuestComplete.java deleted file mode 100644 index 6fbac5a..0000000 --- a/src/main/java/com/alttd/altitudequests/events/QuestComplete.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.alttd.altitudequests.events; - -import com.alttd.altitudequests.objects.QuestCompleteEvent; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; - -public class QuestComplete implements Listener { - - @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) - public void onQuestComplete(QuestCompleteEvent event) { - event.getPlayer().sendMiniMessage("You completed a quest gj. - DEBUG", null); - } - -} diff --git a/src/main/java/com/alttd/altitudequests/objects/Quest.java b/src/main/java/com/alttd/altitudequests/objects/Quest.java index a3a10e1..582c362 100644 --- a/src/main/java/com/alttd/altitudequests/objects/Quest.java +++ b/src/main/java/com/alttd/altitudequests/objects/Quest.java @@ -209,14 +209,29 @@ public abstract class Quest { checkDone(); if (!isDone) return; - //TODO add completed quest to database - saveDone(player); + saveDone(); QuestCompleteEvent event = new QuestCompleteEvent(player, this, true); event.callEvent(); } - private void saveDone(Player player) { - + private void saveDone() { + try { + String sql = "INSERT INTO quest_log " + + "(uuid, year, month, day) " + + "VALUES (?, ?, ?, ?)"; + PreparedStatement statement = Database.getDatabase().getConnection().prepareStatement(sql); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + statement.setString(1, uuid.toString()); + statement.setInt(2, calendar.get(Calendar.YEAR)); + statement.setInt(3, calendar.get(Calendar.MONTH)); + statement.setInt(4, calendar.get(Calendar.DAY_OF_MONTH)); + } catch (SQLException e) { + e.printStackTrace(); + Logger.severe("Error while trying to create quest log table"); + Logger.severe("Shutting down AltitudeQuests"); + Bukkit.getPluginManager().disablePlugin(AQuest.getInstance()); + } } public Variant getVariant() { diff --git a/src/main/java/com/alttd/altitudequests/objects/QuestCompleteEvent.java b/src/main/java/com/alttd/altitudequests/objects/QuestCompleteEvent.java index 9ed0427..1e3db5c 100644 --- a/src/main/java/com/alttd/altitudequests/objects/QuestCompleteEvent.java +++ b/src/main/java/com/alttd/altitudequests/objects/QuestCompleteEvent.java @@ -5,15 +5,17 @@ import org.bukkit.event.Event; import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; -public class QuestCompleteEvent extends Event{ +public class QuestCompleteEvent extends Event { private static final HandlerList handlers = new HandlerList(); final private Player player; - final private Quest quest; + final private Variant variant; + final private int amount; final boolean daily; public QuestCompleteEvent(Player player, Quest quest, boolean daily) { this.player = player; - this.quest = quest; + this.variant = quest.getVariant(); + this.amount = quest.getAmount(); this.daily = daily; } @@ -21,8 +23,12 @@ public class QuestCompleteEvent extends Event{ return player; } - public Quest getQuest() { - return quest; + public Variant getVariant() { + return variant; + } + + public int getAmount() { + return amount; } public boolean isDaily() {