From 84b64415603cee55d38b596394783dde0909f89c Mon Sep 17 00:00:00 2001 From: Shuiling <1668589925@qq.com> Date: Tue, 6 Aug 2024 22:23:24 -0700 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=8E=A9=E5=AE=B6?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E4=BA=8B=E4=BB=B6=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../catseedlogin/bukkit/CatSeedLogin.java | 7 +++++++ .../bukkit/object/LoginPlayerHelper.java | 20 +++++-------------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/main/java/cc/baka9/catseedlogin/bukkit/CatSeedLogin.java b/src/main/java/cc/baka9/catseedlogin/bukkit/CatSeedLogin.java index b78e7f4..1fb3fcd 100644 --- a/src/main/java/cc/baka9/catseedlogin/bukkit/CatSeedLogin.java +++ b/src/main/java/cc/baka9/catseedlogin/bukkit/CatSeedLogin.java @@ -8,6 +8,7 @@ import org.bukkit.command.PluginCommand; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; @@ -142,6 +143,12 @@ public void onPlayerQuit(PlayerQuitEvent event) { timeoutManager.onPlayerQuit(event.getPlayer().getName()); } + @EventHandler + public void onPlayerJoin(PlayerJoinEvent event) { + // 当玩家加入时调用 + timeoutManager.onPlayerJoin(event.getPlayer().getName()); + } + @Override public void onDisable(){ Task.cancelAll(); diff --git a/src/main/java/cc/baka9/catseedlogin/bukkit/object/LoginPlayerHelper.java b/src/main/java/cc/baka9/catseedlogin/bukkit/object/LoginPlayerHelper.java index d758843..fbd6f77 100644 --- a/src/main/java/cc/baka9/catseedlogin/bukkit/object/LoginPlayerHelper.java +++ b/src/main/java/cc/baka9/catseedlogin/bukkit/object/LoginPlayerHelper.java @@ -139,27 +139,17 @@ public void onPlayerQuit(String playerName) { long exitTime = System.currentTimeMillis(); playerExitTimes.put(playerName, exitTime); System.out.println("玩家 " + playerName + " 退出,时间: " + exitTime); + System.out.println("当前退出时间记录: " + playerExitTimes); } public boolean onPlayerJoin(String playerName) { long currentTime = System.currentTimeMillis(); Long exitTime = playerExitTimes.get(playerName); - System.out.println("玩家 " + playerName + " 退出,时间: " + exitTime); + System.out.println("玩家 " + playerName + " 加入,时间: " + currentTime); + System.out.println("玩家 " + playerName + " 退出时间: " + exitTime); + System.out.println("当前退出时间记录: " + playerExitTimes); - if (exitTime != null) { - // 检查是否超时 - if (currentTime - exitTime > timeoutDuration) { - // 超时,返回false - return false; - } else { - // 未超时,返回true并清除记录 - playerExitTimes.remove(playerName); - return true; - } - } else { - // 没有退出时间记录,可能是新玩家,返回false - return false; - } + return exitTime != null && currentTime - exitTime <= timeoutDuration ? playerExitTimes.remove(playerName) : false; }