From 571fa366bcceb6c2b911594f4bef02f1cbbaaae4 Mon Sep 17 00:00:00 2001 From: LabodiDavid Date: Fri, 28 Mar 2025 19:19:13 +0100 Subject: [PATCH] Handling unauthenticated disconnect - server password --- .../listeners/ServerPasswordEvents.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/hu/ditservices/listeners/ServerPasswordEvents.java b/src/main/java/hu/ditservices/listeners/ServerPasswordEvents.java index f28ae65..d5fe7b9 100644 --- a/src/main/java/hu/ditservices/listeners/ServerPasswordEvents.java +++ b/src/main/java/hu/ditservices/listeners/ServerPasswordEvents.java @@ -14,6 +14,8 @@ import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.scheduler.BukkitRunnable; +import java.util.UUID; + public class ServerPasswordEvents implements Listener { private STPlugin plugin; private FileConfiguration config; @@ -79,9 +81,24 @@ public class ServerPasswordEvents implements Listener { @EventHandler public void onPlayerQuit(PlayerQuitEvent event) { - if ((!config.getBoolean("ServerPassword.rememberUntilRestart")) - || (!plugin.getServerPasswordData().getAuthenticatedPlayers().getOrDefault(event.getPlayer().getUniqueId(),false))) { - plugin.getServerPasswordData().getAuthenticatedPlayers().remove(event.getPlayer().getUniqueId()); + Player player = event.getPlayer(); + UUID uuid = player.getUniqueId(); + + if (plugin.getServerPasswordData().getAuthenticatedPlayers().getOrDefault(uuid, false)) { + if (!config.getBoolean("ServerPassword.rememberUntilRestart")) { + plugin.getServerPasswordData().getAuthenticatedPlayers().remove(uuid); + } + } else { + if (plugin.getConfig().getBoolean("ServerPassword.preventInventory")) { + if (plugin.getServerPasswordData().getInventoryMap().containsKey(uuid)) { + player.getInventory().setContents(plugin.getServerPasswordData().getInventoryMap().get(uuid)); + plugin.getServerPasswordData().getInventoryMap().remove(uuid); + } + if (plugin.getServerPasswordData().getArmorMap().containsKey(uuid)) { + player.getInventory().setArmorContents(plugin.getServerPasswordData().getArmorMap().get(uuid)); + plugin.getServerPasswordData().getArmorMap().remove(uuid); + } + } } } }