From 13ee2eb51512def5c75906e1a8307ecd0ebbf0a9 Mon Sep 17 00:00:00 2001 From: youpaishidifu <1@ypshidifu.cn> Date: Wed, 28 Oct 2026 17:37:22 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC58=E6=89=B9=EF=BC=9A=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E4=BA=92=E5=8A=A8=E9=85=8D=E7=BD=AE=E9=87=8D?= =?UTF-8?q?=E8=AF=BB=E5=88=B7=E5=B1=8F=20-=20loadConfig()=20=E5=8A=A0=20qu?= =?UTF-8?q?iet=20=E5=8F=82=E6=95=B0=EF=BC=8C=E9=87=8D=E8=AF=BB=E6=97=B6?= =?UTF-8?q?=E4=B8=8D=E6=89=93=E5=8D=B0=E9=85=8D=E7=BD=AE=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E6=97=A5=E5=BF=97=20-=20checkAutoChat=20=E4=B8=AD=20loadConfig?= =?UTF-8?q?=20=E7=A7=BB=E5=88=B0=E6=97=B6=E9=97=B4=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E4=B9=8B=E5=90=8E=EF=BC=8C=E5=8F=AA=E6=9C=89=E7=9C=9F=E6=AD=A3?= =?UTF-8?q?=E5=8F=91=E8=AF=B7=E6=B1=82=E6=97=B6=E6=89=8D=E9=87=8D=E8=AF=BB?= =?UTF-8?q?=20-=20=E9=81=BF=E5=85=8D=E6=AF=8F=E7=A7=92=E5=88=B7=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Sdf1_login/AIChatManager.java | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/Sdf1_login/AIChatManager.java b/src/main/java/Sdf1_login/AIChatManager.java index 972ac3c..4be9d94 100644 --- a/src/main/java/Sdf1_login/AIChatManager.java +++ b/src/main/java/Sdf1_login/AIChatManager.java @@ -103,6 +103,14 @@ public class AIChatManager { // ==================== 配置加载 ==================== private void loadConfig() { + loadConfig(false); + } + + /** + * 加载配置 + * @param quiet true=静默模式(重读时不打印"配置加载完成"),false=初始加载(打印) + */ + private void loadConfig(boolean quiet) { try { // 确保 openai 目录存在 File openaiDir = new File(plugin.getDataFolder(), "openai"); @@ -229,8 +237,10 @@ public class AIChatManager { issueRecord = JsonParser.parseString(Files.readString(issueFile.toPath(), StandardCharsets.UTF_8)).getAsJsonObject(); } - plugin.getLogger().info("[AI聊天] 配置加载完成: " + modelEndpoints.size() + "个模型, " - + aliasToFullModel.size() + "个别名, 黑名单" + blacklist.size() + "条"); + if (!quiet) { + plugin.getLogger().info("[AI聊天] 配置加载完成: " + modelEndpoints.size() + "个模型, " + + aliasToFullModel.size() + "个别名, 黑名单" + blacklist.size() + "条"); + } } catch (Exception e) { plugin.getLogger().warning("[AI聊天] 配置加载失败: " + e.getMessage()); @@ -770,9 +780,6 @@ public class AIChatManager { if (!autoChatRunning.compareAndSet(false, true)) return; try { - // ★ 每次发请求前重读配置,获取最新的模型、人设、黑名单等信息 - loadConfig(); - // 检查是否到了自动互动时间 long intervalMs = (minIntervalMin + (int)(Math.random() * (maxIntervalMin - minIntervalMin + 1))) * 60000L; @@ -780,6 +787,9 @@ public class AIChatManager { if (recentChatBuffer.isEmpty()) return; if (defaultModelFull.isEmpty()) return; + // ★ 每次发请求前重读配置(静默模式,不打印日志避免刷屏) + loadConfig(true); + // ★ 互动指标:在线玩家数量达标才触发自动互动 // ★ 日志静默:调度器每1秒跑一次,跳过时不再每秒刷屏。 // 仅在状态变化(在线玩家从达标→不达标)时记一条,避免日志被刷屏。