Commit Graph
100 Commits
Author SHA1 Message Date
youpaishidifu a175024766 二十二批:修复主线程SQLite同步读致watchdog卡服 + 错位配置目录检测
Check Source / check (push) Successful in 5s
Auto Release / build (push) Successful in 2m22s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
- restoreInventory/hideInventoryDelayed 的 loadInventoryBackup 挪异步线程读库,背包写回仍在主线程;restoreInventory 增加 afterRestore 回调保持「先恢复背包、再发菜单雪球」原顺序(Main autoLogin + LoginManager 注册/登录三处调用点同步改)
- DatabaseManager 连接增加 PRAGMA busy_timeout=5000,争锁5秒快速失败而非无限等待
- BanBroadcastManager 启动时检测错位配置目录 plugins/ban/(插件只读 plugins/Sdf1_login/ban/),发现即警告指明正确路径(Linux宝塔服实测:旧版规则配置.md放错目录被误认为安全升级没生效)
2026-10-15 23:27:51 +08:00
youpaishidifu 23c1b9e468 第二十一批:已存在的ban/规则配置.md安全升级——saveResource只补缺失文件永不覆盖既有文件,模板新增配置行(播报起点)对生产服永远释放不出来;ensureConfigExists对已存在md走safeUpgradeDoc(原文件为基底逐字保留、只补新行、.bak校验失败取消、原子写失败还原、无新增幂等)
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m12s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 2s
2026-10-15 18:34:14 +08:00
youpaishidifu 6d19e23f42 第二十批:修表格取值列错位(split丢尾空串致取到功能说明列、说明含「关闭」被容错命中→mode恒0不播) + 配置重载改增量日志(签名无变更静默、有变更打明细)
Check Source / check (push) Successful in 5s
Auto Release / build (push) Successful in 2m24s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-15 18:00:24 +08:00
youpaishidifu ae69036b9b 第十九批:封禁公示按播报起点过滤(推送带created+ban_cutoff、零发送首轮/起点变化强制推) + 播报定时器生命周期(全员下线停机玩家上线恢复,关闭≠停机)
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m46s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 2s
2026-10-15 14:06:45 +08:00
youpaishidifu 9bc8aaac37 第十八批遗留修复:播报模式填0仍播报——parseMode把0并入false映射成2(由远到近),拆为0=关闭/false=由远到近,加「关闭」容错
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m28s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-15 13:03:28 +08:00
youpaishidifu c83eaad23f 第十八批:cfg.json语法有效值空改继承不判损毁(回退表格/默认、真损毁才退md、每轮重查json、jar无模板日志友好化) + 新增/banget点名全量封禁查询(user/ip自动识别、遍历getEntries防NAME型API失效)
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m28s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-15 12:36:55 +08:00
youpaishidifu c52d235972 第十七批补:播报懒重载语义补全——每次播报窗口先回出厂默认再解析配置,开关决定这次报/不报、最新间隔用于下次排程计时
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m48s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-14 21:02:19 +08:00
youpaishidifu 9a6a983ad7 第十七批:封禁播报一次发6条、随机间隔日志证据、无人在线完全静默、新增播报起点过滤插件安装前的历史封禁
Check Source / check (push) Successful in 5s
Auto Release / build (push) Successful in 2m20s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-14 20:33:05 +08:00
youpaishidifu 8d73722b6a 第十六批:雪球菜单SN校验+游戏内轮询封禁播报(BanBroadcastManager)
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m30s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 2s
2026-10-14 18:04:48 +08:00
youpaishidifu 1c34c9618b 第十五批:execute as @s 拦截补刀、空指令统一压制、主线程卡顿看门狗
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m22s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-14 16:02:26 +08:00
youpaishidifu 2d9dd5b438 第十四批:控制台execute链@s拦截与单斜杠中文化、二手批量上架成功跳过计数、OP白名单定时器墙钟自对齐与ops.json先备份后撤销、撤销提示病句与最小化信息披露
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m26s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 2s
2026-10-14 13:59:16 +08:00
youpaishidifu 9cd85013d5 第十三批:二手管理员判定配置化+面板密码门+opwl轮询对齐+控制台@s中文化
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m14s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
问题1:二手管理员认定遵守配置文件「谁是管理员」三模式
- 补齐 applySecondHandCfgItem 未分派的「谁是管理员」「默认管理员面板密码」两行
- 新增 shAdminMode/shAdminPlayer/shAdminPassword 三字段
- isShAdmin 改 tag(默认)/op/player+名字 严格判定,tag 模式不再放行 OP

问题2:二手管理面板加密码验证(原为点击即进)
- 密码取 md「默认管理员面板密码」,未配置回退全局管理密码
- 新增 ChatInputManager.SH_ADMIN_AUTH 状态,聊天输入比对后才开面板
- 会话级记忆 shAdminAuthed,退出即失效;输入「取消」放弃

问题3:opwl 15秒轮询初始延迟对齐墙钟边界
- 原固定 300 tick 从启动时刻起算导致恒偏6秒(实际6/21/36/51)
- 改为对齐下一个 15秒边界,执行点回到 0/15/30/45 秒

问题4:控制台 @s 选择器报错中文化
- ServerCommandEvent HIGH 优先级拦下,取消后原版 No player was found 不再出现
- 用中文说明是第几个参数、@s 含义、三种改法
2026-10-13 23:19:33 +08:00
youpaishidifu 39d475a33b 修复二手交易规则.md的语法错误
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m23s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-13 21:07:29 +08:00
youpaishidifu 17c1b0c44f md混合配置文件安全交换:以原文件为基底(说明文本/用户值原样保留)补入模板多出的配置行与配置代码块,备份.bak失败即取消;二手规则与邀请规则接入
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m29s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-13 20:53:15 +08:00
youpaishidifu 26ab7b2435 配置安全交换机制:模板多字段时备份.bak(失败即取消)→重建模板→内存老值回填,消息/SMTP/插件设置三配置接入,取代旧append补全
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m10s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-13 19:55:10 +08:00
youpaishidifu cfe2eafc64 第十二批:二手市场管理员面板——左键下架(9格理由面板,8理由读md JSON块)/右键上架,下架物品暂存等卖家登录发放,重新上架离线不通知
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m32s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 2s
2026-10-13 19:22:52 +08:00
youpaishidifu 4352a35124 第十一批:修复秒/毫秒时间戳混存导致1970年显示bug
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m7s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
- 根因:register_time/last_login_time/invited_at 两种单位混存——Java
  本地注册写毫秒(System.currentTimeMillis)、PHP同步拉回写秒(time()),
  而所有显示端都按毫秒解释 → 秒值~1.78e9显示为1970-01-21
- DurationParser 新增 toMs() 归一化辅助(<10^12视为秒,×1000,幂等)
- whois/Main /account/GUI多账号/邀请GUI绑定时间/临时密码邮件:读取端统一归一化
- InviteManager.reconcileInviteData:秒级存量invited_at原地×1000迁移,
  回填兜底链register_time/last_login_time先归一化;月度计数与明细比较前归一化
- ChatFilterManager.isNewPlayerUnder1Hour:旧代码无条件×1000,对毫秒行
  算出巨大负elapsed恒判新玩家 → 改用toMs
- AreaProtection/WebManager 领地转让5分钟防秒退检查:同样归一化
- 不动同步层(applyPulledRow保持原值),避免与PHP对账拉锯
2026-10-13 14:55:29 +08:00
youpaishidifu 4eec0c9a39 第十批:邀请存量数据自愈(回填绑定时间+重算月度计数)、本月邀请头颅明细GUI、修复Commission跨库查询失效(bond_transaction在bond.db)
Check Source / check (push) Successful in 5s
Auto Release / build (push) Successful in 2m34s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-12 17:44:37 +08:00
youpaishidifu 21c61e9e5c 第九批:邀请系统计数修复+绑定显示邀请人+双向奖励+配置懒更新
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m46s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
1. 计数修复:monthly_invite_count 改为绑定邀请码时由 onInviteeBind 计入
   (旧逻辑在被邀请人签到才计数,导致绑定成功但未签到时 GUI 恒显示已邀请0人);
   onInviteeCheckIn 清空计数逻辑避免重复累加。

2. B端显示:新增 invited_at 列(毫秒时间戳落库),邀请数据GUI slot16
   已绑定时改显示「邀请成功时间(yyyy-MM-dd HH:mm)+邀请人名字」,
   未绑定才显示输入邀请码按钮;点击已绑定则拦截。

3. 双向奖励:CommissionManager 适配新规则md 4键(邀请人单次奖励/
   被邀请人单次奖励/单日邀请奖励上限/单日邀请翻倍额度);
   payInviteBond 给邀请人(含每邀请X人翻Y倍)、payInviteeBond 给被邀请人。

4. 配置懒更新:玩家绑定邀请码时调用 loadRules() 实时重载规则md,
   不再依赖启动加载或定时热重载。
2026-10-12 17:00:14 +08:00
youpaishidifu df56e2c293 第八批:雪球菜单入口接入SN系统(换载体转移SN)、邀请码一次性持久落库并按新规则发债券、代码层删除提成规则.txt改由邀请好友赢债券/规则.md控制
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m12s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-12 15:51:38 +08:00
youpaishidifu c214abeafa 新bug的预热修复
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 2m32s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-12 15:43:33 +08:00
youpaishidifu 5e9282926c 二手商店第七批: 修复切换出售偏好误退还物品(物品复制)——refreshPublishGui 把物品克隆进新界面后 openInventory 换视图会触发 InventoryCloseEvent,onPublishGuiClose 扫旧界面仍见物品就退了背包,而新界面还有一份克隆=双份;改为换视图前先清空旧界面,CloseEvent 扫到空界面不退。下架/超时/取消退还路径不变
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m29s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-12 14:13:07 +08:00
youpaishidifu da89a98ef2 二手商店第六批: 配置热重载生效时序修复——①购买结算前先做增量对齐,本笔交易立即按新费率扣款(原购买触发点在结算之后,13:31改0.0038、13:33仍按2%结算) ②打开二手商店界面先对齐,lore手续费即时更新 ③定时扫描15分钟改15秒,对齐每分钟第0/15/30/45秒(原理解偏差:把整点写成了0/15/30/45分钟)
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m22s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-12 13:50:01 +08:00
youpaishidifu 8a167d4b64 二手商店第五批: 批量上架状态机加固——①超时计时器改会话令牌制(旧计时器不再级联误杀新会话,根治批量莫名中止/反复超时像锁死) ②批量入口先清理残留会话并退还未定价暂存件 ③每件定价前与入库前双重复检上架上限,超限中止退还不超发 ④玩家退出退还暂存/队列物品防吞物 ⑤静默return补提示
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m45s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-12 13:21:38 +08:00
youpaishidifu 4a24e20bd6 更新resources的交易规则模板
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 2m15s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 2s
2026-10-12 10:51:13 +08:00
youpaishidifu ba63671cc3 二手商店第四批五修复: ①商店lore展示卖家描述 ②手续费仅奸商模式显示(正常模式隐藏) ③二手消息物品名改官方zh_cn.json翻译 ④配置增量热重载(每15分扫描diff播报+购买/上架触发对齐,平时静默) ⑤opwl注册校验改严格版(DB异常拒绝,堵SQL抖动放行漏洞)
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m41s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-12 10:45:42 +08:00
youpaishidifu 4ba2947ef2 提交resources模板(二手交易规则.md)
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m9s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-12 00:30:13 +08:00
youpaishidifu c95a0eee60 修复二手商店批量上架超时重复退还;手续费兼容5%与5‰写法
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m31s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-12 00:23:11 +08:00
youpaishidifu 572bd2fce2 二手商店手续费真实扣款并新增交易记录库;上架改批量GUI支持编辑下架与偏好切换;人机验证豁免改内存态
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m32s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-11 23:31:37 +08:00
youpaishidifu b0e1c5cf37 二手交易新增物品描述/手续费/上架数量限制/保底价格,用户组加对应字段
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m26s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 2s
- 发布二手商品时可填写<=20字物品描述,6段存储格式向后兼容
- 从 二手交易规则.md 配置区读取手续费、上架上限、最低售价
- UserGroupManager 加 shop_max_listings/shop_min_price 列与查询方法
- WebManager 推送/拉取用户组时同步两字段(-1=跟随全局)
2026-10-11 21:23:54 +08:00
youpaishidifu 0bba2700c0 修复已授权领地成员被错误跟随全局权限限制的严重bug
- PermissionLevel 新增 MEMBER 态(DB role=member)
- getPermissionLevel 在白名单判定前精确查 admin/member 两态
- getEffectiveDeny 新增 2.5 步:MEMBER 豁免领地默认 deny
- info 命令与 waxAllowReason 显示已授权成员身份
2026-10-11 21:23:50 +08:00
youpaishidifu a1e59363d1 修复二手上架异步开GUI报错;物品名翻译改用官方zh_cn.json
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m21s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
- onPublishChat(AsyncPlayerChatEvent)在异步线程直接openInventory触发
  InventoryOpenEvent同步校验异常,整体切回主线程处理(退还/入库/开界面)
- ItemNameResolver 删除手工中文映射表,改走 OfficialTranslations 反向索引
  (启动时自动加载的官方 zh_cn.json,无需再枚举维护)
- OfficialTranslations 新增 reverseMap() 中文→英文键懒构建索引;
  lookUp 去掉逐条调试日志
2026-10-11 18:59:02 +08:00
youpaishidifu 0837386623 违禁品面板与二手商店加固:物品名支持中文翻译、拦截SN/宝箱物品上架
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m27s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
- 新增 ItemNameResolver 翻译中间人:中文物品名(钻石/黑曜石等)与英文ID双向解析,
  支持唯一前缀匹配与提示回填
- 违禁品添加入口(面板+CLI)改用 ItemNameResolver,输入中文自动转标准英文ID入库,
  列表与面板展示中文化(附英文ID)
- 二手商店三处加固:发布、确认上架、购买时拦截 SN 绑定物品与 sdf1_game 宝箱
  自定义物品(§0§k CUSTOM lore),命中即拒绝/退还/自动下架退款
2026-10-11 18:16:57 +08:00
youpaishidifu f6ad2ca3f9 领地门禁文案动态化 + 违禁品管理面板 + 二手交易商店/shopbuy
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m14s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
- 门禁权限(door)文案按启停状态动态显示允许/禁止,CLI与GUI同步
- 违禁品管理面板:访客禁带物品配置、没收计数、退出领地按设置归还(默认不退)
- 新增/shopbuy二手商店:玩家自由上架定价(封底0债券)、商店底部入口、冻结账户拦截
2026-10-11 17:27:53 +08:00
youpaishidifu 54d520ab3d 领地三修:CLI展示框文案按启停动态显示;封堵大小写变种ID越权(身份/白名单/豁免全链路精确匹配+遗留小写条目DB规范名迁移);新增村民交易权限denyVillagerTrade(右键拦截+交易窗兜底+CLI/GUI全链路)
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m33s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 2s
2026-10-11 14:40:59 +08:00
youpaishidifu f844d5c618 恢复 WebManager.java 原始 CRLF 行尾(补丁脚本误转 LF,消除全文件 diff 噪音)
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 1m40s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 2s
2026-10-11 10:40:05 +08:00
youpaishidifu baed9c8e43 商品库存推送加回执单核验:PHP 必须回显 push_id+内容指纹,无回执立即重推一次,两次失败不落基线等下轮
Check Source / check (push) Successful in 8s
Auto Release / build (push) Successful in 2m15s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-11 10:38:38 +08:00
youpaishidifu 9f3dffee1e 修复库存同步覆盖bug(双向对齐+分叉以游戏端为准):本地库存变更经快照比对推回PHP,pull应用时跳过本地未推送差异;流水补推批大小300起步每成功+300至3000、失败减半退避
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m27s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-10 21:50:28 +08:00
youpaishidifu b2aa317c75 更新readme.md,从登陆插件正式修改定位为多功能综合插件
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m18s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-09 18:42:39 +08:00
youpaishidifu 136cf9b8f8 Revert "版号切回3.0(正式版):3.0收尾,补AGPL-3.0协议后同步公开三仓"
This reverts commit d9f7f2de71.
2026-10-09 11:34:47 +08:00
youpaishidifu d9f7f2de71 版号切回3.0(正式版):3.0收尾,补AGPL-3.0协议后同步公开三仓
Check Source / check (push) Successful in 5s
Auto Release / build (push) Successful in 2m9s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-09 11:33:02 +08:00
youpaishidifu 84e6d3bbc0 添加 AGPL-3.0 开源协议:LICENSE 为 gnu.org 官方原文,README 补充协议说明与网络服务开源义务 2026-10-09 11:29:11 +08:00
youpaishidifu 34a344f39c 版号切回3.01(内测版):3.0正式版已圆满收官
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m10s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-09 00:10:51 +08:00
youpaishidifu 84d351b116 未登录白名单加白:正版验证mslogin/正版、找回密码、web/控制台(登录链路相关命令放行)
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m3s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-08 23:27:59 +08:00
youpaishidifu ad11a2bcd3 收紧未登录命令白名单:仅放行 login/l/reg/sdf1_login reset 及中文登录注册
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 2m6s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-08 22:48:39 +08:00
youpaishidifu dea0370084 修复email未登录越权漏洞:从未登录放行名单移除email/绑定/绑定邮箱,三个绑定入口加登录硬校验,版号切回3.0
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m23s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-08 22:18:17 +08:00
youpaishidifu d6af2f69e0 版号切 3.01(内测版)
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m17s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-08 20:40:47 +08:00
youpaishidifu 70f6112ad8 版号切 3.0(正式版)
Check Source / check (push) Successful in 1s
Auto Release / build (push) Successful in 2m12s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-08 20:16:18 +08:00
youpaishidifu cbfdfb016b 三库归位登录凭证/用户组/Php,处罚预告按规则档位修正,解禁与重置不再动人机验证
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 2m4s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
1) login.db 创建即入 登录凭证/、usergroup.db 入 用户组/、web_sync.db 入 Php/(WebManager 5处统一走 webSyncDbFile()),根目录存量由 migrateRootDataFiles 启动最早期整组迁移(.db+-shm+-wal 同进同退,失败整组回滚);2) nextPunishHint 改为按 applyPunish同款判据(violation>=阈值取最高档)计算下一次违规真正命中的档位与配置时长,修复旧实现取 k>违规数 导致第3次违规就预告第6档15分钟、预告与实际处罚长期对不上的问题;3) unmutePlayer/resetPlayer 移除 markReverify 调用,解禁与重置发言违规不再重置人机验证(resetPlayer 顺带清 DB muted_until,避免重置后重启禁言复活)
2026-10-08 18:57:51 +08:00
youpaishidifu 47301edaed 归位迁移改为sqlite三件套原子搬移,失败整组回滚
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 2m6s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
quest_data.db/bond.db/garbage.db/pvp.db 都是 WAL 模式 sqlite,运行时
-shm/-wal 与主库必须同进同退:单搬主库会丢未checkpoint事务导致数据回退,
单搬wal缺主库直接损坏。原实现逐文件rename,崩在中间会留下破损三件套。

改为每个 db 一组,主库/-shm/-wal 整体搬,任一失败立即把已搬的搬回原位;
目标端已存在则整组跳过不合并。创建时路径直接指向子目录(QuestStorage/
PlayerStorage 已改),迁移只兜存量。
2026-10-08 17:49:02 +08:00
youpaishidifu 0ab7c7052c 修复违规计数文案歧义、验证码重验回归、quest_data.db归位
1. 违规计数订正:实际计数一直是1→2→3(incrementViolation是+1),截图显示的
   1/3/6三角数是文案歧义——nextPunishHint返回的第N次违规预告与命中提示的第N次
   违规两行并列,被读成跳号。现改为预告只报处罚档位不报次数,命中提示改为
   「本次为第N次违规」,次数全局只出现一次。

2. 验证码回归修复:isMuted()禁言到期自动解禁时调用markReverify(),把已通过
   人机验证的玩家踢出verifiedPlayers,导致「验证码通过→被禁言→到期解禁→又要
   重验」的死循环。按用户裁定改为:到期自动解禁不再吊销验证状态,仅显式
   /chat unmute 与 /chat reset 才吊销。

3. quest_data.db 归位任务面板/:QuestStorage与PlayerStorage两处硬编码路径
   改为子目录并自动建目录,migrateRootDataFiles() 增加 db/-shm/-wal 三件套
   幂等迁移(启动最早期执行)。
2026-10-08 17:44:15 +08:00
youpaishidifu 19e03c5fb4 修复三bug并归位根目录5类文件:①禁言解除后强制重新人机验证(解禁≠解除人机验证,到期/命令解禁/重置均打reverify标记,答对清除) ②OP白名单过期条目不再补授(修复26-10-08到期后每分钟撤销↔授予无限横跳) ③敏感词命中改为明确反馈(控制台日志+玩家提示+下一档处罚预告,修复启用过滤配置解析失效) ④bond.db/chat.txt/garbage.db/maxsell_config.txt/pvp.db启动最早期自动迁入对应子文件夹
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m31s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-08 17:02:02 +08:00
youpaishidifu 58f9a756e9 调整.gitignore拉黑规则
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 1m46s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 2s
2026-10-08 16:20:58 +08:00
youpaishidifu bdd55cc9bf 将opwl.json移入resources目录,随jar一起释放。移除根目录的opwl.json暂存
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 2m10s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-08 16:15:06 +08:00
youpaishidifu 3217e53cda 补充opwl.json使用说明;注释停用/menu命令注册
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m27s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 2s
2026-10-08 15:41:49 +08:00
youpaishidifu 881fb85408 修复三处bug:时间解析支持26-10-08 14:43短横线格式、禁言期间屏蔽一切私信收发、URL拦截baidu . com空格变形绕过 2026-10-08 15:41:46 +08:00
youpaishidifu 581475e760 opwl事故修复三连: ①ops.json真实字段是uuid(旧代码只认id致复原全靠猜名字) ②复原的OP自动写回白名单(否则同一轮巡检把刚复原的11人又当非法持有全撤+报警) ③配置丢失/解码失败自动隔离坏文件(改名不删)+从jar释放默认配置+复原OP备份(热重载与/opwl reload同生效) ④补授从仅在线扩展到在线+离线(白名单11人但ops.json为空的根因)
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m7s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-08 14:01:34 +08:00
youpaishidifu 32fe81f908 补单提速第二轮+控台指令最小化信息透露
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m12s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
问题1 补单10秒才抓到单(根因两条):
- 线程错位: TimerA-周期批处理跑在sdf1-db-worker上, triggerFastPoller在该线程同步doGet,
  撞sendHard的10秒硬超时 -> 每次补单固定10秒且返回null, 还吃光DB队列整轮预算;
- 节奏不符设计: 定时器是固定5秒而非0~5秒随机, 4秒限流又把随机节奏里<4秒的轮次整轮吞掉。
修法: 定时器改0~100tick随机(nextPollerDelayTicks); 限流4000ms->500ms;
HTTP挪到补单专用单线程pollerExecutor(fire-and-forget, 队列容量1+丢弃);
补单改8秒短超时POLLER_TIMEOUT_S; 本轮processed>0立刻pullPendingTransactions入账;
shutdown补关pollerExecutor。

问题2 conmsg/opwl对玩家泄露"仅控制台可用/需要控台权限":
从plugin.yml摘掉注册 -> 玩家敲它必然落进UnknownCommandEvent, 与"不存在的指令"
走完全相同路径(压制原生unknown报错+相似建议候选里永远没有这俩);
控制台由onUnknownCommand里的dispatchConsoleOnlyCommand就地接管执行,
onCommand里的opwl/conmsg分支改为兜底且玩家侧一律静默。
2026-10-08 12:45:36 +08:00
youpaishidifu 31f2a60096 opwl扫描点订正: 心跳日志改为无更新就闭嘴(仅重载发生或统计快照变化才打印) + 修正扫描周期9000tick(实为7.5分钟)→18000tick真正15分钟,消除非整点多余冒泡
Check Source / check (push) Successful in 1s
Auto Release / build (push) Successful in 2m27s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-08 11:16:16 +08:00
youpaishidifu cd0a45d284 opwl数据安全+补单提速: 解析失败卸载OP前先备份原版ops.json(备份失败则不卸载,恢复时复原,pickJson排除ops.json*) + 补单触发限流15s→4s并新增独立5秒定时器(不受锁库退避/队列积压影响)
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m11s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 2s
2026-10-08 11:04:53 +08:00
youpaishidifu e2447f0b95 opwl第四轮: 修临时OP自动续期(存exp:绝对到期时间)+上下任提示当事人(在线直发/离线补发)+/op按启用状态分支(true全拦/false仅注册校验)+扫描点心跳日志+新增opwl check子命令
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 1m59s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-08 00:45:30 +08:00
youpaishidifu ca1fe6f252 opwl第二轮: 整点扫描(:15/:30/:45)替代纯15秒应用 + 15秒文件热重载保留 + 控制台/op拦截引导opwl add + add/addtime注册检查(非注册引导改json强制授权)
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m0s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-08 00:18:21 +08:00
youpaishidifu 84285e5009 opwl改回独立目录OP白名单/(目录隔离,任意json都当配置;模板resources/OP白名单/opwl.json)
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 2m15s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-07 23:58:12 +08:00
youpaishidifu a39e26caf7 opwl接管原生OP名单:加载时导入原生OP,非法持有一律撤销+报警(新增非法持有报警信息模板,支持user/time变量中英文),改为单文件opwl.json
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 2m0s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-07 23:05:29 +08:00
youpaishidifu d19ecc5ce0 新增OP白名单功能(opwl):读OP白名单目录json授OP,读失败一次性卸载全部OP,15秒增量热重载,命令仅控台
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m12s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-07 22:09:01 +08:00
youpaishidifu e745010220 修复pushShopCatalog对账后回退本地hash翻案:对账needPush=false直接回,不再整包推975项
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 2m1s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-07 18:02:31 +08:00
youpaishidifu a580fbbcb7 领地/商城目录接入alignGate差集对账,重启不再整包推,多退少补
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m18s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-07 17:32:15 +08:00
youpaishidifu dfdb951c8a 修复bans收回死循环:已过期临时封禁不再拉回Bukkit,避免每轮extra=1无限收回1条
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m8s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-07 16:21:40 +08:00
youpaishidifu f3a987dde9 修复setField对null写成字面量null导致credentials每轮恒定补推1:改setNull并启动自愈清理存量脏数据
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m17s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 2s
2026-10-07 13:47:56 +08:00
youpaishidifu ed558517ba 修复credentials对账恒changed全量:凭证行补指纹键password_salt/temp_password,推送改对账差集不再整包硬推611条
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 1m56s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-07 12:07:25 +08:00
youpaishidifu 9f8a881d62 IP同步改为只推对账差集,删除全量硬推;补上users/bonds/shop三处补推守卫
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m15s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
- syncAllPlayerIps 去掉 forceFullIpPush:以前只要对账发现缺口就跳过 ipCache
  过滤、把本机全部IP整包推给PHP(生产实测 missing=0/changed=110 却推了609条),
  现在只推 alignGate 裁决出的 pushKeys(missing + 本机改过的 changed);
  对账没做成时本轮不推不收,绝不回退全量硬推。
- 日志改为「对账补推 N/M 个玩家IP(PHP 侧共 X 条)」,与实际发送量一致。
- shop/bonds/users 三处补上 alignNeedsPush 守卫:PHP 库被清空但本地数据没变时,
  本地 hash 会永久短路补推(与 10-06 修过的 admins/providers/bans/credentials 同款 bug)。
2026-10-07 11:17:09 +08:00
youpaishidifu d0d3b48000 临时屏蔽一下没做完的功能和配置文件
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m1s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-07 00:21:41 +08:00
youpaishidifu d8d8c18d53 修复配置类对账推送在404后永久卡死:5处hash改为推送成功后才提交
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m11s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
灾备演练(删PHP库+404+空白库重建)实测发现:
- admins/providers/credentials/bans/lands 5处 lastXxxHash 在HTTP推送前就提交
- 404期间唯一一次推送失败,hash却已写脏
- 之后 alignGate 每轮判「PHP缺N条要补推」,全被本地hash短路挡回
- 表现为日志反复打「补推N」却永远发不出去,PHP端表永久0行
  (web_plugin_admins/web_service_providers/weblogin_credentials/web_player_bans/web_area_lands)

修复:
1. 对账明确 needPush 时本地hash不得拦截(alignNeedsPush 绕过短路)
2. hash 一律改为 PHP 明确返回 success=true 后才提交
   与 syncUserRegistrations(2026-10-04)/syncShopData/syncBonds 的既有规矩对齐

交易流水多退少补在本次演练中表现正常:空白库→443/443全量补推成功
2026-10-06 23:00:27 +08:00
youpaishidifu c118e8e708 周期对账通过时也打印两边笔数,让对齐结论随时可验证
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m17s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-06 21:50:01 +08:00
youpaishidifu 07d0a5a192 交易流水补运行期周期对账,修复PHP库被重载清空后的假对齐
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m34s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-06 21:25:13 +08:00
youpaishidifu 9c2d5db41e 充值回执对账排进首次全量同步队列:无人在线时启动即点差集,不再只依赖玩家上线的周期批次
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m0s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-06 19:58:08 +08:00
youpaishidifu 64cb501321 充值回执一式两份对账:Java持web_tx_receipts镜像,随全量同步多退少补热回补PHP缺失流水
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 2m17s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-06 18:18:00 +08:00
youpaishidifu e5e460ce20 WebManager:超时日志节流降噪、连接4秒判死换连接重试、对账无答复一律不推不收、system/sync token软硬双到期异步续期
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m23s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-06 15:14:29 +08:00
youpaishidifu 19aecebc90 WebManager:修正DB队列硬超时线程标记错位,对账硬超时不回退全量硬推,加队列节奏与商品目录hash静默
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m6s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-06 13:12:15 +08:00
youpaishidifu 53cadf2282 WebManager:DB队列HTTP改10秒硬超时并移交旁路线程放行,任务加10秒预算防堵门
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m5s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-06 12:06:31 +08:00
youpaishidifu ec4bd415d2 双向对账改造:全量/周期同步与PHP指纹对账多退少补,null整数列归一防每轮changed
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m21s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-05 22:29:50 +08:00
youpaishidifu 6a2bfaf1ff 修复开关关闭时插件设置.txt热重载永不触发:start()不再因未启用而跳过启动合并定时器
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m11s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-05 18:58:23 +08:00
youpaishidifu 5d89ff54c9 修复交易推流死等:批调度毫秒误当tick(15秒被排成12.5分钟);改单次15秒必答复三态日志;轮次卡死自愈不需手动reload;双向对账多退少补(PHP缺的补推、PHP多的收回导入本地)
Check Source / check (push) Successful in 1s
Auto Release / build (push) Successful in 2m10s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-05 17:46:34 +08:00
youpaishidifu ebb17d69bf 交易推流加15秒回执窗口:收到PHP回执才推下一批,未收到则等15秒重试同一批(带20次上限),批调度纳入锁库退避
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m30s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-05 17:00:25 +08:00
youpaishidifu 478aa97ca8 修复两处同步缺陷:parseJson漏嵌套对象分支致流水对齐恒判PHP无响应;热重载/reload后排全量同步
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m36s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-05 15:44:02 +08:00
youpaishidifu 88db479ede 交易流水同步改为节流+两边对账:开服先点验,一致则跳过补推;逐批只补PHP缺失序列号;推进异步化不阻塞DB队列
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 2m13s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-04 23:52:17 +08:00
youpaishidifu 2822ba9c9a 负面效果从增益里拆出独立子菜单 + 药水成就防作弊
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m15s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
用户要求:增益只归纳增益,负面另开子菜单;移除指定效果那套不动。
插件给的效果必须打标记,靠插件凑齐原版药水成就的立刻撤销。

效果拆分
- AreaConfig 新增 badEffects 字段,area_lands 加 bad_effects 列(73 列)
- GUI:效果管理主菜单 11~15 连排五格(清负面/禁效果/单清/增益/负面),
  新增 subPage 4 负面效果列表;选择页按 clear/give/bad 分别只列对应档位
- CLI:新增 effectsmgmt 6/7 子页与 effectsbadadd/effectsbadremove/effectsbadedit
  指令、editBad_ 回写分支,与 GUI 同一份效果口径
- 施加点全部合流 giveRegionEffects/applyEffectList,并修正 handleEnter
  的先清后给顺序(否则负面配置会被 clearBadEffects 清掉)
- 数量上限改为增益+负面合计(用户组 max_effects 是同一份预算)

成就防作弊
- 新增 AchievementEffectGuard:接管 nether/all_potions(17种) 与
  nether/all_effects(34种),清单抄自服务端 advancement json
- EntityPotionEffectEvent(Cause.PLUGIN) + PlayerAdvancementCriterionGrantEvent
  双钩子,revokeCriteria 撤销,进服复核一次,离场清标记
2026-10-04 22:57:14 +08:00
youpaishidifu 0c18137401 修正药效生存上限表:村庄英雄5级、挖掘疲劳3级、伤害吸收4级、不祥类5级
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m21s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-04 20:32:03 +08:00
youpaishidifu b64e7e336c 修正药效等级上限口径:按各效果的生存可获取上限封顶
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m15s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
用户纠正:上一版把 /effect 命令的作弊上限(amplifier 255 = 强度 256)
当成了「原版最大上限」,口径错了。真实含义是**生存模式下正常探索、
合成、建造能拿到的最大等级**:
  · 抗性提升 —— 信标最高 2 级(4级金字塔选「提升至II」)
  · 海豚的恩惠 —— 只有潮涌能量块一个来源,最高 1 级(截图里的 Lv255 即此)
所以「统一按 256 封顶」仍然等于没封。

改为按效果逐个封顶,两层上限同时生效:
  1) 生存可获取上限(硬顶):getSurvivalMaxLevel() 逐项查表
     · 可升 II 的:迅捷/急迫/抗性提升/跳跃提升/力量(信标)、
       瞬间治疗/瞬间伤害/缓慢/挖掘疲劳/中毒/生命恢复(发光石粉)
     · 生存单一来源恒为 1:海豚的恩惠、潮涌能量、抗火、水下呼吸、
       隐身、夜视、缓降、虚弱、反胃、饥饿、凋零、失明、黑暗、
       发光、飘浮、各类事件效果等
     · 生存无来源:生命提升/伤害吸收/饱和/幸运/霉运 → 1
     · 未知效果兜底 1(宁可少给,绝不超发)
  2) 用户组配置 max_effect_level(软顶):组里配多少就是多少
  最终 cap = min(两者),getEffectLevelCap() 统一出口

表项与 paper-api 26.1.2 的 39 个 PotionEffectType 完全对齐(已核对无遗漏)。
注意:生命恢复取 2 而非旧版附魔金苹果的 V —— 那是 1.6.1 前的历史数据,
      附魔金苹果早已改为给伤害吸收。

应用点全部改走 clampEffectLevel(raw, effectName, owner)(5 处):
首次给予、热更新、handleEnter、applyEffects、PHP 推送字段。
CLI 添加/编辑的报错信息改为报该效果的真实上限,并说明生存上限是多少。

PHP 侧 land_api.php 同步加入同一张表(134 个 case 标签与 Java 端
逐项对账一致),web 端写入时即按效果封顶,不再等 Java 兜底。
2026-10-04 19:56:45 +08:00
youpaishidifu 6f9202859d 修复领地增益药效等级无上限,新增用户组药效等级上限配置
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m32s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
问题:领地增益效果的等级完全没校验,管理员配了 255 级就会原样
生效(截图里出现的 Lv255 即源于此)。原版 /effect 的 amplifier 硬
上限是 255(对应药效强度 1~256),插件此前允许写入并施加远超原版
范围的等级。

修复(2026-10-04 任务4):
- UserGroupManager 新增 maxEffectLevel 字段,默认 256
  · 常量 DEFAULT_MAX_EFFECT_LEVEL = 256 集中定义原版上限
  · user_group_config 建表补列 + ALTER 迁移(老库自动升级)
  · loadGroupConfigs 读取、saveGroupConfigToDB 加为第 14 列
  · 新增 getPlayerMaxEffectLevel:普通玩家走原版 256,用户组按组配置
- AreaProtection 新增 getMaxGiveEffectLevel / clampGiveEffectLevel,
  在全部 4 个应用点封顶:首次给予(applyRegionEffects)、热更新、
  handleEnter、applyEffects;另在 PHP 字段推送(applyFieldToAreaConfig)
  与 CLI 添加/编辑两处入口按同一上限做输入校验与提示
- WebManager 用户组同步双向补 max_effect_level(推 PHP + 回读)

规则:普通玩家(未加入任何用户组)严格按原版 256 封顶,严禁超限;
用户组玩家按组配置封顶,组里配多少就是多少,但任何情况下都不得
突破原版 256。原先散落各处的硬编码 255 已统一为该口径。
2026-10-04 19:25:39 +08:00
youpaishidifu f2808a5923 修复 denyMove 对访客/路人失效:GUI显示已禁用但实际畅通无阻
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m20s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
现象:领地访客授权页显示「移动 已禁用」,玩家在领地内却能自由走动。

根因:getEffectiveDeny 是所有 deny* 权限的共用入口,其第3步
    if (level == PermissionLevel.VISITOR) return false;
  对全部权限无条件豁免。denyMove 走同一入口,访客在此被放行,
  永远到不了第4步读 ac.denyMove。而 GUI(AreaGUIManager:586)
  显示读的正是 land.denyMove=true —— 显示与实际判定脱节。

判定链(修复前,访客):
  第1步 非ADMIN/OWNER → 不豁免
  第2步 playerPerms 无 denyMove 键 → containsKey=false,不命中
  第3步 level==VISITOR → return false ← 绕过点
  第4步 getLandDefaultDeny(ac,"denyMove")  永远到不了

修复(按用户决策:仅 denyMove 改,其余权限保持现状):
  第3步增加 denyMove 特例 —— 访客若无 per-player 显式 denyMove,
  不再豁免,继续落到第4步按领地默认 denyMove 判定。
  level==null(纯路人)本就落在第4步,行为正确,未改动。

顺带恢复 logDenyExempt 诊断输出(此前整段被注释,
是当初现场无法定位该问题的直接原因)。

验证:离线回归测试 13/13 通过,覆盖 ADMIN/OWNER 豁免、
per-player 显式放行与禁止、访客回落、路人回落、白名单访客,
并断言 denyBlockBreak/denyContainer/denyBlockPlace/denyWax
的访客豁免语义未被破坏。mvn -o clean package 编译通过。
2026-10-04 18:47:05 +08:00
youpaishidifu 494ab22227 修复首次全量同步的三处根因(假成功+流水永久丢失+同步过慢)
Check Source / check (push) Successful in 2s
Auto Release / build (push) Successful in 1m58s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
【BUG-1 假成功(核心)】hash 在请求发出前就提交,导致同步失败后永不重试
  位置:syncUserRegistrations / syncBondBalances / syncShopData
  现象:日志打印"已同步 3人",PHP 端 users 表实测 0 条
  原因:lastXxxHash = currentHash 写在 httpPostWithToken 之前,密钥错/网络断/500
        时 hash 已被写脏,这份数据再也不会重推
  修复:hash 仅在 PHP 明确返回 success=true 后提交;失败不提交,下轮周期自动重试

【BUG-2 历史流水永久丢失(不可恢复)】
  实测:bond.db 419 笔(最早 2026-05-21),web_sync.db 水位线已推到 2026-10-04
        17:18:02,419 笔全部 <= 水位线,晚于水位 0 笔;PHP 端 game_transactions 仅 3 笔
  原因:水位线语义是"我以为 PHP 已经有了"。Web 端被清空(全新部署/隔离目录重置/
        低版本插件首升 PHP)后两者失联且无法自愈,只推了水位线之后的 1 笔
  修复:
   1) 新增 resetTxWatermarkForFullSync(),首次全量同步前强制归零水位线重推全部历史
   2) 新增 pushTxBatch(),每批最多 300 笔(TX_SYNC_BATCH_SIZE),失败即中止且
      不推进水位线 → 下轮从同一位置重试,不丢数据
   3) 分批后打"第 N/M 批 已同步 X 笔"与总计日志

【BUG-3 全量同步串行 sleep 过长 + 无进度可见】
  原因:12 项任务之间各 sleep 6~14 秒,总计 72~168 秒串行阻塞(用户"等 3 分钟没数据")
  修复:间隔缩短为 1.5~3.5 秒;开头判 isEnabled() 跳过;开头打地址+密钥长度;
       每项提交打一行"已排队";结尾打 12 项汇总与耗时

兼容性:纯 CRLF 行尾已保持(0 裸 LF);mvn -o clean package 编译通过
2026-10-04 17:53:59 +08:00
youpaishidifu ba613ff953 修复:Web通信关闭后仍在出网(热重载暴露的可见性 bug)
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m4s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
现象(用户日志实证):
  16:41:36 配置已热重载: 启用=false 密钥长度=30 [开关已关闭]
  16:41:45 syncOnlinePlayers: enabled=false, 跳过     ← 有守卫,正常
  16:42:12 推送游戏内商品目录 ... 已同步 975 项         ← ★ 无守卫,仍在出网
  16:42:46 服务商数据变更,已同步: 1人                 ← ★ 无守卫,仍在出网

根因两层:
1) 约 22 个同步方法(pushShopCatalog/syncServiceProviders/syncPermissions/
   pullShopStock/pullShopPrices/pullBondChanges 等)压根没有 !enabled 守卫;
2) 即使有守卫也拦不住 —— 任务是在「开关还是 true 时」就已 submitDbTask 入队的,
   db-worker 单线程排队轮到它时开关早已关闭,方法开头的守卫已经执行完了。

修法:出网最后一公里统一加闸,三道防线
1) 7 个 HTTP 收口方法开头加 isEnabled() 闸。doGet 是 46 处调用的唯一总出口,
   一处改动覆盖全部 GET 路径,零遗漏;两个 HTTP 降级方法一并覆盖。
2) submitDbTask / submitWebTask 入队前拦一道(省掉入队开销)。
3) startDbWorker 执行 task.run() 之前再查一次(治标兜底,拦存量任务),
   静默 continue 不打 WARN —— 关闭后每轮几十个任务全打日志会刷爆控制台,
   真正的开关变化已由 hotReloadIfChanged 打了一行「[开关已关闭]」,信息不丢。
另加 noteWebDisabledOnce():关闭状态下每 60 秒一条 INFO,说明「为什么没发」。

验证:mvn package 零错误;离线单测 18/18(闸的位置与结构均从真实源码抽取),
含端到端复现「关闭前入队、关闭后执行」这一用户日志场景。
2026-10-04 17:01:21 +08:00
youpaishidifu 932623ed88 Web通信配置热重载+密钥自愈:不再依赖 reload
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m6s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
背景:密钥错配导致 708 次 403。根因是运维改了服务器上的 插件设置.txt
却没重启也没 reload,插件一直握着旧密钥死循环重试。

改动(WebManager.java,+233/-3):
1. hotReloadIfChanged():5 个合并定时器每轮开头比对 插件设置.txt 指纹
   (lastModified+length),变了就热重载「启用开关/地址/密钥/三个数值项」。
   放在 enabled 守卫【之前】,开关关着时也能感知「改回 true」。
   3 秒节流 + 指纹闸,文件没动时连磁盘都不读。
2. 密钥自愈:doGet / doPostWithoutFallback / doPostWithSslFallback /
   doPostWithRetry 四个出网收口接入 withSecretAutoHeal(),
   命中「密钥验证失败/认证失败/invalid_secret」时重读配置的密钥并重试一次。
   30 秒冷却防刷日志;文件里就是当前值则不自愈(那是 PHP 侧问题,不死循环)。
3. isEnabled() 改为实时读文件,改开关下一毫秒生效。
4. reloadWebConfig() 保留为手动方式,强制清文件指纹确保真正重新解析。
5. 日志不再打印明文密钥,只打长度。

验证:mvn package 零错误;离线单测 32/32(判定串与解析规则均从源码抽取,
非另写等价实现),含端到端自愈、PHP 真拒不死循环、开关自动恢复、指纹节流。
2026-10-04 16:32:07 +08:00
youpaishidifu dc5633c740 新增4项功能:tempban参数可选+债券冻结时长+领地增益上限+用户组max_effects同步
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 1m52s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-04 14:48:26 +08:00
youpaishidifu 24897c2b97 命令语法报错补充标准示例与一句话用法,示例仅对控制台与OP玩家展示
Check Source / check (push) Successful in 1s
Auto Release / build (push) Successful in 2m5s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-04 13:06:22 +08:00
youpaishidifu ab0f15f248 新增命令参数不全/语法错误的中文友好报错(Brigadier 重解析 + 出错指针 + 下一步可填提示)
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m39s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-04 12:43:38 +08:00
youpaishidifu 77635b8db2 保留原生JSON解析:控制台未命中分流增加JSON快速通道,与&色码写法并存
Check Source / check (push) Successful in 1s
Auto Release / build (push) Successful in 2m9s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-04 11:40:36 +08:00
youpaishidifu 8486adb53c 修复:控制台未命中原生指令被当聊天全服广播导致刷屏
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m11s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-04 11:19:07 +08:00
youpaishidifu c07c97b7ea conmsg: clear 作为保留子参数,恢复默认署名(不再当名字设置出去)
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m22s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-03 23:26:51 +08:00