From b6dfad4aedc082aad3d9a22d94c48bc14b430925 Mon Sep 17 00:00:00 2001 From: youpaishidifu <1@ypshidifu.cn> Date: Wed, 28 Oct 2026 16:58:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC58=E6=89=B9=EF=BC=9AAI=E8=81=8A?= =?UTF-8?q?=E5=A4=A9=E6=AF=8F=E6=AC=A1=E8=AF=B7=E6=B1=82=E5=89=8D=E9=87=8D?= =?UTF-8?q?=E8=AF=BB=E9=85=8D=E7=BD=AE=20-=20sendToModel:=20=E5=8F=91?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E5=89=8D=E9=87=8D=E8=AF=BBmodels.json/?= =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86.json/=E6=8F=90=E7=A4=BA=E8=AF=8D.tx?= =?UTF-8?q?t=20-=20checkAutoChat:=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=E4=B9=9F=E9=87=8D=E8=AF=BB=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=20-=20=E9=81=BF=E5=85=8D=E6=A8=A1=E5=9E=8B429/403?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E5=90=8E=E8=BF=98=E7=94=A8=E6=97=A7=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=BB=A7=E7=BB=AD=E5=8F=91=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Sdf1_login/AIChatManager.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/Sdf1_login/AIChatManager.java b/src/main/java/Sdf1_login/AIChatManager.java index b904938..fb7e467 100644 --- a/src/main/java/Sdf1_login/AIChatManager.java +++ b/src/main/java/Sdf1_login/AIChatManager.java @@ -422,6 +422,10 @@ public class AIChatManager { * @param broadcast 是否广播回复(自动互动时为 true) */ public void sendToModel(String modelAlias, String prompt, Player player, boolean broadcast) { + // ★ 每次发请求前重读配置,获取最新的模型、人设、黑名单等信息 + // 避免模型429、403等报错后还用旧配置继续发请求 + loadConfig(); + // 黑名单检查 if (isBlacklisted(prompt)) { plugin.getLogger().info("[AI聊天] 黑名单拦截: " + prompt.substring(0, Math.min(50, prompt.length()))); @@ -762,6 +766,9 @@ public class AIChatManager { if (!autoChatRunning.compareAndSet(false, true)) return; try { + // ★ 每次发请求前重读配置,获取最新的模型、人设、黑名单等信息 + loadConfig(); + // 检查是否到了自动互动时间 long intervalMs = (minIntervalMin + (int)(Math.random() * (maxIntervalMin - minIntervalMin + 1))) * 60000L;