Remove commented code and ensure async execution in specific methods

All code sections that were commented out are now completely removed, resulting in a cleaner and more efficient codebase. In addition, the method 'unloadUser' in the Quest class, which previously only included a comment suggesting it should be run as an async operation, is now forced to run in an asynchronous manner, potentially improving performance.
This commit is contained in:
Teriuihi 2024-04-13 20:32:56 +02:00
parent 46bfb4fd65
commit c6b186e2c6
5 changed files with 13 additions and 139 deletions

View File

@ -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();

View File

@ -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()));
}
}

View File

@ -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());
// }
//}

View File

@ -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<UUID> 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<Boolean> unloadUser(UUID uuid) {
return CompletableFuture.supplyAsync(() ->{
Quest quest = removeDailyQuest(uuid);
if (quest == null)
return false;
quest.save();
return true;
});
}
public static void saveAll() {

View File

@ -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 <ItemStack> results, Location brewingStandLocation) {
// Logger.warning("Brewing Finished");
//}
public static List<String> getSubTypes() {
return QuestsConfig.OTHER_QUEST.stream().map(Variant::getInternalName).collect(Collectors.toList());
}