From 6892c47599527c1d3c346284f6cc81387e4e79a8 Mon Sep 17 00:00:00 2001 From: youpaishidifu <1@ypshidifu.cn> Date: Wed, 28 Oct 2026 12:49:08 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC58=E6=89=B9=E6=AD=BB=E5=BE=AA=E7=8E=AF?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=20=E8=87=AA=E5=8A=A8=E4=BA=92=E5=8A=A8?= =?UTF-8?q?=E8=A7=A6=E5=8F=91=E5=89=8D=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=88=B3+=E5=A4=B1=E8=B4=A5=E4=B9=9F=E8=8A=82=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因: lastAiReplyTime初始0且只在请求成功时更新。 请求失败→时间戳不更新→每秒检查都判定超时→每秒触发→无限死循环。 修复: 触发前先更新时间戳(请求挂起/超时/失败都不会被下一秒重复触发); handleRequestFailure也更新时间戳双保险。 --- src/main/java/Sdf1_login/AIChatManager.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/Sdf1_login/AIChatManager.java b/src/main/java/Sdf1_login/AIChatManager.java index 3b89ed3..1f9b72b 100644 --- a/src/main/java/Sdf1_login/AIChatManager.java +++ b/src/main/java/Sdf1_login/AIChatManager.java @@ -534,6 +534,8 @@ public class AIChatManager { private void handleRequestFailure(String prompt, String errorDetail) { plugin.getLogger().warning("[AI聊天] 请求失败: " + errorDetail); recordIssue(prompt, "[请求失败] " + errorDetail); + // ★ 死循环防护:失败也更新时间戳,间隔内不会再触发 + lastAiReplyTime = System.currentTimeMillis(); } // ==================== 聊天处理 ==================== @@ -611,6 +613,8 @@ public class AIChatManager { String prompt = "以下是服务器最近的聊天记录:\n" + recentChat + "\n\n请根据聊天内容,自然地参与对话或回答问题。"; plugin.getLogger().info("[AI聊天] 触发自动互动"); + // ★ 死循环防护:触发前先更新时间戳,请求挂起/超时/失败都不会被下一秒重复触发 + lastAiReplyTime = System.currentTimeMillis(); // 异步发送 String systemPrompt = buildSystemPrompt();