修复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:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user