修复PHP→Java配置同步:双向同步全链路修复

1. PHP handleUpdateConfig 写入 web_admin_changes 变更队列
2. Java pollAdminChanges 新增 config_change 处理,调用 setAreaConfigValue
3. Timer A 新增 pollAdminChanges 轮询(永不暂停),确保全员离线也能拉取PHP变更
4. 双向同步验证:Java→PHP(Timer D) ✅ / PHP→Java(Timer A) ✅
This commit is contained in:
2026-06-27 19:55:42 +08:00
parent 7efa78dbf9
commit d0c4f45928
+16
View File
@@ -1603,6 +1603,12 @@ public class WebManager {
} catch (Exception e) { /* 静默 */ }
});
}
// ★ PHP→Java变更轮询(管理员在PHP改了配置/领地,Java及时拉取)
if (initialSyncComplete) {
submitNormalDbTask("TimerA-pollAdminChanges", () -> {
try { pollAdminChanges(); } catch (Exception e) { /* 静默 */ }
});
}
}
// 自调度下一轮(3~5秒,快速响应登录请求,错峰避免锁库)
@@ -3110,6 +3116,16 @@ public class WebManager {
}
break;
}
case "config_change": {
String configKey = String.valueOf(changeData.getOrDefault("key", ""));
String configValue = String.valueOf(changeData.getOrDefault("value", ""));
if (!configKey.isEmpty()) {
areaProtect.setAreaConfigValue(configKey, configValue);
plugin.getLogger().info("[Web通信] PHP端更新全局配置: " + configKey + " = " + configValue);
hadChange = true;
}
break;
}
default:
plugin.getLogger().fine("[Web通信] 未知变更类型: " + changeType);
}