From 340726205cf4d0c2d5d2095c12f4dc917fcbb460 Mon Sep 17 00:00:00 2001 From: youpaishidifu <1@ypshidifu.cn> Date: Sun, 25 Oct 2026 17:37:15 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC55=E6=89=B9=EF=BC=9A=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E4=B8=BB=E6=9D=83=E4=BF=AE=E5=A4=8D=20-=20to?= =?UTF-8?q?ken=E7=94=9F=E6=88=90=E6=97=B6=E6=8C=89=E5=AE=9E=E9=99=85?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E7=8A=B6=E6=80=81=E6=8E=A8login=5Fverified?= =?UTF-8?q?=EF=BC=88=E6=9C=AA=E7=99=BB=E5=BD=95=E6=8E=A80=E8=AE=A9PHP?= =?UTF-8?q?=E6=B8=85=E9=99=A4=E6=97=A7=E8=AE=B0=E5=BD=95=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Sdf1_login/WebManager.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/Sdf1_login/WebManager.java b/src/main/java/Sdf1_login/WebManager.java index f543426..fac3e6d 100644 --- a/src/main/java/Sdf1_login/WebManager.java +++ b/src/main/java/Sdf1_login/WebManager.java @@ -8817,6 +8817,7 @@ public class WebManager { // 实际上玩家就在游戏里,所以online=1 // ★ 使用push_player_login_status端点,带上online=1(玩家就在游戏里,已认证) boolean isRegistered = plugin.getDb().userExists(playerName); + boolean isLoggedIn = plugin.getLoggedIn().contains(playerName); final String tokenFinal = token; // ★★★ 致命修复:原实现在主线程(命令处理)同步调用 doGet() → HttpClient.send(), @@ -8840,7 +8841,7 @@ public class WebManager { + "&online=1" + "®istered=" + (isRegistered ? "1" : "0") + "&ip=" + java.net.URLEncoder.encode(playerIp, "UTF-8") - + "&login_verified=1"; // ★ 玩家在游戏里已认证,直接告诉PHP放行 + + "&login_verified=" + (isLoggedIn ? "1" : "0"); // ★ 按实际登录状态告知PHP(未登录推0让PHP清除旧记录) String response = doGet(urlStr); if (response != null) { @@ -8904,6 +8905,7 @@ public class WebManager { // ★ 生成token时检查login.db并推送注册状态给PHP boolean isRegistered = plugin.getDb().userExists(playerName); + boolean isLoggedIn = plugin.getLoggedIn().contains(playerName); // ★ 使用push_player_login_status端点,推送玩家在线状态+token到PHP // ★ 必须异步执行,不能在server thread上同步HTTP(会导致10秒阻塞!) @@ -8923,7 +8925,7 @@ public class WebManager { + "&online=1" + "®istered=" + (isRegistered ? "1" : "0") + "&ip=" + java.net.URLEncoder.encode(playerIp, "UTF-8") - + "&login_verified=1"; + + "&login_verified=" + (isLoggedIn ? "1" : "0"); String response = doGet(urlStr); if (response != null) {