COWMODSКаталог модов

VeryMcProto

Serverside plugins that add servux&JEI&syncmatica&carpet protocol support for papermc servers.

Автор: Kevin-O-Hsu4744обновлён 30 окт. 2026 г.
Утилиты

Описание

VeryMcProto

A protocol-layer port that re-implements Fabric-only protocol mods as a pure Paper plugin. The client still uses the original Fabric mods; the server swaps from "Fabric server + server-side mod" to "standard Paper server + this plugin", with identical protocol behavior.

Paper 26.2 · Java 25 · paperweight userdev · Version 26.2-b4
Servux · JEI · Syncmatica · Carpet — all four modules implemented and tested on 26.2

Table of Contents


1. What It Is

VeryMcProto is a Paper plugin that re-implements the network protocols and data collection expected by several Fabric protocol mods on a standard Paper 26.2 server, so that a "Fabric client + Paper server" combination behaves exactly like a "Fabric client + vanilla Fabric server mod" combination.

It is a protocol-layer port, not a port of the Fabric mods themselves. The client keeps using masa's / endte's / JEI's own Fabric mods; our job is to implement on the Paper server the custom network channels + server→client data delivery + server-side behavior cooperation they expect.

Why this is necessary:

  • The server-side parts of these protocol mods rely heavily on NMS internals — unreachable via the pure Paper API (see the FAQ).
  • They use Mojang's vanilla CustomPacketPayload mechanism; Paper's plugin messaging channels map directly onto it, and S2C large packets can go via NMS ClientboundCustomPayloadPacket.
  • Server-side cooperative features (e.g. EasyPlace) use Mixin in the original; Paper has no Mixin runtime, so an equivalent is implemented via PacketEvents.

This project uses paperweight userdev to reference fully-deobfuscated Mojang NMS at dev time. Since MC 26.1 Paper no longer supports remapping plugins to Spigot mappings (Mojang removed server obfuscation), the build artifact is the Mojang-mapped jar itself — standard Paper 26.1+ loads it directly. It depends on no server patch / Mixin / private fork.


2. Protocol Mods

ModClient ModNatureStatus
Servuxmasa's MiniHUD / Litematica / TweakerooServer→client one-way broadcast (6 providers over servux:* channels)Full
JEIJEI (mezz/JustEnoughItems 26.2)Full server protocol: recipe sync + cheat + recipe transfer (fabric:recipe_sync / neoforge:recipe_content + 10 jei:* channels)Full
Syncmaticaendte syncmaticaBidirectional, stateful, multi-player shared schematic repository (syncmatica:main + 18 PacketTypes + Exchange sessions)Full
Carpetcarpet client (optional; protocol features only)Behavior-injection mod, portable subset: rule framework + /carpet shell + fake players via /player + carpet:hello handshake / rule sync / /call clientCommand + /log HUD loggers (tps/mobcaps, tab-list footer) + pure-compute commands (/distance /info /perimeterinfo /draw /spawn mobcaps,entities)Full

Servux delivers world metadata / spawn / weather / TPS / MobCap, structure bounding boxes, entity & block-entity NBT queries, and Litematica schematic paste (C2S upload + server-side paste). EasyPlace (Tweakeroo precise placement) is served via PacketEvents. The S2C file-transmit path was removed — the stock 26.1+ client has no receiver for it (re-confirmed on 26.2).

JEI: recipe sync (loader-level channels, join-time packet ordering via RecipeSyncJoinOrderer), the jei:* cheat/transfer channels with a server-side permission model, and the line-by-line ported BasicRecipeTransferHandlerServer.

Syncmatica: the server acts as a central .litematic repository; players upload / download / collaboratively modify placements through Exchange request-acknowledgement sessions, with JSON persistence and upload quotas.

Carpet (rule framework + fake players + carpet:hello protocol + /log HUD loggers + pure-compute commands): an annotation-based rule framework ported in lockstep with upstream SettingsManager (carpet.conf plain-text persistence, locked semantics, validator chains), the /carpet list|setDefault|query|removeDefault shell, 18 rules wired to Paper equivalents (explosion block-damage off via explode events, custom MOTD via ping event, cleanLogs via a log4j filter, /perf permission registry, plus shell/zero-behavior rules), and the fake-player subsystem — the upstream patches/ trio (pure ServerPlayer/Connection/ServerGamePacketListenerImpl subclasses, zero Mixin) plus the 629-line action-pack state machine and the full /player command family (spawn/kill/shadow/mount/sneak/sprint/look/turn/move/attack/use/jump/drop/hotbar ...) on the Paper Brigadier API. Fake players occupy the tab list, count toward the sleep percentage (night skip verified in-game), persist to playerdata, and are recognized by vanilla /tp and /ban. The carpet:hello protocol layer provides single-CompoundTag channel with the upstream HI("69")/hello("420") handshake (version string = upstream mod_version literal, "26.2" — never the plugin version), full & incremental Rules sync feeding the carpet client's rule browser, and the clientCommand request/reply (/call) with output capture via the ported SnoopyCommandSource; all S2C frames go via NMS DiscardedPayload (the carpet client never registers the channel, so plugin messaging is structurally unreachable). The /log subscription framework provides an upstream-shaped LoggerRegistry with the tps/mobcaps HUD loggers (upstream MSPT/TPS formula and the 17²=289 mobcap divisor verbatim), delivered as the tab-list footer every 20 ticks via the Bukkit API (zero protocol path — works for vanilla clients too; the carpet client renders it as its HUD panel), /log subscribe|clear on the Paper Brigadier API gated by the commandLog rule, defaultLoggers defaults re-evaluated per join, and cross-session subscription persistence (carpet-logs.json, explicit subscriptions + unsubscribe tombstones). The pure-compute command family provides /distance (two-point spherical/cylindrical/manhattan distances with a per-player from/to workflow), /info block <pos> [grep] (upstream block property sheet — registry key, properties, map colour, light, hardness, redstone, wander-chance sampling), /perimeterinfo (±128 spawnable-spot census with an optional mob-type specific count), /draw (sphere/ball/diamond/pyramid/cone/cylinder/cuboid shape placement with an optional replace filter), and /spawn mobcaps [dim] / spawn entities <category> [all] — all gated by their own commandXxx rules on the Paper Brigadier API, with the upstream Messenger component output (clickable tp coordinates) ported verbatim and /spawn mobcaps reading the same data source as /log mobcaps. The port is final: every subsystem that can be fully equivalent on Paper has been implemented; the remainder (Scarpet, TNT/redstone/piston optimizations, approximate rule pools, etc.) is technically impossible without Mixin and will never be included. As-built notes live in docs/carpet/architecture.md and docs/carpet/protocol.md.

26.1 introduced hard client-side gates (protocol versions must match exactly; the servux handshake string must start with servux-fabric-<exact upstream MC id>), a new DataTag NBT wire carrier, and a 16MB client reassembly cap. All of this is implemented and documented in docs/servux/protocol.md §5 (version constraints).

Protocol deep-dives: docs/servux/protocol.md (Servux network) · docs/syncmatica/protocol.md (Syncmatica) · docs/jei/protocol.md (JEI).


3. Requirements

Server

ItemRequirement
ServerPaper 26.2 (api-version: '26.2', templated from the single version source; standard Paper, no patch / fork needed)
Java25
OptionalPacketEvents 2.14.0 (only for EasyPlace; if absent it is gracefully skipped — everything else is unaffected)

Client

Feature familyClient must install
All of Servux (HUD / structures / NBT query / schematic paste / EasyPlace)MiniHUD + Litematica + Tweakeroo (the masa suite, 26.2 LTS)
JEI recipe sync + cheat + recipe transferJEI (mezz/JustEnoughItems, 26.2 line)
Schematic sharingSyncmatica (endte client, 26.2 LTS)

The client version must match the server's MC 26.2 line. The client is the "receiving end" of these protocols; every field semantic and reassembly behavior is verified against the client sources.


4. Installation

  1. Get VeryMcProto-26.2-b4.jar from the project Releases page, or build it with ./gradlew build (the Mojang-mapped artifact loads directly on standard Paper 26.1+ — no reobf step exists anymore).
  2. Drop it into the server's plugins/ directory.
  3. (Optional, only for EasyPlace) Install the PacketEvents plugin.
  4. Restart the server; players join with the corresponding client Fabric mods — handshake is automatic.

On startup the console shows:

[VeryMcProto] starting (MC 26.2, paper)...
[VeryMcProto] registered protocol mod: servux
[VeryMcProto] registered protocol mod: jei
[VeryMcProto] registered protocol mod: syncmatica
[VeryMcProto] registered protocol mod: carpet
[VeryMcProto] server startup complete, RegistryAccess captured and servux.json loaded.
[VeryMcProto] framework ready.

Defensive design: the four modules are assembled each inside its own try-catch; any one failing only logs and degrades gracefully — it never blocks server startup and never affects the other modules.

Commands (/servux, /syncmatica, /jei, /carpet, /player, /log, /distance, /info, /perimeterinfo, /draw, /spawn), permission nodes (incl. LuckPerms recipes), every config key of servux.json / jei.json / syncmatica-config.json / carpet.conf / carpet-logs.json, the on-disk data layout, and a troubleshooting table live in docs/operations.md.


5. Architecture

Package root verymc.top.veryMcProto, split into a framework layer and a protocol-mod layer:

verymc.top.veryMcProto
├── VeryMcProto            Main class (JavaPlugin.onEnable assembles the framework + registers the four modules + registers commands)
├── framework/             Framework layer (infrastructure decoupled from any specific protocol mod)
│   ├── network/           plugin messaging channel wrappers, byte-stream codec, splitting, handler registry
│   ├── dataproviders/     Provider registry / scheduler / config hub (used by Servux)
│   ├── event/             Bukkit event → Provider lifecycle bridge (ServerLoad/Join/Quit/Respawn/RegisterChannel + tick)
│   ├── debug/             Generic debug logging engine (independent instances per mod; master + category orthogonal; persisted)
│   ├── permission/ reflect/ nms/ settings/ util/   permission utility, NMS reflection, conversions, config system, JSON utils
└── mod/                   Protocol-mod layer (each ported Fabric protocol mod occupies one directory unit)
    ├── servux/            Servux (app/command/dataproviders/network/easyplace/loggers/schematic/scheduler/util)
    ├── jei/               JEI full server protocol (recipe sync + jei:* channels)
    ├── syncmatica/        Syncmatica (communication/exchange/data/litematica/service/...)
    └── carpet/            Carpet portable subset (rule framework + command shells + fake-player patches/actions/commands + carpet:hello protocol + /log HUD loggers + pure-compute commands/utils)

Assembly (VeryMcProto.onEnable): initialize the framework → register servux → jei → syncmatica → carpet → register the four commands; every step is individually try-catch guarded.

The full Fabric→Paper replacement map (lifecycle hooks → Bukkit events, ServerPlayNetworking → plugin messaging + NMS direct send, Mixin → reflection/PacketEvents/omission, etc.), the degradation matrix and the feasibility argument are in docs/architecture.md.

Maintainers & AI assistants: read AGENTS.md first — it is the canonical repo guide (architecture, branch/version model, core design constraints, working conventions).

Original implementation archive: OriginImpl/ holds the original Fabric sources of every ported mod for line-by-line comparison — in case of divergence, the real source wins.


6. Feature Matrix

The original Servux has 26 Mixins + 2 AccessWideners; Syncmatica has 5 server-side Mixins. Paper has no Mixin runtime, so each is handled per the table below (full matrix: docs/architecture.md §5):

FeatureHandlingStatus
Protocol data collection (reading private fields)Reflection / direct NMS accessImplemented
Collection triggers / lifecycleBukkit events + tick schedulingImplemented
EasyPlace (Tweakeroo precise placement)PacketEvents rewrites the encoded PLAYER_BLOCK_PLACEMENT packet (vanilla placement untouched) + pre-write veto via BlockCanBuildEvent + post-place fix via BlockPlaceEventImplemented (needs PacketEvents)
Mirror fixes (chest/rail/stairs)Inlined fixes on paste (fix_chest_mirror / fix_rail_rotations / fix_stairs_mirror)Implemented (rail/stairs may be less perfect than Mixin)
Fill/Delete via servux tasks (26.1 new)PACKET_C2S_TASK_REQUEST group (types 14-17): per-tick budgeted fill/delete + InfoHud status syncImplemented (26.1+)
UpdateSuppressionOmitted (no Paper equivalent)Not possible
Shulker-box stackingImpossible + all code removed (see FAQ)Not possible
Debug (SharedConstants.IS_RUNNING_IN_IDE)Omitted—

7. Docs & Guides

Start with docs/index.md — the full doc map and suggested reading order (Chinese). Quick pointers:

DocContent
AGENTS.mdCanonical repo guide — architecture, branch/version model, core constraints, conventions
docs/architecture.mdGlobal architecture: framework, network paths & byte limits, Mixin→Paper matrix (canonical), Fabric↔Paper comparison, build toolchain
docs/servux/protocol.mdCore Servux network protocol: CustomPacketPayload, PacketSplitter, channels, byte layouts, version constraints
docs/operations.mdOps reference: commands, permissions, config keys, data layout, troubleshooting + MC version upgrade SOP
docs/servux/testing.md / docs/syncmatica/testing.mdClient compatibility testing (Servux / Syncmatica)
docs/syncmatica/architecture.md + docs/syncmatica/protocol.mdSyncmatica implementation notes (architecture / protocol)
docs/jei/protocol.mdFull JEI protocol
docs/carpet/architecture.md + docs/carpet/protocol.mdCarpet module as-built (rule framework, /carpet shell, fake-player subsystem, deviation list — the portable subset is final) + carpet:hello protocol as-built

Building from source: ./gradlew build (Mojang-mapped jar) · ./gradlew test · ./gradlew runServer — JDK 25 resolves automatically via the foojay toolchain plugin. Everything else a developer needs (NMS constraints, versioning & branch model) lives in AGENTS.md; the MC upgrade runbook lives in docs/operations.md §6.


8. FAQ

Q: Why must we use paperweight / NMS instead of the pure Paper API? A: Data collection depends heavily on NMS internals (NaturalSpawner.SpawnState, ServerTickRateManager, ChunkAccess.getAllReferences(), StructureStart.createTag(), Recipe.CODEC + NbtOps, BlockEntity.saveWithFullMetadata()); the network layer reuses vanilla FriendlyByteBuf / CompoundTag; and JEI/Syncmatica large-packet S2C relies on NMS ClientboundCustomPayloadPacket. The pure Paper API cannot reach these.

Q: Why does Syncmatica default to NMS direct send instead of plugin messaging? A: Testing showed the pure Fabric syncmatica client is unreachable over the plugin-messaging wire and only reachable via NMS DiscardedPayload direct send.

Q: Do shulker-box stacking / UpdateSuppression work? A: No. The former alters a global NMS method (no Mixin / no equivalent on Paper; all code removed); the latter needs a Mixin adding an interface to Level/LevelChunk, and is omitted.

Q: What happens if PacketEvents isn't installed for EasyPlace? A: EasyPlace is skipped automatically (EasyPlaceBootstrap reflective load + catch(Throwable) fallback); all other Servux channels, JEI, and Syncmatica are completely unaffected.

Q: What's the difference between permission_level 2 and 3? A: Under pure Bukkit op there is no difference (both go through the isOp() binary). To differentiate levels, use LuckPerms to explicitly grant the corresponding permission node (see docs/operations.md §2).

Q: What does pasting a schematic require? A: The player needs creative mode + the servux.provider.litematic_data.paste permission (governed by litematic_data:permission_level_paste, default 0 = everyone).


9. Credits

This project is a Paper protocol-layer port of the following Fabric protocol mods — full credit to the original authors and the maintainers who keep them alive:

  • Servux — originally by masa (maruohon/servux); now maintained by sakura-ryoko (sakura-ryoko/servux). The server-side protocol implementation delivering data to MiniHUD / Litematica / Tweakeroo.
  • Litematica / malilib / MiniHUD / Tweakeroo / Item Scroller — originally by masa (maruohon/*); now maintained by sakura-ryoko since masa retired from active development — the 26.2 LTS builds all live under sakura-ryoko:
  • Syncmatica — originally by endte (End-Tech/syncmatica); now maintained by sakura-ryoko (sakura-ryoko/syncmatica). The shared schematic central repository.
  • JustEnoughItems (JEI) — by mezz (mezz/JustEnoughItems, 26.2 branch). The JEI upstream since 2026-09 — the full server protocol (recipe sync via loader channels + jei:* cheat/transfer channels) is ported from it.
  • JEIRecipeBridge — by Mrbysco (Mrbysco/JEIRecipeBridge). The historical JEI recipe-sync reference (1.21.11 line still uses it; kept in OriginImpl/ for the neoforge-layer wire reference).
  • Carpet — by gnembon & contributors (gnembon/fabric-carpet, tag v26.2). A behavior-injection mod; the portable subset (rule framework + /carpet shell + fake-player subsystem) is ported from it.

References


License

This project is licensed under the GNU Lesser General Public License v3.0 only — SPDX identifier LGPL-3.0-only. See the LICENSE file.

The reference archives under OriginImpl/ belong to their respective authors and licenses: servux / litematica / malilib / minihud / tweakeroo / itemscroller (masa → sakura-ryoko) are LGPL-3.0; syncmatica (endte → sakura-ryoko) is CC0. VeryMcProto is an independent Paper re-implementation (a protocol-layer port), not a derivative of their source.


Links


Built for Paper 26.2 · Java 25 · No Mixin / No patch / No private fork

A protocol-layer port: client uses the original Fabric mods; server uses standard Paper + this plugin.

Галерея

Minihud structure

Последние версии

Все версии →
release

VeryMcProto 1.21.11-b8

1.21.11-b8
30 окт. 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-b7
24 окт. 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-b6
19 окт. 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-b8
19 окт. 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-b4
19 окт. 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-b5
12 окт. 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-b7
11 окт. 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-b3
11 окт. 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-b4
11 окт. 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-b3
10 окт. 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)。