VeryMcProtoСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (21)
release
VeryMcProto 1.21.11-b8
1.21.11-b830 окт. 2026 г.4Minecraft: 1.21.11paper, purpur
Что нового
## VeryMcProto 1.21.11-b8(EasyPlace 改写放行架构——修复 0.26.16 客户端全部摆放错误)
以纯 Paper 插件形式移植 Fabric 端 Mod Protocol——协议投递型(**Servux / JEI / Syncmatica**)+ 行为注入型可移植子集(**Carpet**),面向 **Minecraft 1.21.11 / Paper 1.21.11**(Java 21,维护线 `ver/1.21.11-dev → ver/1.21.11`)。
### 本版内容(自 v1.21.11-b7 以来)
- **修复:EasyPlace 对 litematica 0.26.16 客户端全部摆放错误**(306a264,9 文件)。b6 时代实测通过后,客户端快建 + 自动 pickblock 使旧「取消包 + 手动复刻」架构的三个语义偏差高频暴露:① netty 线程读手持与客户端同 tick 换槽竞态 → 放错方块种类(实测"红石 pv 放出混凝土/玻璃"错型);② 基态用 `defaultBlockState` ≠ 上游 `getStateForPlacement` 候选态;③ 固定 `setBlock(包pos)` 在"包 pos ≠ 放置位"路径错位/毁支撑块。本次整体迁移至 26.x 线已验证的**「改写放行 + 双挂点」架构**,与上游 Mixin 范式同位:
- **EasyPlaceListener 重写**:netty 侧仅做零状态依赖的编码剥离(`cursor.x` 还原真实命中偏移)+ pending 登记,放行原版包——手持/放置/消耗/ack 全归 vanilla 主线程队列,竞态类结构性消除;
- **EasyPlaceFixListener(新)**:`BlockCanBuildEvent` 写入前否决(与上游 `setReturnValue(null)` 同位同效)+ 候选态暂存(事件 BlockData 即 `stateForPlacement.asBlockData()`,1.21.11 dev bundle 与实机 132 构建 jar 反编译双重实证);`BlockPlaceEvent` 属性级修正 + 双半格方块 `setPlacedBy` 重演 + 退出清理;
- **EasyPlacePending(新)**:netty→主线程 CHM 跨线程载体 + TTL 1000ms 惰性清理;
- **PlacementHandler**:床头检查改无参 `canBeReplaced()`(1.21.11 `BlockBehaviour` 基类在可替换分支无条件解引用 ctx、ctx 恒 null 必 NPE——旧实现被 runTask catch 吞成静默拒放);删 `applyPlacementProtocolV2` 与 `UseContext.side` 零引用死代码;
- **协议无关性核查**:packetevents 2.13.0 ↔ 2.14.0 对 1.21.11 该包路径源码 + 字节码双验证零差异,与本次回归无关。
- 发版:`buildNumber` 7 → 8。
### 验证
- JDK 21 工具链 `./gradlew build` 全绿(含 `verifyVersionInjection` 三断言);`./gradlew test` **132/132 全绿**
- **实机验收通过**:litematica 0.26.16 客户端全量回归(dropper / observer / hopper / barrel / chest 含 type / piston 交替阵列朝向全对、repeater delay 修正)——621 行实机日志 89 处修正全部自洽、零 Exception、零错型,对照修复前 97 行基线三大病征全部消失
- 跨线核查:26.1.2 / 26.2 线已是同款「改写放行」架构且双线字节码实证 base=候选态,本次三偏差为 1.21.11 线独有,无回移面;与上游的已知差异清单(pending miss 盲区 / 床两半错位 / validator 恒严)已登记至 `EasyPlaceFixListener` javadoc 与 docs/architecture.md §5.2
### 产物
- `VeryMcProto-1.21.11-b8-reobf.jar` —— **推荐**:obf 映射产物,标准 Paper 1.21.11 服务器放入 `plugins/` 直接加载。
- `VeryMcProto-1.21.11-b8.jar` —— Mojang 映射产物(开发参考)。
可选依赖 PacketEvents 2.13.0(仅 EasyPlace 需要,未装自动跳过)。
> 上一版本:[v1.21.11-b7](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v1.21.11-b7)。
release
VeryMcProto 1.21.11-b7
1.21.11-b724 окт. 2026 г.17Minecraft: 1.21.11paper, purpur
Что нового
## VeryMcProto 1.21.11-b7(Servux v3 世代协议对齐——修复客户端收包断连崩溃)
以纯 Paper 插件形式移植 Fabric 端 Mod Protocol——协议投递型(**Servux / JEI / Syncmatica**)+ 行为注入型可移植子集(**Carpet**),面向 **Minecraft 1.21.11 / Paper 1.21.11**(Java 21,维护线 `ver/1.21.11-dev → ver/1.21.11`)。
### 本版内容(自 v1.21.11-b6 以来)
- **修复:v3 世代 masa 客户端收 servux 包断连崩溃**(f33c60e,27 文件)。部署客户端已换代至 LTS v3 世代(minihud 0.38.16 / malilib 0.27.20 / litematica 0.26.16),而本线 servux 移植停留在 v2 世代——v3 客户端把非 metadata NBT 体的头 4 字节读作 int32 帧长,裸 NBT 直发触发解码越界断连(开启 HUD/实体数据同步后进服或传送瞬间几乎必崩,五次崩溃会话同源 102 字节尾随实证;与 Carpet 模块/服务器人数无关,系 b6 部署与客户端换代的时间耦合)。修复逐字对齐上游 servux 0.9.9:
- **新增 `ServuxNbtFrames` 帧编解码器**:`[int32 BE][GZIP(命名根 NBT 流)]`,与上游 `DataByteBufUtils` 字节等价(空数据 END-only 流同构;读侧越界拒包 + 非压缩回退);
- **五通道 wire 升位**:HUD 3 / Entities 2 / Tweaks 2 / Structures 3 / Litematics 2——非 metadata NBT 体全部帧化(含配方/结构/投影上传的 splitter 内层载荷);实体请求删 transactionId 前缀;`UNREGISTER_REPLY` 各通道齐备(HUD=9 / Litematics=8 / Entities=7 / Tweaks=7);structures v2 遗留死枚举 10/11/12 删除;
- **注册时序对齐**:五通道 join 不再自动入册(注册唯一入口 = 客户端 `METADATA_REQUEST` / `STRUCTURES_REGISTER`,对齐上游 PlayerListener 停用);请求到达记声明版本观测行;
- **MOD_STRING 前缀改 `servux-fabric-1.21.11-b7`**:v3 客户端对握手字段做 `startsWith("servux-fabric[-mcVersion]")` 硬门禁,旧 `servux-paper-` 前缀被静默拒收全部数据;
- **旧世代客户端(≤ minihud 0.38.13)行为边界**:不崩溃、通道数据静默不可用(服务端日志留痕 `v2 generation, unsupported`,可诊断)。
- 发版(cb75e80):`buildNumber` 6 → 7。
### 验证
- JDK 21 工具链 `./gradlew build` 全绿(含 `verifyVersionInjection` 三断言);`./gradlew test` **132/132 全绿**(23 测试类,含新增 `ServuxNbtFramesTest` 7 用例:malilib 读侧契约 golden 断言 / roundtrip / 越界拒包 / 非压缩回退)
- **实机验收通过**:v3 世代客户端进服 + 传送全流程无断连、无版本失配告警、HUD/实体数据同步正常(服务器管理员实测确认)
- 跨线核查:dev 与 26.1.2 线已是 v3 世代 wire(各自 `DataTagIo` 实现),本缺陷仅存在于 1.21.11 线,无回移面
### 产物
- `VeryMcProto-1.21.11-b7-reobf.jar` —— **推荐**:obf 映射产物,标准 Paper 1.21.11 服务器放入 `plugins/` 直接加载。
- `VeryMcProto-1.21.11-b7.jar` —— Mojang 映射产物(开发参考)。
可选依赖 PacketEvents 2.13.0(仅 EasyPlace 需要,未装自动跳过)。
> 上一版本:[v1.21.11-b6](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v1.21.11-b6)。
release
VeryMcProto 1.21.11-b6
1.21.11-b619 окт. 2026 г.26Minecraft: 1.21.11paper, purpur
Что нового
## VeryMcProto 1.21.11-b6(Carpet 模块铺开 + 三线文档体系重构)
以纯 Paper 插件形式移植 Fabric 端 Mod Protocol——协议投递型(**Servux / JEI / Syncmatica**)+ 行为注入型可移植子集(**Carpet**),面向 **Minecraft 1.21.11 / Paper 1.21.11**(Java 21,维护线 `ver/1.21.11-dev → ver/1.21.11`)。
### 本版内容(自 v1.21.11-b5 以来)
- **Carpet 模块铺开至本线**(71fe5b7,57 文件原子交付):规则框架(`carpet.conf` 纯文本 + locked 语义)+ `/carpet` 四子命令(双层门禁)+ 18 条上游实名规则 + 假人 `/player` 全族 + carpet:hello 协议(**HI = 上游 mod_version 逐字 `"1.4.194"`**,禁发插件版本号)+ `/log` 日志框架(tps/mobcaps HUD + 订阅跨会话持久)+ 五条纯计算命令。
- **本线适配(26.1.2 版基础上再 3 处)**:ActionPack 三调用点 1.21.11 树同位形态(`interactAt` 两参 / `interactOn` 两参 / jump 分支删行)+ HI 字面锁;其余 NMS/Paper API 面实测零漂移;
- **掉落伤害 per-line 决策(勿随 dev 线互抄)**:本线 Paper 玩家物理敞开——覆写 `isClientAuthoritative()` 恢复全 vanilla 链;survival 假人 40 格坠落 1 秒内死亡实测;
- **移植范围终局定案**:可完整等价子集全部实现完毕,其余面技术上不可能实现或无法等价,永不纳入。
- **三线文档体系重构**(3e1b3cd + 8b07c11):NN- 编号 + 独立研究层 27 项重构为与 dev 线同构的模块子目录树 + 冻结归档 14 件(含 `docs/research/` 六件迁移笔记);**62KB/17 节 README 运维手册迁入新写 `docs/operations.md`**,README 瘦身为英文门面;carpet.md 单件拆分两件;版本字串策略三件套落库。
- 发版(cf5459a + 2dd3345):`buildNumber` 5 → 6(Carpet 铺开提交的预增位即发版位;首次发版提交误增至 7 已修正为 6)。
### 验证
- JDK 21 工具链 `./gradlew build` 全绿(含 `verifyVersionInjection`);`./gradlew test` **125/125 全绿**(22 测试类,含 Carpet 7 类)
- runServer 实机:四模块注册(`Done (15.8s)` 无异常)+ 假人全链(survival spawn abilities 验证 + 40 格坠落致死)+ `/carpet`/`/log`/五命令全判据通过
- 文档电池:旧路径引用零命中 + 全盘 .md 链接解析零断链;jar 内 plugin.yml version=1.21.11-b6 开箱复核
### 产物
- `VeryMcProto-1.21.11-b6-reobf.jar` —— **推荐**:obf 映射产物,标准 Paper 1.21.11 服务器放入 `plugins/` 直接加载。
- `VeryMcProto-1.21.11-b6.jar` —— Mojang 映射产物(开发参考)。
可选依赖 PacketEvents 2.13.0(仅 EasyPlace 需要,未装自动跳过)。
> 上一版本:[v1.21.11-b5](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v1.21.11-b5)。
release
VeryMcProto 26.1.2-b8
26.1.2-b819 окт. 2026 г.11Minecraft: 26.1.2paper, purpur
Что нового
## VeryMcProto 26.1.2-b8(Carpet 模块铺开 + 三线文档体系重构)
以纯 Paper 插件形式移植 Fabric 端 Mod Protocol——协议投递型(**Servux / JEI / Syncmatica**)+ 行为注入型可移植子集(**Carpet**),面向 **Minecraft 26.1.2 / Paper 26.1.2**(Java 25,维护线 `ver/26.1.2-dev → ver/26.1.2`)。
### 本版内容(自 v26.1.2-b7 以来)
- **Carpet 模块铺开至本线**(0e278bc,61 文件原子交付):规则框架(`carpet.conf` 纯文本 + locked 语义)+ `/carpet` 四子命令(双层门禁)+ 18 条上游实名规则 + 假人 `/player` 全族(patches 三件套 + ActionPack + Paper Brigadier 树)+ carpet:hello 协议(**HI = 上游 mod_version 逐字 `"26.1"`**,禁发插件版本号)+ `/log` 日志框架(tps/mobcaps HUD 走 tab 脚、订阅跨会话持久 `carpet-logs.json` 双信号模型)+ 五条纯计算命令(/distance /info /perimeterinfo /draw /spawn)。
- **本线适配 6 处**:`EntityTypes` 常量回并、`EntitySpawnRequest` 回退、HI 常量与字面锁、javadoc 锚点族等(对照上游 26.1 树同位形态);
- **掉落伤害 per-line 决策(勿随 dev 线互抄)**:26.1.2 线 Paper 玩家物理**敞开**——假人掉落伤害经 `EntityPlayerMPFake` 覆写 `isClientAuthoritative()` 返回 false 恢复全 vanilla 链(与 26.2 线手动驱动机制根本不同);survival 假人 40 格坠落致死实测(vanilla 公式 37 ≥ 20 血 ✓);
- **移植范围终局定案**:可完整等价子集全部实现完毕,其余面技术上不可能实现或无法等价,永不纳入。
- **三线文档体系重构**(d1fc583 + c213af0 + 72feda8):NN- 编号 18 件重构为与 dev 线同构的模块子目录树 + 冻结归档(04/09/22/23);蒸馏归并(01+07+04+09 → architecture;09 §26.1 wire 真值 → servux/protocol §9;task 组 → schematic §9;22 七边 → syncmatica §10);31-carpet 单件拆分两件;版本字串策略三件套落库。
- 发版(f679090 + f8ef3eb):`buildNumber` 7 → 8(Carpet 铺开提交的预增位即发版位;首次发版提交误增至 9 已修正为 8)。
### 验证
- `./gradlew build` 全绿(含 `verifyVersionInjection`);`./gradlew test` **168/168 全绿**(27 测试类,含 Carpet 7 类)
- runServer 实机:四模块注册 + 假人全链(含 survival 40 格坠落致死差分)+ `/carpet`/`/log`/五命令全判据通过
- 文档电池:旧路径引用零命中 + 全盘 .md 链接解析零断链;jar 内 plugin.yml version=26.1.2-b8 开箱复核
### 产物
`VeryMcProto-26.1.2-b8.jar` —— Mojang 映射 jar(26.1 起无 reobf),标准 Paper 26.1.2 服务器放入 `plugins/` 直接加载。可选依赖 PacketEvents 2.14.0(仅 EasyPlace 需要,未装自动跳过)。
> 上一版本:[v26.1.2-b7](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.1.2-b7)。
release
VeryMcProto 26.2-b4
26.2-b419 окт. 2026 г.53Minecraft: 26.2paper, purpur
Что нового
## VeryMcProto 26.2-b4(Carpet 模块全量落地 + 三线文档体系重构)
以纯 Paper 插件形式移植 Fabric 端 Mod Protocol——协议投递型(**Servux / JEI / Syncmatica**)+ 行为注入型可移植子集(**Carpet**),面向 **Minecraft 26.2 / Paper 26.2**(Java 25,开发线 `dev → main`)。
### 本版内容(自 v26.2-b3 以来)
- **Carpet 模块全量落地**(可完整等价子集,移植范围终局定案):
- **P1 模块地基**(97e488e):注解规则框架(上游 `SettingsManager` 同构——`carpet.conf` 纯文本 + locked 语义 + validator 链)+ `/carpet list|setDefault|query|removeDefault` 四子命令(静态 `carpet.command` + 动态 `carpetCommandPermissionLevel` 双层门禁)+ 8 条地基规则实名接入;
- **P2 假人 /player 全族**(1b044a0):patches 三件套纯子类(spawn 走原版 `placeNewPlayer` 链——tab 栏/入睡跳夜/playerdata 持久/`/tp` `/ban` 识别全部原生承载)+ `EntityPlayerActionPack` 动作状态机(侧表 + BukkitRunnable tick 驱动)+ `/player` 全子命令(Paper Brigadier);掉落/环境接触伤害双免疫修复(2f79429:26.2 线 Paper 关闭服务端玩家物理——tick 手动累积 fallDistance + 落地直调 `causeFallDamage`,per-line 决策勿跨线互抄);
- **P3 carpet:hello 协议**(5084843):单 CompoundTag 载体通道,S2C 全 NMS `DiscardedPayload` 直发,进服 HI(版本串 = 上游 mod_version 逐字 `"26.2"`,禁发插件版本号)+ hello 应答 + Rules 全量/增量同步 + clientCommand 请求-回执(Snoopy 移植);
- **P4 /log 日志框架**(811a8de):`LoggerRegistry` 上游同构订阅框架 + `tps`/`mobcaps` 两条 HUD logger(公式与热力色上游逐字、MAGIC_NUMBER=289)——HUD 走 tab 脚每 20 tick(Bukkit `setPlayerListFooter`,零协议路径),订阅跨会话持久(`carpet-logs.json` 双信号模型:显式订阅 + 退订墓碑);
- **P5 纯计算命令族**(402a79c):`/distance` `/info block` `/perimeterinfo` `/draw` `/spawn mobcaps|entities` 五命令 + `Messenger` 组件输出层(含可点击 tp 坐标)+ 五条 `commandXxx` 规则;
- **移植范围终局定案**(f3b3840):可完整等价的子集全部实现完毕;其余面(Scarpet / TNT 与红石活塞优化类 Mixin / 近似规则池与 chat logger 等)在纯 Paper 形态下**技术上不可能实现或无法等价**,永不纳入——预研/推进规划文档已删除(历史见 git)。
- **三线文档体系重构**(6095243 + f3b3840):docs/ 重构为三线同构模块子目录树(`servux/ syncmatica/ jei/ carpet/` + 全局四件留根 + 冻结归档 `archive/`),index.md 双层历史锚点映射表;版本字串策略三件套(README 活值位=最近已发版语义 / AGENTS+docs 内 buildNumber 占位化 / operations.md §0 落库)——发版文档同步面从 8 文件 17 行/线收缩至 README 2 位/线。
- **其他**:`/servux set` 非法值静默伪成功修复(78dd25c);AGENTS.md 本机信息分离为不入库的 `AGENTS.local.md`(983f0cf)与工具链路径勘误(d4b172c);IDEA 索引排除(034a766)。
- 发版提交(1c4da22):`buildNumber` 3 → 4。
### 验证
- `./gradlew build` 全绿(含 `verifyVersionInjection`);`./gradlew test` **175/175 全绿**(28 测试类,含 Carpet 7 类)
- runServer 实机:四模块注册 + `/carpet` 18 规则往返 + 假人全链(spawn→`/tp`→掉落→kill)+ `/log` console 拒绝链 + 五命令输出逐字判据通过
- 文档电池:旧路径引用零命中 + 全盘 .md 链接解析零断链 + src 锚点目标存在性全过
### 产物
`VeryMcProto-26.2-b4.jar` —— Mojang 映射 jar(26.1 起无 reobf),标准 Paper 26.2 服务器放入 `plugins/` 直接加载。可选依赖 PacketEvents 2.14.0(仅 EasyPlace 需要,未装自动跳过)。
> 上一版本:[v26.2-b3](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.2-b3)。
release
VeryMcProto 1.21.11-b5
1.21.11-b512 окт. 2026 г.14Minecraft: 1.21.11paper, purpur
Что нового
## VeryMcProto 1.21.11-b5(JEI 完整协议迁移)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI / Syncmatica**),面向 **Minecraft 1.21.11 / Paper 1.21.11**(Java 21,维护线 `ver/1.21.11-dev → ver/1.21.11`)。
### 本版内容(自 v1.21.11-b4 以来)
- **JEI 模块完整迁移**(12aeb16):从旧 JEI Recipe Bridge 桥形态(`mod/jeirecipebridge/` 7 文件,仅 2 条配方同步 S2C 通道)完整迁移为 **mezz/JustEnoughItems 上游范式**(分支 `1.21.11` = JEI 27.44.0,commit `2af0130`;跨线 cherry-pick 禁止、27 文件手工重写):
- **配方同步层**:`fabric:recipe_sync`(Fabric API `fabric-recipe-api-v1` wire,RegisterChannel 声明门控触发 + `RecipeSyncJoinOrderer` netty 出站时序整形——payload 先于 UpdateRecipesPacket 上线,消除 JEI 进服 "recipe sync unavailable" 警告)+ `neoforge:recipe_content`(join + brand 触发 + tag 表补发);
- **`jei:\*` 通道层**:8 条 C2S(cheat 权限申请/给物品/删物品/热键栏放置/配方转移 ×4 变体)+ 2 条 S2C——服务端声明 `jei:delete_player_item` 解锁客户端 `isJeiOnServer()` 门禁,cheat 与网络版配方转移功能全量可用;
- **服务端行为层**:cheat 权限三切面(Creative / Op=权限级 2 / Give 权限,配置 `jei.json` 三布尔)+ `BasicRecipeTransferHandlerServer` 配方转移算法逐行移植;
- **配置无缝迁移**:旧 `jei-recipe-bridge.json` 的 `enabled` 值只读继承(旧文件保留);`/jei` 命令扩展 `status` 子命令;
- **1.21.11 专属适配**:`RecipeSyncJoinOrderer` 反射字段主备反转(本线 PaperCommonConnection 字段为 `handle`,javap 实证;26.x 才改名 `packetListener`)。
- **wire 正确性背书**:mezz 26.2 ↔ 1.21.11 分支互 diff——`network/packets` 全树零字节差、transfer 仅两条日志折行差异、`ServerCommandUtil`/`ServerConfig` 逐字同;`fabric:recipe_sync` 对照 Fabric API 分支 `1.21.11` 逐字段一致。
- **测试**:6 个测试类随迁(通道常量对齐 / cheat 权限矩阵 / 配置迁移 / 进服时序整形——本线首个 MC bootstrap 型测试 / 转移列表边界 / 槽位校验)。
- **文档**:`docs/jei.md` 新建(协议全景 + 迁移实录 + 互 diff 分诊表 + 1.21.11 适配面 + 实机验证清单);AGENTS/README/00-INDEX/TECH_DEBT_AUDIT 与框架 javadoc 同步。
### 验证
- JDK21 工具链 `./gradlew build` 全绿(含 `verifyVersionInjection`);`./gradlew test` **79/79 全绿**(存量 53 无回归 + jei 新增 26)
- runServer 实机冷启动:`[JEI] Module enabled (upstream mezz/JustEnoughItems 1.21.11 / 8 jei:\* C2S channels)` + 三模块正常注册、零异常
- 开箱复核:reobf jar 内 `plugin.yml` version=1.21.11-b5 / api-version=1.21.11
- 真实 JEI 客户端互操作验证清单见 `docs/jei.md` §9(fabric 腿进服免警告 / cheat 三切面 / 配方转移 / vanilla 零打扰 / neoforge tag 同步)
### 产物
- `VeryMcProto-1.21.11-b5-reobf.jar` —— **推荐**:obf 映射产物,标准 Paper 1.21.11 服务器放入 `plugins/` 直接加载。
- `VeryMcProto-1.21.11-b5.jar` —— Mojang 映射产物(开发参考)。
可选依赖 PacketEvents 2.14.0(仅 EasyPlace 需要,未装自动跳过)。
> 上一版本:[v1.21.11-b4](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v1.21.11-b4)。
release
VeryMcProto 26.1.2-b7
26.1.2-b711 окт. 2026 г.12Minecraft: 26.1.2paper, purpur
Что нового
## VeryMcProto 26.1.2-b7(元数据修正 + 对外面全量英文化)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI / Syncmatica**),面向 **Minecraft 26.1.2 / Paper 26.1.2**(Java 25,维护线 `ver/26.1.2-dev → ver/26.1.2`)。
### 本版内容(自 v26.1.2-b6 以来)
- **插件元数据修正**(520fb3f):作者更正为 **Kevin O. Hsu**;plugin.yml 新增 `website`(Modrinth 分发主页);README 头部新增 Author / GitHub / Modrinth 链接行。
- **对外可见面全量英文化**(8f6cd4d / e554e0d / 3e28871):plugin.yml 全部 description、日志输出、玩家消息/命令回执、异常消息与构建期消息(53 文件约 400 条字符串)及测试断言消息(92 条)全部英文化,译文与 26.2 线逐字对齐(线内差异如实保留:`JustEnoughItems 26.1` 版本号等);AGENTS.md 同步立规「对外一律英文;注释与 docs 保留中文」。协议面零触碰。
### 验证
- `./gradlew build` 全绿(含 `verifyVersionInjection`);`./gradlew test` **122/122 全绿**
- 开箱复核:jar 内 `plugin.yml` version=26.1.2-b7 / api-version=26.1.2 / author=Kevin O. Hsu / website=https://modrinth.com/plugin/verymcproto
- runServer 实机:启动横幅(含本线 `JustEnoughItems 26.1` 形态)、`/servux`、`/jei status`、`/syncmatica` 回执与 `/version` 输出全部英文(实测截获)
- 对外字符串非 ASCII 收口扫描零残留(§ 颜色码白名单)
### 产物
`VeryMcProto-26.1.2-b7.jar` —— Mojang 映射 jar(26.1 起无 reobf),标准 Paper 26.1.2 服务器放入 `plugins/` 直接加载。可选依赖 PacketEvents 2.14.0(仅 EasyPlace 需要,未装自动跳过)。
> 上一版本:[v26.1.2-b6](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.1.2-b6)。
release
VeryMcProto 26.2-b3
26.2-b311 окт. 2026 г.38Minecraft: 26.2paper, purpur
Что нового
## VeryMcProto 26.2-b3(元数据修正 + 对外面全量英文化)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI / Syncmatica**),面向 **Minecraft 26.2 / Paper 26.2**(Java 25,开发线 `dev → main`)。
### 本版内容(自 v26.2-b2 以来)
- **插件元数据修正**(3eff127):作者更正为 **Kevin O. Hsu**;plugin.yml 新增 `website`(Modrinth 分发主页);README 头部新增 Author / GitHub / Modrinth 链接行——`/version VeryMcProto` 现正确展示作者与官网。
- **对外可见面全量英文化**(7bfb05d / c806338 / 5f4e90f / ee66f8e):plugin.yml 全部 description、日志输出、玩家消息/命令回执、异常消息与构建期消息(52 文件约 400 条字符串)及测试断言消息(92 条)全部英文化;AGENTS.md 同步立规「对外可见面一律英文(译文 ASCII 化、禁 `\uXXXX` 转义绕过);注释与 docs 文档保留中文」。§ 颜色码、`{}`/`%s` 占位与拼接结构逐字保留,协议面零触碰。
### 验证
- `./gradlew build` 全绿(含 `verifyVersionInjection`);`./gradlew test` **122/122 全绿**
- 开箱复核:jar 内 `plugin.yml` version=26.2-b3 / api-version=26.2 / author=Kevin O. Hsu / website=https://modrinth.com/plugin/verymcproto
- runServer 实机:启动横幅、`/servux`、`/jei`、`/syncmatica` 回执与 `/version` 输出全部英文(实测截获)
- 对外字符串非 ASCII 收口扫描零残留(§ 颜色码白名单)
### 产物
`VeryMcProto-26.2-b3.jar` —— Mojang 映射 jar(26.1 起无 reobf),标准 Paper 26.2 服务器放入 `plugins/` 直接加载。可选依赖 PacketEvents 2.14.0(仅 EasyPlace 需要,未装自动跳过)。
> 上一版本:[v26.2-b2](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.2-b2)。
release
VeryMcProto 1.21.11-b4
1.21.11-b411 окт. 2026 г.8Minecraft: 1.21.11paper, purpur
Что нового
## VeryMcProto 1.21.11-b4(元数据修正 + 对外面全量英文化)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI Recipe Bridge / Syncmatica**),面向 **Minecraft 1.21.11 / Paper 1.21.11**(Java 21,维护线 `ver/1.21.11-dev → ver/1.21.11`)。
### 本版内容(自 v1.21.11-b3 以来)
- **插件元数据修正**(cf6a7da):作者更正为 **Kevin O. Hsu**;plugin.yml 新增 `website`(Modrinth 分发主页);README 头部新增 Author / GitHub / Modrinth 链接行。
- **对外可见面全量英文化**(b886509 / 7c8bea4 / 12db345):plugin.yml 全部 description(Recipe Bridge 语义)、日志输出、玩家消息/命令回执、异常消息与构建期消息(46 文件约 310 条字符串)及测试断言消息(39 条)全部英文化——jeirecipebridge 模块全新翻译、本线特有 transmit 投递链按术语表新译;AGENTS.md 同步立规「对外一律英文;注释与 docs 保留中文」。协议面零触碰。
- **维护修正**(b94ea90 / 2ef301e):AGENTS.md:14 版本漂移(b2→实际 b3)与 `DataProviderManager` 一处先在缩进异常修复。
### 验证
- JDK21 工具链 `./gradlew build` 全绿(含 `verifyVersionInjection`);`./gradlew test` **53/53 全绿**
- 开箱复核:reobf jar 内 `plugin.yml` version=1.21.11-b4 / api-version=1.21.11 / author=Kevin O. Hsu / website=https://modrinth.com/plugin/verymcproto
- runServer 实机冷启动:启动横幅(含本线 `jei_recipe_bridge` 形态)、`/servux`、裸 `/jei`、`/syncmatica` 回执与 `/version` 输出全部英文(实测截获)
- 对外字符串非 ASCII 收口扫描零残留(§ 颜色码白名单)
### 产物
- `VeryMcProto-1.21.11-b4-reobf.jar` —— **推荐**:obf 映射产物,标准 Paper 1.21.11 服务器放入 `plugins/` 直接加载。
- `VeryMcProto-1.21.11-b4.jar` —— Mojang 映射产物(开发参考)。
可选依赖 PacketEvents 2.14.0(仅 EasyPlace 需要,未装自动跳过)。
> 上一版本:[v1.21.11-b3](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v1.21.11-b3)。
release
VeryMcProto 1.21.11-b3
1.21.11-b310 окт. 2026 г.4Minecraft: 1.21.11paper, purpur
Что нового
## VeryMcProto 1.21.11-b3(26.x 线修复回移:安全加固 + 上游对齐 + 构建终检)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI / Syncmatica**),面向 **Minecraft 1.21.11 / Paper 1.21.11**(Java 21)。本线为冻结维护线(`ver/1.21.11` / `ver/1.21.11-dev`)。
本版本将 main 线(26.x)已定稿的 **14 项修复**回移至 1.21.11 维护线,含两处安全加固与若干协议行为对齐。协议 wire 格式零变化,客户端无需更新。
### 安全 / 资源加固
- **NBT 注入防线**:投影上传(paste)链新增体积一致性预检——NBT 中声明的 region 体积必须被 `BlockStates` 数组实际容量背书,脱钩坏包(声明 20000³ 只给 1 个 long)整体拒收,堵住 CPU DoS / OOM 向量;全部网络输入 NBT 读取点由无界(`NbtAccounter.unlimitedHeap()`)改为 128MB 记账配额(先记账后分配,流内声明超长数组即断)。
- **分片会话生命周期**:`PacketSplitter` 重组会话新增 10s TTL 心跳驱逐 + buffer 确定性释放;玩家退出即清会话——中断/断线的上传不再残留永生会话与 netty buffer,重进后新上传不再被旧数据污染。
- **元数据路径泄露**:syncmatica 不再向客户端泄露服务端绝对路径(`/syncmatica load` 的文件名出口与落盘双清洗为 basename)。
- **C2S 接收上限回正 64→128MB**:对齐 1.21.11 客户端实际上传上界(此前 64–128MB 的合法大投影被误拒)。
### 协议行为修复 / 上游对齐
- **进服 structures 即连**:Paper 对未声明通道的 S2C 有静默门控,此前进服首个握手回复被吞导致 minihud structures 恒 `not_connected`(需手动 toggle)——现对「已在本通道发过 C2S 的玩家」自动走 NMS 兜底直发,进服即显示。
- **五通道注册名册**:恢复上游 servux 的名册状态机(注册/检疫/退服出册),未注册或权限不足的玩家不再收到推送帧;`/servux disable servux_main` 运行时拒绝(配置主通道永不可停用)。
- **syncmatica 健壮性**:修改锁解锁 NPE(MODIFY 成功后广播中断 / 后续修改恒拒绝)、disable→enable 握手永久卡死、控制台 `load` 不广播、玩家退出清理中断——四条链路修复。
- **上游行为对齐八处**:实体查询自查门、BE 空数据语义修正、bulk 请求校验收紧(Task 恒等式 + 维度上下界回退 + 反馈开关)、粘贴实体 UUID/ID 保留 + 撞车重排、结构数据条目级分批、`/servux` 权限树拆分(旧 `servux.command` 经 children 映射自动兼容,**无需改授权**)、`/servux list` 列出全部 settings 现值、坏投影条目跳过不崩。
### ⚠️ 安装面变化(注意)
- `plugin.yml` 的 `api-version` 由 `'1.21'` 收紧为 `'1.21.11'`(模板化注入):**低于 1.21.11 的 Paper 服务器将拒绝加载本插件**。此前这些服务器能装载但运行期必因 NMS 漂移出错——现在改为加载期明确拒绝。本插件本就只支持 Paper 1.21.11。
### 构建链加固
- `processResources` 显式 `inputs.property` 跟踪版本占位符 + 新增 `verifyVersionInjection` 解包终检(断言 jar 内 `plugin.yml` / `version.properties` 与构建版本一致)——杜绝「buildNumber+1 后陈旧版本打进新 jar」的发版事故。
### 验证
- `./gradlew build` 全绿(含 reobf 与版本注入终检:jar 内版本 = 1.21.11-b3)
- test **53/53 全绿**(新增 5 个测试类 27 用例:修改锁契约 / 路径清洗 / 会话 TTL 与发送预检 / 结构分批 / SubRegions+体积守卫 / 搜索三臂)
- 协议行为项建议按 `docs/10` / `docs/24` 手工回归(重点:进服 structures 免 toggle、TPS/MobCap Loggers 正常、大投影粘贴)
### 产物
- `VeryMcProto-1.21.11-b3-reobf.jar` —— **标准 Paper 1.21.11 服务器用此件**(放入 `plugins/` 直接加载)
- `VeryMcProto-1.21.11-b3.jar` —— Mojang 映射版(开发用,勿部署)
> 对应的 26.x 线版本:[v26.2-b2](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.2-b2) / [v26.1.2-b6](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.1.2-b6);上一版本:[v1.21.11-b2](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v1.21.11-b2)。
release
VeryMcProto 26.1.2-b6
26.1.2-b69 окт. 2026 г.8Minecraft: 26.1.2paper, purpur
Что нового
## VeryMcProto 26.1.2-b6(EasyPlace 拒绝路径 + disable 握手 + NBT 注入修复)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI / Syncmatica**),面向 **Minecraft 26.1.2 / Paper 26.1.2**(Java 25)。本线为维护对(`ver/26.1.2` / `ver/26.1.2-dev`)。
### 本版内容(自 b5 起三个修复,均为 dev/26.2 线同源已验证修复的移植)
- **EasyPlace 双半格修正分裂修复**(`2a9ba9b`,源自 dev `c04407f`):门/垂滴叶等 `DoubleBlockHalf` 双半格下半修正后以修正态重演 `setPlacedBy` 派生上半——两半构造性一致,不再依赖受 BlockPhysicsEvent 取消门控的 `updateShape` 邻居自愈;床(`BedPart`)不修正为已知差异(上游为写入前整体改向,见 docs/04 差异①)。
- **syncmatica disable→enable 握手永久卡死 + NBT 注入加固**(`858a103`,源自 dev `7800cbe`):
- `suspendAll` 改扫 `targets.values()` 全集 + `close(false)` 后显式移除 exchange——修复 disable 瞬间握手中途玩家被漏扫、enable 后 `tryStartHandshake` 被残留 `VersionHandshakeServer` 永久跳过导致的玩家级卡死(到重进服为止;上游无 disable/enable 概念,该缺陷为移植特有);
- `readSubRegionsFromNBT` 增体积一致性预检(声明体积必须被 BlockStates 实际容量背书;floor 除法 + `(long)` 三乘回绕守卫)——拒绝「声明 20000³ 只给 1 个 long」的脱钩坏包(PasteTask CPU DoS / OOM 向量);
- `DataTagIo.readTag` 改 GZIP 流式直读 + `NbtAccounter.create(64MB)` 先记账后分配——单闸拦截 gzip bomb 与长度字段炸弹(旧实现整体解压进内存 + `unlimitedHeap`,64MB 帧内可声明 8GB 分配;对齐上游 malilib `SizeTracker` 语义)。
- **EasyPlace 拒绝路径语义反转修复**(`31a7403`,源自 dev `ea390e6`):拒绝判定前移 `BlockCanBuildEvent`(fire 于 `BlockItem.canPlace` 体内、先于全部放置副作用——26.1.2 字节码实证 canPlace :83-136 / asBlockData :98-99 / isBuildable :136)——拒绝 = vanilla place 在 placeBlock 前整次 FAIL(无方块/不消耗/无音效/gameEvent/stat),与上游 `setReturnValue(null)` 同位同效零残差;`BlockPlaceEvent` 退化纯写入,判定结果经 `EasyPlacePending` stash 暂存传递;修正态 canSurvive + 实体碰撞补查恒生效(不受 `easy_place_validator_enabled` 门控);床头检查 `canBeReplaced(null ctx)` NPE 修复(26.1.2 基类可替换分支解引用 + 台阶/雪层覆盖族无条件解引用 → 改无参判定)。
- 三处修复的根因、26.1.2 字节码实证与两线同构论证见各 commit 正文与 docs/04/09/20/22/24。
### 验证
- `./gradlew build` 全绿(含 `verifyVersionInjection` 版本注入终检);产物开箱复核:jar 内 `plugin.yml` / `version.properties` = 26.1.2-b6
- test **122/122 全绿**(20 个测试类,含新增 `EasyPlacePendingTest` 5 用例:peek 只读 / TTL 过期 / take 读删 / stash 生命周期 / clear 全清);三个移植 commit 与 dev 源逐字保真校验通过(代码零差异,仅注释按本线 26.1.2 证据重钉)
### 产物
`VeryMcProto-26.1.2-b6.jar` —— Mojang 映射 jar(26.1 起无 reobf),标准 Paper 26.1.2 服务器放入 `plugins/` 直接加载。
> 上一版本:[v26.1.2-b5](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.1.2-b5);26.2 线同源修复见 [v26.2-b2](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.2-b2)。
release
VeryMcProto 26.2-b2
26.2-b28 окт. 2026 г.26Minecraft: 26.2paper, purpur
Что нового
## VeryMcProto 26.2-b2(EasyPlace 修复 + disable 握手卡死修复 + 文档重构)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI / Syncmatica**),面向 **Minecraft 26.2 / Paper 26.2**(Java 25,开发线 `dev → main`)。
### 本版内容(自 v26.2-b1 以来)
- **EasyPlace 修复**(c04407f / ea390e6):修复双半格方块修正分裂(门/垂滴叶/床下半修正后上半不随派生——改为 `setPlacedBy` 委派重演,两半构造性一致);修复拒绝路径语义反转(拒绝判定曾未在写入前生效——现 `BlockCanBuildEvent` 否决先于全部放置副作用,与上游 `setReturnValue(null)` 同位同效、零残差)。
- **disable 握手永久卡死修复 + NBT 注入安全加固**(7800cbe):修复 `/syncmatica disable`→`enable` 后握手中途玩家永久无法重握手(`suspendAll` 改遍历 targets 全集 + exchange 显式移除);`DataTagIo.readTag` 增 NbtAccounter 64MB 解压域配额闸(gzip bomb 与长度字段炸弹单闸拦截)+ 投影体积一致性预检(拒绝「声明 20000³ 只给 1 个 long」脱钩坏包)。
- **文档体系重构为持续稳定版**(7521b70):docs/ 17→12 文件(去数字前缀、mod 前缀分组);迁移实录提炼为升级 SOP 与参考手册(`docs/operations.md` §6);单一权威收敛;全部入站引用(src 注释 / AGENTS.md / README)同 commit 重映射,零死链(机检验证)。
### 验证
- `./gradlew build` 全绿(含 `verifyVersionInjection` 版本注入终检);开箱复核:jar 内 `plugin.yml` = 26.2-b2 / api-version = 26.2,`version.properties` mcVersion = 26.2
- `./gradlew test` **122/122 全绿**(20 个测试类);全仓文档引用机检零死链零旧编号残留
### 产物
`VeryMcProto-26.2-b2.jar` —— Mojang 映射 jar(26.1 起无 reobf),标准 Paper 26.2 服务器放入 `plugins/` 直接加载。可选依赖 PacketEvents 2.14.0(仅 EasyPlace 需要,未装自动跳过)。
> 上一版本:[v26.2-b1](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.2-b1)。
release
VeryMcProto 26.2-b1
26.2-b13 окт. 2026 г.30Minecraft: 26.2paper, purpur
Что нового
## VeryMcProto 26.2-b1(MC 26.2 线升级)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI / Syncmatica**),面向 **Minecraft 26.2 / Paper 26.2**(Java 25)。dev/main 线已承载 26.2;26.1.2 转入维护对(`ver/26.1.2` / `ver/26.1.2-dev`)。
### 升级要点(协议面零变化,可无缝换服)
- **协议面**:对照上游八仓(masa 系 `LTS/26.2` 七仓 + JEI `26.2` 分支)26.1/26.2 两树**逐文件字节级实证零变化**——五通道协议版本 3/2/2/3/2、metadata 字段、C2S 类型集、DataTag 载体、malilib 16MB 重组上限、JEI 10 通道与配方转移算法全部逐字节相同;客户端门禁期待前缀随版本号变为 `servux-fabric-26.2`,由版本注入链天然满足
- **构建面**:dev bundle `26.2.build.129-stable`;paperweight 2.0.0-beta.24;PacketEvents 2.14.0(2.13.0 起即支持 26.2,2.14.0 增 26.3);**plugin.yml 的 api-version 模板化 `'${mcVersion}'`**(手写同步点消亡,随唯一版本来源展开)
- **NMS 漂移**(编译驱动,126 个 NMS 触面文件仅 4 处错误,全修):`EntityType.PLAYER` 常量迁至新常量类 `EntityTypes`;`EntityType.create` 需 `EntitySpawnRequest`;`BlockTags.CONCRETE_POWDER`→`CONCRETE_POWDERS`
- **Schema 数据版本表**:servux 侧 +4 条 26.3 前瞻 + 枚举改名;syncmatica 侧 +8/−1(随上游删除 `SCHEMA_26_1_RC1`)
- **Paper 行为实证重核**(26.2.build.129 dev bundle 源码直读):`CraftPlayer.sendPluginMessage` 的 `channels().contains` 门控、`PaperCommonConnection.packetListener` 反射字段、`handleUseItemOn` 1.0000001 逐轴校验、BlockPlaceEvent capture 时序——全部存活同构
### 验证
- test **113/113 全绿**(19 测试类);`./gradlew build` + 版本注入终检通过(jar 内 plugin.yml `version: '26.2-b1'` / `api-version: '26.2'`)
- **Paper 26.2(build 129)实机起服**:`VeryMcProto v26.2-b1` 加载启用(api-version `'26.2'` 两段式接受)、servux / JEI(mezz/JustEnoughItems 30.39.0)/ Syncmatica 三模块 + EasyPlace(PacketEvents 2.14.0 运行时)全部就绪、零 ERROR
- 协议常量与载体均经 LTS-26.2 客户端源码逐字钉死;迁移方法论与全部实证记录见 [`docs/09-DELIVERY.md` §26.2](https://github.com/Kevin-O-Hsu/VeryMcProto/blob/main/docs/09-DELIVERY.md)
### 产物
`VeryMcProto-26.2-b1.jar` —— Mojang 映射 jar(26.1 起无 reobf),标准 Paper 26.2 服务器放入 `plugins/` 直接加载。需 EasyPlace(Tweakeroo 精确放置)时另装 PacketEvents 2.13.0+(可选,未装则优雅跳过)。
> 上一版本:[v26.1.2-b5](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.1.2-b5);旧版本线(MC 1.21.11):[v1.21.11-b2](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v1.21.11-b2)。
release
VeryMcProto 26.1.2-b5
26.1.2-b53 окт. 2026 г.13Minecraft: 26.1.2paper, purpur
Что нового
## VeryMcProto 26.1.2-b5(C2S 接收链安全修复)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI / Syncmatica**),面向 **Minecraft 26.1.2 / Paper 26.1.2**(Java 25)。本线为维护对(`ver/26.1.2` / `ver/26.1.2-dev`)。
### ⚠️ 安全修复(必更)
修复与上游 Servux 安全公告(2026-07-05 披露)同源的**路径穿越任意文件写入漏洞(Critical Arbitrary File Write → RCE 向量)**:
- **漏洞**:实验性 C2S schematic 文件接收链中,服务端直接用客户端网络包的 `FileName` 字段构造落盘路径(`Path.of` / `dir.resolve`,零净化)——恶意客户端可用 `../` 或绝对路径逃逸 `plugins/VeryMcProto/schematics` 目录,在服务器任意位置**写入 / 删除 / 读回解析**文件;另有 `new Slice[客户端控长]` 的 OOM 向量。该线前置名册门可被任意客户端单包穿透(发一个带 `version=2` 的 metadata request 即入册),粘贴权限门又在写盘之后执行——均非有效防线。
- **修复**(对齐上游 servux 0.10.4+/0.10.7 判定:实验性接收功能超出核心范围,整体禁用移除):
- handler `Litematic-Transmit*` 接收分流、`receiveFileTransmit`、`SchematicBuffer` / `SchematicBufferManager`、`createFromFile` / `fileFromDirAndName`、`handleClientPasteRequestPair` **整链物理删除**(约 516 行);上传重组完成后无条件走 `handleClientPasteRequest`(上游 0.10.7 `:185-201` 字面同构)
- 修复版 stock 客户端(litematica ≥ 0.27.9)已不再发送上传帧;旧客户端的发送帧落入 paste 路径静默忽略(无崩溃、不刷生产日志)
- **不受影响**:投影粘贴主路(`LitematicaPaste`,内存 NBT → PasteTask 分 tick,权限/创造模式双门)、实体/方块实体查询、InfoHud task 组、Syncmatica、JEI 均不变。
### 验证
- `./gradlew build` 全绿(含 `verifyVersionInjection` 版本注入终检);产物开箱复核:jar 内 `plugin.yml` / `version.properties` = 26.1.2-b5,Transmit 类零残留
- test **113/113 全绿**(19 个测试类);仓库外沙盒探针曾实证 `dir.resolve(客户端名)` 逃逸机制,修复后该链零代码级残留
### 产物
`VeryMcProto-26.1.2-b5.jar` —— Mojang 映射 jar(26.1 起无 reobf),标准 Paper 26.1.2 服务器放入 `plugins/` 直接加载。
> 上一版本:[v26.1.2-b4](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.1.2-b4);旧版本线(MC 1.21.11)同源修复见 [v1.21.11-b2](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v1.21.11-b2)。
release
VeryMcProto 1.21.11-b2
1.21.11-b23 окт. 2026 г.16Minecraft: 1.21.11paper, purpur
Что нового
## VeryMcProto 1.21.11-b2(C2S 接收链安全修复)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI / Syncmatica**),面向 **Minecraft 1.21.11 / Paper 1.21.11**(Java 21)。本线为冻结维护线(`ver/1.21.11` / `ver/1.21.11-dev`)。
### ⚠️ 安全修复(必更)
修复与上游 Servux 安全公告(2026-07-05 披露)同源的**路径穿越任意文件写入漏洞(Critical Arbitrary File Write → RCE 向量)**:
- **漏洞**:实验性 C2S schematic 文件接收链中,服务端直接用客户端网络包的 `FileName` 字段构造落盘路径(`Path.of` / `dir.resolve`,零净化)——恶意客户端可用 `../` 或绝对路径逃逸 `plugins/VeryMcProto/schematics` 目录,在服务器任意位置**写入 / 删除 / 读回解析**文件;另有 `new Slice[客户端控长]` 的 OOM 向量。该线收包入口无注册名册门,任何在线玩家可直接触发。
- **修复**(对齐上游 servux 0.9.5 判定:实验性接收功能超出核心范围,整体禁用移除):
- `Litematic-Transmit*` 服务端接收分流、`receiveFileTransmit`、`SchematicBufferManager`、`handleClientPasteRequestPair` **整链物理删除**;上传重组完成后无条件走 `handleClientPasteRequest`(上游 0.9.5 `:139-153` 字面同构),任何玩家的 Transmit 帧均落入 paste 路径静默忽略
- `SchematicBuffer` 保留仅作 `BUFFER_SIZE`(16KiB)S2C 分片常量载体
- `/servux litematic transmit` 命令加目录包含性守卫(`Path.startsWith(Path)` 逐名元素比较,逃逸拒绝)——附带收口(该入口文件名为 op 命令参数,非网络输入)
- **不受影响**:投影粘贴主路(`LitematicaPaste`,内存 NBT + 权限/创造模式双门)、实体/方块实体查询、S2C 投递命令、Syncmatica、JEI 均不变。
### 验证
- `./gradlew build` 全绿(含 reobf 与版本注入);产物开箱终验:jar 内 `plugin.yml` / `version.properties` = 1.21.11-b2,`SchematicBufferManager` 类零残留
- test **19/19 全绿**(新增 `LitematicaTransmitCommandGuardTest` **6/6**:`../` 逃逸 / 绝对路径 / 兄弟目录前缀 / 合法名 / 内部归一 / 空名)
### 产物
- `VeryMcProto-1.21.11-b2-reobf.jar` —— **标准 Paper 1.21.11 服务器用此件**(放入 `plugins/` 直接加载)
- `VeryMcProto-1.21.11-b2.jar` —— Mojang 映射版(开发用)
> 同日发布的 26.1 线同源修复:[v26.1.2-b5](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.1.2-b5);上一版本:[v1.21.11-b1](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v1.21.11-b1)。
release
VeryMcProto 26.1.2-b4
26.1.2-b412 сент. 2026 г.61Minecraft: 26.1.2paper, purpur
Что нового
## VeryMcProto 26.1.2-b4(上游对齐缺口修复 + 文档体系重构)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI / Syncmatica**),面向 **Minecraft 26.1.2 / Paper 26.1.2**(Java 25)。
本版为 26.1.2 线内的修复批次(4 个 fix + 1 个 refactor 提交),主线是**补齐移植遗漏的上游行为对齐缺口**与**清理文档/注释对源码的真值漂移**。上游最新 release 已至 26.2,本版起 26.1.2 线冻结为维护对(`ver/26.1.2` / `ver/26.1.2-dev`),后续该线 Bug 修复在 `ver/26.1.2-dev` 提交。
### 修复
**Servux**
- **`servux_main` 配置主通道可被运行时停用**:「恒启用」不变量此前仅配置加载期强制,`/servux disable servux_main` 可停用并落盘 false(重启自愈)——`DataProviderManager` 新增 ALWAYS_ENABLED 运行时总闸 + 命令层停用前置拒绝;`search` 子命令重写为上游三臂(分词 AND + name/comment/provider + 大小写敏感)+ 两态输出
- **13 处上游对齐缺口**:HUD spawn 刷新权限复检(注册后撤权即拒发)、Structures 发送三门早退、InfoHud task 组删自创标题条目(原占 maxLines 一位致客户端少渲染一行)、paste 拒绝文案常量化对齐 en_us、SchematicPlacement 坏 NBT 条目 Pos 守卫(坏帧不再 NPE 穿透)、NOT_PLAYER 判定统一为 litematica 同构 instanceof 形等;删 selection/ 四个零引用死文件
- **热路径日志刷屏**:C2S 每包异常日志全堆栈 WARNING 降单行(防恶意畸形包刷屏,上游同范式);4 处 Handler javadoc 协议版本裸值(1.21.11 残值 1/1/1/2)改 `{@value}` 真值引用——26.2 适配零同步成本
- **文档真值漂移 16 处**:五通道协议版本对齐真值 3/2/2/3/2(docs/03/10 钉守)、MOD_STRING 表述翻转为 fabric 前缀硬门禁(docs/01/07)、docs/40 litematic_data 键表补 3 键 + 权限表补 `task.fill` / `task.delete` 两节点
**JEI**
- **fabric 配方同步腿过滤 minecraft 命名空间**:按 serializer registry key 过滤(对齐上游 JustEnoughItems:38-48;getKey 为 null 的条目跳过)
**Syncmatica**
- **console `load` 广播臂 + 竞态闭合**:console load 走 addPlacement 广播(复刻上游意图并修复其 fromExistingPlayer(null) NPE 缺陷)、load 结果广播管理员、onPlayerLeave try/finally 化 + onPlayerJoin 清陈旧 broadcastTargets
**文档体系重构**
- README 754→~290 行英文瘦身门面,命令/权限/配置全键/排错迁入新建 **docs/40-configuration.md**(docs 内唯一运维权威)
- 物理删除 9 个历史文档(docs/06、08、11 与 docs/research/×6,~270KB,恢复走 git revert);包结构三拷贝收敛为 docs/20 §2 唯一权威;14 处断链清扫;净减 ~3600 行
### 验证
- **113/113 单元测试全绿**(19 个测试类,较上版 +3 用例:SchematicPlacementGuardTest 3——SchematicPlacement 坏 NBT 守卫)
- **版本注入终检通过**:产物 jar 内 `plugin.yml` / `version.properties` 与构建版本一致(`VeryMcProto-26.1.2-b4.jar` 内部版本 = 26.1.2-b4)
- 产物为 Mojang 映射 jar(26.1 起无 reobf)
### 产物
`VeryMcProto-26.1.2-b4.jar` —— Mojang 映射 jar,标准 Paper 26.1.2 服务器放入 `plugins/` 直接加载。
> 上一版本:[v26.1.2-b3](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.1.2-b3);旧版本(MC 1.21.11)见 [v1.21.11-b1](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v1.21.11-b1)。
release
VeryMcProto 26.1.2-b3
26.1.2-b310 сент. 2026 г.11Minecraft: 26.1.2paper, purpur
Что нового
## VeryMcProto 26.1.2-b3(上游对齐 + 稳定性修复)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI / Syncmatica**),面向 **Minecraft 26.1.2 / Paper 26.1.2**(Java 25)。
本版为 26.1.2 线内的修复批次(8 个 fix 提交),主线是**对照上游 26.1 源码逐字对齐行为**与**堵住迁移引入的内存 / NPE 缺陷**。
### 修复
**Servux**
- **粘贴实体位置修复族缺失**:26.1 上游新增的六方面实体位置修复(Pos 重写 / 悬挂类 TileX/Y/Z / block_pos / 拴绳 leash 平移 / home_pos 过 radius 门平移 / Leashable 补 tick)未随 1.21.11 基准树带入——粘贴到非采集坐标时悬挂类锚点、拴绳、home 数据陈旧;现逐字照抄上游 `SchematicPlacingUtils:446-513` + 11 个单测钉守卫
- **与上游八处行为不一致**:实体/方块实体查询自查门(查自己保留背包)、BE-null 不回空帧(防 litematica 客户端缓存被空 NBT 覆盖)、bulk 名册门前置、Task 校验收紧、minY/maxY 回退维度上下界、task 反馈门控、实体 UUID/LastEntityID 尊重 + 撞车重排、Structures `max_receive_s2c` 能力协商 + 条目级分批、HUD 冗余帧键删除、`/servux` 权限树按子命令拆节点(旧 `servux.command` 经 children 映射兼容)
- **16MB 客户端重组上限无服务端预检**:`PacketSplitter.send` 入口整帧预检、超限拒发(16,777,216 放行 / +1 拒发,与 malilib 客户端严格 `>` 同源;上游 servux 无此预检,我方增强)
- **S2C 投影投递死信链虚假成功**:26.1 stock 客户端 `handleBulkData` 的 Transmit 分流整块注释、上游 `sendTransmitFile` 自身 `@Deprecated(forRemoval)` 零调用——投递帧必被静默丢弃;`/servux litematic transmit` 命令与发送链物理删除(恢复走 git revert),C2S 上传路由保留为我方超集
**JEI**
- **转移包列表声明数直达分配器致 OOM 穿透**:C2S 帧 ≤32767 字节只限字节流不限声明容量,5 字节 VarInt 可声明 2³¹ 直达 `new ArrayList<>(size)`,`OutOfMemoryError` 穿透三层 `catch(Exception)`——对齐 vanilla `ByteBufCodecs.collection` 的 `min(size, 65536)` 封顶 + 4 用例回归单测
**Syncmatica**
- **修改锁解锁 null 必抛 NPE**:上游 HashMap「写 null = 解锁」被原样带入禁 null 的 ConcurrentHashMap,解锁即 NPE 且被吞成零信息日志——四条 onClose 路径静默失效、锁残留致后续 MODIFY 恒 DENY;remove 翻译 + null placement 守卫 + 5 用例差分实证(修复前全 NPE)
- **Schema 表缺失 26.1-rc-1 条目**:照抄上游补行(协议版本 4783)
**文档**
- **注释/文档与实现漂移**:5 个 Provider javadoc 协议版本旧值对齐常量真值、docs/20-24 权威树锚点 syncmatica 1.21.11 → 26.1、MOD_STRING 历史条目划线指向 26.1 硬门禁真值(零代码逻辑变化)
各项修复均配单测守卫并经构建验证;部分客户端侧行为(Leashable 补 tick、修改锁验收 a/b/c)待 Fabric 客户端实机回归,已在 docs/09 / docs/24 注记。
### 验证
- **110/110 单元测试全绿**(18 个测试类,较上版 +27 用例:EntityPastePositionFix 11 / ModifyState 5 / StructureBatchSplit 5 / RecipeTransferListBound 4 / PacketSplitter 边界 +2 等)
- **版本注入终检通过**:产物 jar 内 `plugin.yml` / `version.properties` 与构建版本一致(`VeryMcProto-26.1.2-b3.jar 内部版本 = 26.1.2-b3`)
- 产物为 Mojang 映射 jar(26.1 起无 reobf)
### 产物
`VeryMcProto-26.1.2-b3.jar` —— Mojang 映射 jar,标准 Paper 26.1.2 服务器放入 `plugins/` 直接加载。
> 上一版本:[v26.1.2-b2](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.1.2-b2);旧版本(MC 1.21.11)见 [v1.21.11-b1](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v1.21.11-b1)。
release
VeryMcProto 26.1.2-b2
26.1.2-b210 сент. 2026 г.6Minecraft: 26.1.2paper, purpur
Что нового
## VeryMcProto 26.1.2-b2(JEI 协议重做 + 修复)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI / Syncmatica**),面向 **Minecraft 26.1.2 / Paper 26.1.2**(Java 25)。
### 重做:JEI 服务端协议(对齐最上游 mezz/JustEnoughItems 26.1)
原 `jeirecipebridge` 模块(基于已停更的 Mrbysco/JEIRecipeBridge,仅配方同步切面)整体重做为**完整 JEI 协议**三层实现(对照 mezz `26.1` 分支 = JEI 29.37.0):
- **配方同步层**:`fabric:recipe_sync`(Fabric API wire,RegisterChannel 触发)+ `neoforge:recipe_content`(join + brand 触发)+ NeoForge tag 表补发;进服时序复刻上游 PlayerListMixin——netty 出站扣住 `UpdateRecipesPacket`,等 play register 证据后放行
- **`jei:*` 通道 10 条**:8 C2S(cheat 权限请求 / give / delete / set_hotbar / 4 种配方转移)+ 2 S2C(`cheat_permission` / `recipe_transfer_result`)——客户端 `isJeiOnServer()` 门禁由通道声明解锁,与 brand 无关
- **服务端行为**:cheat 权限三切面(Op=权限级 2 / `minecraft.command.give` / Creative)+ `BasicRecipeTransferHandlerServer` 配方转移算法逐行移植
- 协议详情见 [`docs/30-jei-protocol.md`](https://github.com/Kevin-O-Hsu/VeryMcProto/blob/main/docs/30-jei-protocol.md)
### 修复
- **plugin.yml `api-version` 遗留 '1.21' 更正为 '26.1.2'**(Paper 官方 1.20.5 起支持三段式;本插件协议面绑死精确补丁,Modrinth 等平台此前按旧值错标适用版本)
- **EasyPlace 长按错放多放**(改写放行 + BlockPlaceEvent 修正)
- **混合 ingredients 列表致 minihud 66 条配方解码失败**(wire 同构化)
- **JEI 配方包晚于进服重载致警告**(netty 扣包等证据放行)
- **五通道 C2S 注册版本门禁缺失与拒绝后旁路**(register 名册状态机 + failures 检疫)
- **paste 同步直放卡主线程与 InfoHud 帧缺失**(PasteTask 分 tick 任务化 + 调度器基类泛化)
- **PacketSplitter 中断上传会话永生与 buffer 泄漏**(TTL 心跳驱逐 + 边界分支对齐)
- **syncmatica 对原版客户端推握手探针**(canSend 守卫)
- **syncmatica 元数据泄露服务端绝对路径**(出口 getCleanFileName + saveServer 清洗)
各项修复均随提交经服务端实机验证(详见各提交记录)。
### 验证
- **83/83 单元测试全绿**(14 个测试类:PacketSplitter / TaskScheduler / DataTagIo / FeatureSet / LitematicaBitArray / RecipeNbtNormalizer / JEI 协议常量·权限矩阵·转移校验等)
- **版本注入终检通过**:产物 jar 内 `plugin.yml` / `version.properties` 与构建版本一致,且 `api-version` ≡ `mcVersion`(自本版起为构建强制闸门;本版曾修复「发版后 jar 内版本陈旧」问题并增设该终检)
- `runServer` 实机起服日志 `Enabling VeryMcProto v26.1.2-b2`(`api-version: '26.1.2'` 加载正常);产物为 Mojang 映射 jar(26.1 起无 reobf)
### 产物
`VeryMcProto-26.1.2-b2.jar` —— Mojang 映射 jar,标准 Paper 26.1.2 服务器放入 `plugins/` 直接加载。
> 上一版本:[v26.1.2-b1](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.1.2-b1);旧版本(MC 1.21.11)见 [v1.21.11-b1](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v1.21.11-b1)。
release
VeryMcProto 26.1.2-b1
26.1.2-b18 сент. 2026 г.6Minecraft: 26.1.2paper, purpur
Что нового
## VeryMcProto 26.1.2-b1(26.1 线首发)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI Recipe Bridge / Syncmatica**),面向 **Minecraft 26.1.2 / Paper 26.1.2**(Java 25)。
### 26.1 全量迁移
- **构建面**:Java 25 工具链(foojay 自动解析)、paperweight dev-bundle 新格式(`26.1.2.build.74-stable`)、**reobf 废除**——产物即 Mojang 映射 jar,标准 Paper 26.1+ 直接加载
- **协议面**(对照 masa 客户端 26.1 源码逐字对齐):
- malilib **DataTag 线格式载体**:业务包 NBT 切换为 `[压缩长][GZIP NBT]` 格式,与客户端逐字节兼容(配单测)
- 协议版本常量硬门禁对齐:HUD / Structures v3,Entities / Tweaks / Litematics v2(客户端 `!=` 严格校验)
- **MOD_STRING 硬门禁**:伪装 `servux-fabric-` 前缀 + 精确上游补丁号 26.1.2,否则四通道整通道静默退网
- C2S 变化:`UNREGISTER_REPLY` 退网、批量重组按 NBT `Task` 字段路由、请求删除 `transactionId`
- **新功能**:Litematica task 组——Fill / Delete 服务端分 tick 执行 + InfoHud 状态同步(type 14–17,v3 极简形态)
- **修复**:进服 minihud structures `not_connected`(同通道 C2S 证明 + NMS 直发兜底,突破 Paper plugin messaging 门控)
### 验证
- **27/27 单元测试全绿**(PacketSplitter / TaskGroup / LitematicaBitArray / DataTagIo / FeatureSet)
- Paper 26.1.2 实机起服验证通过,三模块均经客户端实测
### 产物
`VeryMcProto-26.1.2-b1.jar` —— Mojang 映射 jar,标准 Paper 26.1.2 服务器放入 `plugins/` 直接加载(26.1 起无 reobf 产物)。
> 旧版本(MC 1.21.11)请使用 [v1.21.11-b1](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v1.21.11-b1)。
release
VeryMcProto 1.21.11-b1
1.21.11-b18 сент. 2026 г.48Minecraft: 1.21.11paper, purpur
Что нового
## VeryMcProto 1.21.11-b1(旧版本维护线 · 新版本命名体系)
以纯 Paper 插件形式移植 Fabric 端协议 Mod(**Servux / JEI Recipe Bridge / Syncmatica**),面向 **Minecraft 1.21.11 / Paper 1.21.11**。
本版本是 1.21.11 稳定线在新版本命名体系(`<mcVersion>-b<buildNumber>`)下的首个正式发布——版本写法从旧命名(v1.0.0)迁移为 `1.21.11-b1`,功能集与 v1.0.0 一致。
### 三大模块
- **Servux**:5 条数据通道(HUD / Entities / Tweaks / Structures / Litematics)+ 投影粘贴与文件投递 + EasyPlace 服务端放置协议(需可选依赖 packetevents)
- **JEI Recipe Bridge**:进服配方表同步给 JEI 客户端(fabric / neoforge 双通道,NMS 直发大包)
- **Syncmatica**:投影共享中央仓库——多玩家上传 / 下载 / 协同修改放置位置
### 产物说明
| 文件 | 用途 |
|---|---|
| `VeryMcProto-1.21.11-b1-reobf.jar` | **发布产物**(Spigot 运行时映射,标准 Paper 1.21.11 服务器放入 `plugins/` 直接加载) |
| `VeryMcProto-1.21.11-b1.jar` | Mojang 映射版(开发调试用) |
> 1.21.11 线已冻结为维护线:Bug 修复走 `ver/1.21.11-dev` 分支;最新版本(MC 26.1 线)请使用 [v26.1.2-b1](https://github.com/Kevin-O-Hsu/VeryMcProto/releases/tag/v26.1.2-b1)。
release
VeryMcProto v1.0.0
v1.0.022 июл. 2026 г.62Minecraft: 1.21.11paper, purpur