diff --git a/src/main/java/com/alttd/altitudequests/AQuest.java b/src/main/java/com/alttd/altitudequests/AQuest.java index 86d5623..7198891 100644 --- a/src/main/java/com/alttd/altitudequests/AQuest.java +++ b/src/main/java/com/alttd/altitudequests/AQuest.java @@ -72,12 +72,7 @@ public final class AQuest extends JavaPlugin { getServer().getPluginManager().registerEvents(new DonNotMessWithNPC(), this); getServer().getPluginManager().registerEvents(new DataLock(), this); 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()); } private static int yearDay = Utilities.getYearDay(); diff --git a/src/main/java/com/alttd/altitudequests/events/LogoutEvent.java b/src/main/java/com/alttd/altitudequests/events/LogoutEvent.java index 3bad4a9..12f5e82 100644 --- a/src/main/java/com/alttd/altitudequests/events/LogoutEvent.java +++ b/src/main/java/com/alttd/altitudequests/events/LogoutEvent.java @@ -1,19 +1,13 @@ package com.alttd.altitudequests.events; -import com.alttd.altitudequests.AQuest; import com.alttd.altitudequests.config.Config; import com.alttd.altitudequests.objects.Quest; import com.alttd.altitudequests.util.Logger; import com.alttd.datalock.DataLockAPI; -import com.google.common.io.ByteArrayDataOutput; -import com.google.common.io.ByteStreams; -import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; 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 { @@ -21,14 +15,8 @@ public class LogoutEvent implements Listener { @EventHandler public void onPlayerQuit(PlayerQuitEvent event) { UUID uuid = event.getPlayer().getUniqueId(); - new BukkitRunnable() { - @Override - public void run() { - if (Config.DEBUG) - Logger.info("Syncing %", event.getPlayer().getName()); - Quest.unloadUser(uuid); - DataLockAPI.get().tryUnlock("aquest:player-data", uuid.toString()); - } - }.runTaskAsynchronously(AQuest.getInstance()); + if (Config.DEBUG) + Logger.info("Syncing %", event.getPlayer().getName()); + Quest.unloadUser(uuid).thenAccept(result -> DataLockAPI.get().tryUnlock("aquest:player-data", uuid.toString())); } } diff --git a/src/main/java/com/alttd/altitudequests/events/PluginMessageListener.java b/src/main/java/com/alttd/altitudequests/events/PluginMessageListener.java deleted file mode 100644 index a927150..0000000 --- a/src/main/java/com/alttd/altitudequests/events/PluginMessageListener.java +++ /dev/null @@ -1,98 +0,0 @@ -//package com.alttd.altitudequests.events; -// -//import com.alttd.altitudequests.AQuest; -//import com.alttd.altitudequests.config.Config; -//import com.alttd.altitudequests.database.Database; -//import com.alttd.altitudequests.objects.Quest; -//import com.alttd.altitudequests.util.Logger; -//import com.alttd.altitudequests.util.Utilities; -//import com.google.common.io.ByteArrayDataInput; -//import com.google.common.io.ByteStreams; -//import org.bukkit.Bukkit; -//import org.bukkit.entity.Player; -//import org.bukkit.scheduler.BukkitRunnable; -//import org.jetbrains.annotations.NotNull; -// -//import java.sql.PreparedStatement; -//import java.sql.ResultSet; -//import java.sql.SQLException; -//import java.util.UUID; -// -//public class PluginMessageListener implements org.bukkit.plugin.messaging.PluginMessageListener { -// -// @Override -// public void onPluginMessageReceived(@NotNull String channel, @NotNull Player player, @NotNull byte[] bytes) { -// if (!channel.equals("aquest:player-data")) { -// Logger.warning("Received plugin message on invalid channel"); -// return; -// } -// ByteArrayDataInput in = ByteStreams.newDataInput(bytes); -// switch (in.readUTF()) { -// case "try-lock-result" -> { -// if (!in.readBoolean()) { -// Logger.warning("Unable to lock row"); -// return; -// } -// UUID uuid = UUID.fromString(in.readUTF()); -// if (Config.DEBUG) -// Logger.info("Received positive log result for %, loading user", uuid.toString()); -// loadUser(uuid); -// } -// case "queue-lock-failed" -> Logger.warning("Encountered uuid that was locked and had a lock queued: %, lock is from %", in.readUTF(), in.readUTF()); -// case "try-unlock-result" -> { -// if (in.readBoolean()) { -// // ignore? -// return; -// } -// Logger.severe("Unable to unlock %.", in.readUTF()); -// } -// case "locked-queue-lock" -> { -// if (!in.readBoolean()) { -// Logger.warning("Got false back from locked queue lock"); -// return; -// } -// UUID uuid = UUID.fromString(in.readUTF()); -// if (Config.DEBUG) -// Logger.info("Received positive log result for %, loading user", uuid.toString()); -// loadUser(uuid); -// } -// case "check-lock-result" -> { -// -// } -// } -// } -// -// private void loadUser(UUID uuid) { -// new BukkitRunnable() { -// @Override -// public void run() { -// String sql = "SELECT * FROM generic_quest_progress WHERE uuid = ?"; -// try { -// PreparedStatement statement = Database.getDatabase().getConnection().prepareStatement(sql); -// statement.setString(1, uuid.toString()); -// ResultSet resultSet = statement.executeQuery(); -// if (resultSet.next() && resultSet.getInt("year_day") == Utilities.getYearDay()) { -// if (Quest.loadDailyQuest( -// resultSet.getString("quest"), -// resultSet.getString("quest_variant"), -// resultSet.getInt("step_1_progress"), -// resultSet.getInt("step_2_progress"), -// uuid, -// resultSet.getInt("amount"), -// resultSet.getInt("reward_received") == 1)) { -// if (Config.DEBUG) -// Logger.info("Loading daily quest for %", uuid.toString()); -// return; -// } else -// Logger.warning("Unable to load quest for %, creating new quest...", uuid.toString()); -// } -// } catch (SQLException exception) { -// exception.printStackTrace(); -// } -// if (Config.DEBUG) -// Logger.info("Creating new daily quest for %", uuid.toString()); -// Quest.createDailyQuest(Bukkit.getPlayer(uuid)); -// } -// }.runTaskAsynchronously(AQuest.getInstance()); -// } -//} diff --git a/src/main/java/com/alttd/altitudequests/objects/Quest.java b/src/main/java/com/alttd/altitudequests/objects/Quest.java index 80e454a..c89b998 100644 --- a/src/main/java/com/alttd/altitudequests/objects/Quest.java +++ b/src/main/java/com/alttd/altitudequests/objects/Quest.java @@ -22,6 +22,7 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.*; +import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; public abstract class Quest { @@ -136,17 +137,11 @@ public abstract class Quest { } } -// public static void setActiveWeeklyQuest(Quest newQuest) { -// Quest.weeklyQuest = newQuest; -// } - // private static final HashSet queriedUsers = new HashSet<>(); public static void tryLoadDailyQuest(UUID uuid) { -// if (queriedUsers.contains(uuid)) -// return; if (dailyQuestContainsKey(uuid)) return; -// queriedUsers.add(uuid); + new BukkitRunnable() { @Override public void run() { @@ -157,12 +152,14 @@ public abstract class Quest { }.runTaskAsynchronously(AQuest.getInstance()); } - public static void unloadUser(UUID uuid) { //Pls only run async -// queriedUsers.remove(uuid); - Quest quest = removeDailyQuest(uuid); - if (quest == null) - return; - quest.save(); + public static CompletableFuture unloadUser(UUID uuid) { + return CompletableFuture.supplyAsync(() ->{ + Quest quest = removeDailyQuest(uuid); + if (quest == null) + return false; + quest.save(); + return true; + }); } public static void saveAll() { 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 948ee57..f02158d 100644 --- a/src/main/java/com/alttd/altitudequests/objects/quests/OtherQuest.java +++ b/src/main/java/com/alttd/altitudequests/objects/quests/OtherQuest.java @@ -192,14 +192,6 @@ public class OtherQuest extends Quest { checkDone(); } - //public void brewingStarted(ItemStack ingredient, Location brewingStandLocation){ - // Logger.warning("Brewing Started"); - //} - - //public void brewingFinished(List results, Location brewingStandLocation) { - // Logger.warning("Brewing Finished"); - //} - public static List getSubTypes() { return QuestsConfig.OTHER_QUEST.stream().map(Variant::getInternalName).collect(Collectors.toList()); }