820 Commits
Author SHA1 Message Date
youpaishidifu 4cff8236b6 33批二十三次修正:PlayerLoginEvent登录自愈扫描背包超大PDC打包箱拆分替换(修存档卡旧超大物品每次登录被踢)
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m9s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 2s
2026-10-18 19:21:10 +08:00
youpaishidifu 7b648d8729 33批二十二次修正:双半LEFT/RIGHT配对+拆分打包防PDC超64KB踢出(修双箱不连接/拆箱被踢两根因)
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 2s
2026-10-18 19:04:31 +08:00
youpaishidifu 0c9543d63e 33批二十一次修正:空气位摆箱applyPhysics=true+未连成改27格回填剩余寄回(修大箱必炸/必须挨现有箱)
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-18 18:31:08 +08:00
youpaishidifu 9c05d81047 33批二十次修正:接双箱双半LEFT+2tick实测+双箱已连单54格全量回填(修大箱必炸/必须挨现有箱才安全两条根因)
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m16s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-18 17:52:35 +08:00
youpaishidifu 7eb5bdc093 第33批十九次修正:双箱54格全量回填+消灭双倍掉落+双连箱合并强制大箱
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
生产服 latest.log 实锤两个根因:
Bug1「物品≤27 永远给小箱」:双连箱54格物品被引擎分摊在左右两半,
  newMergedContents 读双半27格快照,物品≤27时全挤在一半边、
  合并 countSlots≤27 → buildPackedChest 判小箱给27格铜箱。
Bug2「物品≥27 永远双倍掉落」:放置侧 doBackfill(placedFinal) 读
  placedFinal.getState().getInventory(),双箱左半 BlockState 只覆盖
  27格,≥28件塞不下→触发重新打包寄玩家(一份),右半27格原版物品
  没被 clear() 清掉→拆箱时原版掉落一份=双倍。

修复:
① 新增 doBackfillDouble(placed,twin,...):双半各自读27格inventory,
   先 clear() 双半全54格杜绝原版残留,再按54格全量回填(左半0-26、
   右半0-26物理格)。塞不下的重新打包寄玩家(不残地)。
② 放置侧双箱已连分支 doBackfill 改 doBackfillDouble(placedFinal,twinFinal,...)
③ buildPackedChest 加 force54 参数:双连箱合并交付强制54格CHEST大箱,
   不再靠 countSlots>27 猜(物品少也按54格打包)。
④ deliver 双连箱合并分支(半名含「大箱子」)传 force54=true。
配平 0(173/173),编译 EXIT=0,jar sha 7a4e14f8
2026-10-18 16:27:33 +08:00
youpaishidifu 1a5487a25e 第33批十八次修正:双箱合并真根因——update applyPhysics 改 true 触发引擎双箱检测
Check Source / check (push) Successful in 5s
Auto Release / build (push) Successful in 2m23s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
生产服 latest.log 实锤:接双箱 connected=是 但主箱实测 placed=27格(需29)→
双箱未连回退寄玩家,连续 8 次全失败。

根因(已核实 MC 原版双箱合并机制):
- 两箱 XZ 紧邻、Y 相同、facing 一致 → 才构成双箱(代码 L493/L519 的 facing 对齐正确,勿改)
- 合并检测由引擎在方块物理更新时触发。代码全程 update(true,false)
  (applyPhysics=false) 跳过检测 → 主箱永远 27 格、永不 54 格
- 这是十三/十四/十五/十六次全失败的真正根因

修复(最小改动,仅 4 处 update true,false → true,true):
① 接已有箱分支 placed/c 两处
② 接空气位分支 placed/air 两处
facing 对齐逻辑保持不变;实测 <54 回退兜底保留(环境不安全仍清双箱+重打包)
配平 0(149/149),编译 EXIT=0
2026-10-18 15:47:18 +08:00
youpaishidifu 8abdb368a7 第33批十七次修正:小箱(≤27格)空箱根因修复——嵌套if死代码else提外层
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m21s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
根因实锤(生产服日志+代码分析):
- L468 if(slotCount>27) 外层块内 L570 又嵌套 if(slotCount>27)(条件恒true冗余)
- L612 else(单箱doBackfill) 对应 L570 的嵌套if → 死代码永不执行
- 小箱 slotCount≤27 走 L468 条件false → 整个 L469-617 块跳过 → L618 } 关闭
  → 没有 doBackfill 调用 → 箱子内容从未回填 → 空箱

修复:
- 移除 L570 冗余嵌套 if(slotCount>27)
- 双箱实测代码块缩进去一级(28→24空格)
- L612 else 提外层对应 L468 的 if/else,小箱立即 doBackfill 单箱回填
- 配平不变(open/close各减1)
2026-10-18 15:16:59 +08:00
youpaishidifu 1b02f16816 第33批十六次修正(诊断增强v2):放置入口+清CustomName后容器size+doBackfill入口三处日志,实锤小箱空箱根因
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-18 14:59:45 +08:00
youpaishidifu d3d6c7b67c 第33批十五次修正(诊断增强):给双箱/单箱回填路径加成功诊断日志(cap/filled/塞入数),定位小箱也发空箱根因
Check Source / check (push) Successful in 5s
Auto Release / build (push) Successful in 2m46s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 2s
2026-10-18 14:36:04 +08:00
youpaishidifu 24ecdf1ac9 第33批十四次修正:接双箱弃用setBlockData(LEFT)手动连接,引擎原生setType(CHEST)自动连双箱+立即实测真实size(同步读54/27格,修复空白箱/残疾版)
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m21s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-18 14:18:22 +08:00
youpaishidifu a91b51f26d 第33批十三次修正:接双箱后2tick实测真实size判断54/27,未连成清双箱+全部物品重新打包寄玩家(不残地,修复残疾版)
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m36s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-18 13:45:15 +08:00
youpaishidifu 46ee04a880 第33批十二次修正:接双箱失败/塞不下→重新打包寄玩家(不丢一地,防岩浆/垃圾箱环境物品丢失)
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
2026-10-18 13:25:25 +08:00
youpaishidifu aca8c31cc7 第33批十一次修正:接双箱固定顺序改4独立Location方位偏置+全被占回退27格单箱 + clearChestBlock加固防双箱回弹(清后2tick再清一次)
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m46s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-18 13:04:48 +08:00
youpaishidifu 3635a0c3ae 第33批十次修正:合并分支清孤半方块本体(孤半物品丢失根因)+修复竞态损坏({}}裸括号/1plugin/getState(;)
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m34s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-18 12:00:14 +08:00
youpaishidifu 806e2f6ed0 第33批九次修正:判定口径改非空格子数 + 接双箱update强制落盘 + 回填兜底零丢失
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 2s
用户实测两图:①"小箱"239件实为15个非空格子堆叠,旧 count(amount)>27 误判大箱强接双箱
错位;②27件27格该接双箱但 setBlockData(LEFT) 连接态没建立→前后错位切断。
四条根因一次修死:
1. 判定口径错:countItems(amount累加) 把堆叠误判成"塞满"。改 countSlots(非空格子数)
   ——27个非空格子=小箱(27格塞满),>27个才接双箱。
2. 接双箱连接态没建立:setBlockData 只改 block data 缓存,方块实体库存没真连成54格。
   改:双块 setBlockData(LEFT)+facing对齐后 调 update(true,false) 强制落盘连接态。
3. 回填塞不下丢物品:废弃嵌套 lambda,改单次回填读真实库存(连接生效=54格/未生效=27格),
   塞不下的物品 dropItemNaturally 掉在箱子旁(零丢失)。
4. 加诊断日志「接双箱结果 connected=... 需塞入格子数=...」定位连接态是否真建立。
2026-10-18 11:19:04 +08:00
youpaishidifu 5816391b56 第33批八次修正:大箱子强制普通CHEST(不沿用陷阱箱来源) + 接双箱facing对齐
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 1s
用户实测两问题:
1. 给的大箱子还是陷阱箱:buildPackedChest 用 sourceMat(来源材质),
   拆陷阱箱时打包箱沿用 TRAPPED_CHEST。修正:大箱子(>27件)强制用
   Material.CHEST(原版普通木箱),小箱子(≤27件)仍沿用来源材质保持
   铜箱观感。
2. 前后错位切断:接双箱只 setType(LEFT) 未对齐 facing(Chest 继承
   Directional,朝向不同则双箱不连接)。修正:接已有邻接木箱时双块
   都设 LEFT + bd.setFacing(bdN.getFacing()) 对齐;放第二个 CHEST 时
   bd2.setFacing(bd1.getFacing()) 对齐。
2026-10-18 10:25:18 +08:00
youpaishidifu b22c1342b1 第33批七次修正:孤立小箱误标大箱子+误接双箱→2个右半边 根因
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m25s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 2s
用户实测图「已打包 小箱子(24件)」却是大箱子且放下来2个右半边。
四条根因与修正:
1. 接双箱判定口径错:onChestPlace 用 contentCount(物品总数量 amount 累加)>27
   判定接双箱,24件物品若多组堆叠 amount 总和可能>27 → 孤立小箱被强接双箱 →
   两块都设 LEFT 渲染成"两个独立右半"。改:用「非空格子数 slotCount」判定
   (一个双箱 54 格,>27 格才接双箱),amount 不再影响判定。
2. 标签误标:Paper 26 的 Chest.Type 对孤立半箱可能返回 LEFT/RIGHT 而非 SINGLE,
   直接按 Type 判定会把孤立小箱误标"大箱子"。改:按连接态判定——有水平邻接
   箱(twin)才算"大箱子·左/右半",无邻接箱一律"小箱子"。
3. 接双箱双块都设 LEFT:原接已有邻接木箱时只设新块 LEFT、相邻块保持原 type,
   双箱未真正共享 54 格库存。改:双块都 setBlockData(LEFT) 才合并成 54 格容器。
4. 取数保留孤半 54 格全量(双半 getSnapshotInventory 27+27)。

备份原则:jar 滚动备份 .old → .old.1 → .old.2(deploy_sftp_jar.py
next_old_name 自动递增,本地+生产双端各一套)。
2026-10-18 00:50:47 +08:00
youpaishidifu e40614282d 第33批六次修正:双连箱拆箱合二为一 + 不用陷阱箱 + 修翻倍
Check Source / check (push) Successful in 5s
Auto Release / build (push) Successful in 2m26s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
1. 别用陷阱箱(用户明令):buildPackedChest>27件改回 CHEST/来源材质,
   onChestPlace 放下来自动在空气位再放一个 CHEST+双块setBlockData(LEFT)
   接成54格双箱,TRAPPED_CHEST 一律不用(避免红石电路误联控)。
2. 翻倍根因:onChestDropItem 旧版 suppressDrops.remove(loc) 一次性移除,
   双箱内容经 loot 表批量抛多个 BlockDropItemEvent 时第一个事件后 loc
   被删、后续漏出→翻倍。改为 contains 命中就拦不删 loc,靠 markSuppressDrop
   的 60 tick 定时任务自动清除,期间同位置所有掉落事件全拦。
3. 放下来丢另一半:onChestPlace 接双箱后重取 getState 回填,双箱连接后
   getInventory 返回 54 格全量,28~54件不再被 27 格截断。
2026-10-18 00:15:40 +08:00
youpaishidifu ca7d35b252 第33批五次修正:双连箱翻倍+散落根因——删clearChestBlock(setType触发二次事件)+幂等守卫;buildPackedChest>27件用TRAPPED_CHEST(54格)+onChestPlace自动接双箱
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m33s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 2s
2026-10-17 23:33:01 +08:00
youpaishidifu 7dd5fef5f9 第33批四次修正:双连箱0件根因=BlockBreakEvent时刻getInventory未同步→统一双半getSnapshotInventory(27+27),连箱=54全量/独立小箱=各27独立,弃getInventory与isSimilar
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-17 23:02:13 +08:00
youpaishidifu c947ef57ab 第33批三次修正:双连箱合并物品数错乱根因——newMergedContents连箱直接读54格全量(readContents(self))放弃isSimilar去重(误删同类型不同组+2x54翻倍),独立小箱selfSnap+twin各27不去重
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m34s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-17 22:50:58 +08:00
youpaishidifu 4d4fee6f2e 第33批修正:双连箱合并0件根因——newMergedContents改读selfSnap+readContents(twin)双源/连箱去重(按bigHalf),clearChestBlock前补markSuppressDrop(twin)拦孤半内容散落
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m7s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 2s
2026-10-17 22:37:28 +08:00
youpaishidifu 49190f0fc1 第33批:邻接箱合并口径改『紧挨着就算』(四向x±1z±1)+合并门槛去isBigChest(小箱也合)+全量诊断(invSize/双半twinInvSize/enter分支)
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m41s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-17 22:14:52 +08:00
youpaishidifu f58e73ca9e 第32批补充:双连箱合并加全量诊断(数据类型/invSize/邻接twin/enter分支),定位snap=27孤半不合并根因
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 1s
2026-10-17 21:44:40 +08:00
youpaishidifu fef3f51203 第32批修正:双连木箱拆箱合二为一(setType清孤半+读54格全量,废弃breakBlock)
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m33s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 2s
2026-10-17 21:06:01 +08:00
youpaishidifu 53af7bc23b 第32批补充:拆箱加诊断日志(snap格数/首破vs成组/间隔ms/mergeTwo),待实测后据此定合并路径
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m44s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-17 20:42:03 +08:00
youpaishidifu 9f155eecb0 第32批:铜双箱拆箱直接deliver 54格快照(不依赖第二刀)/who+banget非OP近似建议最小化披露 2026-10-17 20:35:08 +08:00
youpaishidifu 8d5fa288a4 第31批:title接管收窄仅JSON载荷/合箱cancel旧超时任务/json非OP走近似建议隐藏存在性
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-17 20:09:03 +08:00
youpaishidifu 08b2233fc3 第30批修正:chest/cfg.json 键值改回中文(与opwl.json项目惯例对齐,Gson解析中文键)
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m17s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-17 19:06:34 +08:00
youpaishidifu 699d455bab 第30批:拆箱权限改看容器管理/合二为一/chest cfg热重载/actionbar接管/json调OP
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-17 18:53:06 +08:00
youpaishidifu 6c233939de 第29批验收修正:打包箱放置权限回退——放置侧不拦任何人交还原版回填,隔离改由下游链路实现(非授权用户拆箱交原版散落一地+领地deny_pickup禁拾取拿不走,开箱由deny_container拦)
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 1s
2026-10-17 13:52:40 +08:00
youpaishidifu 12e68060fa 第29批:title/tellraw报错接管恢复压制原生报错并直接打开JSON构造器(附标准示例+/json超链接) + 打包箱放置仅限领地主/授权成员且放下清除自定义名 + 封禁对账收回回填created创建时间(修复拷贝生产封禁数据后全员播报乱叫)
Check Source / check (push) Successful in 3s
Auto Release / build (push) Successful in 2m44s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-17 13:37:16 +08:00
youpaishidifu 2ee874eeda 28批验收修复:裸CHEST搬运判定、封禁播报起点回退180天、JSON构造器超链接唤醒+剪贴板复制+选择器剥离+subtitle同屏显示
Check Source / check (push) Successful in 5s
Auto Release / build (push) Successful in 2m26s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-17 11:39:59 +08:00
youpaishidifu d7d5ce7039 第二十七批:修线上验收4个bug——箱子搬运认铜箱族、/json选色语义改状态、样式4按钮+发送回显JSON、封禁公示改读banned-players.json
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m28s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
1. 箱子搬运不生效:26.2新增铜箱族(COPPER_CHEST/WAXED_/WEATHERED_/OXIDIZED_/EXPOSED_ 共8种),
   原判定只认 CHEST/TRAPPED_CHEST,拆铜箱第一步就早退交原版散落。改 isChestMaterial()
   (*_CHEST 且非 ENDER_CHEST,走枚举名不引用常量);快照/回填改走 Container 接口
   getSnapshotInventory();打包箱沿用来源材质;setDropItems 之外补 BlockDropItemEvent 兜底抑制。
2. /json 设置绿色输出白色:颜色原是 append 进 text 末尾,「先打字后选色」对已发文字无效,
   「先选色后打字」色码裸挂段首被 toTellrawJson 丢弃。改为选色是状态(pendingColor),
   空内容只记住、输入时前置;已有内容则剥码后整段按新色+样式重建。
3. /json 补加粗/斜体/下划线/删除线 4 个样式按钮(格位18/19/20/23),对应 JSON bold/italic/
   underlined/strikethrough 布尔字段,预览项与输入按钮显示当前开关态。
4. /json 发送后(成功与失败都)把实际指令与生成的 JSON 原样折行回显执行者,仅本人可见。
5. 封禁公示数据源改为原版 banned-players.json(用户明令唯一源):每轮重读文件到内存解析,
   按 created 过滤插件数据目录创建时间之前的历史封禁;缺失/为空/语法坏/过滤空一律闭嘴。
   同时删掉 resolveStartCutoff 的「距今不足7天就不过滤」守卫 —— 插件刚装上服时它退化成
   不过滤,正是「一个都没封却公示一堆人」的第二重根因。
2026-10-16 23:18:54 +08:00
youpaishidifu cbc3cb4db7 第二十六批:箱子搬运(精准采集斧拆箱2秒窗口打包+放置回填)、/json消息构造器GUI(tellraw/标题/字幕+颜色+原版报错接管)、背包备份改每小时0/15/30/45分准点
Check Source / check (push) Successful in 5s
Auto Release / build (push) Successful in 2m12s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-16 19:03:47 +08:00
youpaishidifu 6f831f065b 第二十五批:订正领地权限倒反天罡——denyItemFrame玩家路径回归getEffectiveDeny豁免链(领地主/授权成员/服务器管理员3组豁免),非玩家路径保留24批防爆硬保护
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m15s
Simple Test / test (push) Successful in 2s
Test Env / test (push) Successful in 1s
2026-10-16 12:45:09 +08:00
youpaishidifu 3ecadd3228 第二十四批:展示框防爆——denyItemFrame开启即硬保护,拦截所有破坏路径(爆炸/闪电/非玩家投射物/授权玩家手动)
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 1s
2026-10-16 12:01:30 +08:00
youpaishidifu d11987f97b 第二十三批:修复配置安全更新插入位置——表格行插表格末尾而非结束标记前,孤儿行自动归位
Check Source / check (push) Successful in 4s
Auto Release / build (push) Successful in 2m35s
Simple Test / test (push) Successful in 1s
Test Env / test (push) Successful in 1s
2026-10-16 10:25:28 +08:00
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