Links
Tags
Creators
Details
26.1.2-b6
Compatibility
Required content
Changes
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,源自 devc04407f):门/垂滴叶等DoubleBlockHalf双半格下半修正后以修正态重演setPlacedBy派生上半——两半构造性一致,不再依赖受 BlockPhysicsEvent 取消门控的updateShape邻居自愈;床(BedPart)不修正为已知差异(上游为写入前整体改向,见 docs/04 差异①)。 - syncmatica disable→enable 握手永久卡死 + NBT 注入加固(
858a103,源自 dev7800cbe):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 分配;对齐上游 malilibSizeTracker语义)。
- EasyPlace 拒绝路径语义反转修复(
31a7403,源自 devea390e6):拒绝判定前移BlockCanBuildEvent(fire 于BlockItem.canPlace体内、先于全部放置副作用——26.1.2 字节码实证 canPlace :83-136 / asBlockData :98-99 / isBuildable :136)——拒绝 = vanilla place 在 placeBlock 前整次 FAIL(无方块/不消耗/无音效/gameEvent/stat),与上游setReturnValue(null)同位同效零残差;BlockPlaceEvent退化纯写入,判定结果经EasyPlacePendingstash 暂存传递;修正态 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 个测试类,含新增
EasyPlacePendingTest5 用例: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;26.2 线同源修复见 v26.2-b2。
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:tyOxCfUJ:3IbtFl0Z"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:tyOxCfUJ:3IbtFl0Z"
}

