第58批修复:
- 领地误删致命bug:AreaProtection 改用 userExistsIgnoreCase(SQL异常返回true,不误删) - getConnection 自动重连:连接已关闭时重建,解决 SN/信誉同步 database connection closed - userExists/userExistsIgnoreCase/userExistsStrict 改用 getConnection() 自动重连 - AI配置解析跳过诊断日志:findProviderUrl 返回 null 时输出具体供应商名和路径,便于排查 0个模型 问题
This commit is contained in:
@@ -274,7 +274,10 @@ public class AIChatManager {
|
|||||||
boolean isCustom = supplierConfig.has("baseurl");
|
boolean isCustom = supplierConfig.has("baseurl");
|
||||||
boolean isBuiltin = supplierConfig.has("供应商名字");
|
boolean isBuiltin = supplierConfig.has("供应商名字");
|
||||||
|
|
||||||
if (!isCustom && !isBuiltin) continue;
|
if (!isCustom && !isBuiltin) {
|
||||||
|
plugin.getLogger().info("[AI聊天] 配置跳过[" + key + "]: 既无baseurl也无供应商名字");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
String baseUrl;
|
String baseUrl;
|
||||||
String apiKey = getStr(supplierConfig, "apikey");
|
String apiKey = getStr(supplierConfig, "apikey");
|
||||||
@@ -286,9 +289,14 @@ public class AIChatManager {
|
|||||||
} else {
|
} else {
|
||||||
String providerName = getStr(supplierConfig, "供应商名字");
|
String providerName = getStr(supplierConfig, "供应商名字");
|
||||||
baseUrl = findProviderUrl(providerName);
|
baseUrl = findProviderUrl(providerName);
|
||||||
|
if (baseUrl == null || baseUrl.isEmpty()) {
|
||||||
|
plugin.getLogger().warning("[AI聊天] 配置跳过[" + key + "]: 内置供应商 '" + providerName + "' 在 供应商.json 中找不到URL");
|
||||||
|
plugin.getLogger().warning("[AI聊天] 诊断: 请确认 供应商.json 中存在路径 '" + providerName + "',且路径拼写完全正确");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (baseUrl == null || baseUrl.isEmpty() || apiKey == null || apiKey.isEmpty()) {
|
if (baseUrl == null || baseUrl.isEmpty() || apiKey == null || apiKey.isEmpty()) {
|
||||||
|
plugin.getLogger().warning("[AI聊天] 配置跳过[" + key + "]: baseUrl=" + baseUrl + ", apiKey=" + apiKey);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10911,8 +10911,11 @@ public class AreaProtection implements Listener {
|
|||||||
String reason = (String) o[1];
|
String reason = (String) o[1];
|
||||||
if (reason == null) {
|
if (reason == null) {
|
||||||
if (dbMgr == null) continue;
|
if (dbMgr == null) continue;
|
||||||
|
// ★ 第58批修复:SQL 异常时 userExists 返回 false,
|
||||||
|
// 会把 DB 抖动误判为"账户已注销"从而删领地。
|
||||||
|
// 改用 userExistsIgnoreCase(异常返回 true,宁可放过)。
|
||||||
try {
|
try {
|
||||||
if (!dbMgr.userExists(ac.owner)) {
|
if (!dbMgr.userExistsIgnoreCase(ac.owner)) {
|
||||||
reason = "账户已注销";
|
reason = "账户已注销";
|
||||||
}
|
}
|
||||||
} catch (Exception ignored) {}
|
} catch (Exception ignored) {}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user