Commit b82cd57
schema(26.1.2): vendor mneuhaus PR PrismarineJS#1186 protocol.json — fix LpVec3 + use_entity
Replaces our Siigari-PR-PrismarineJS#1184-derived protocol.json with mneuhaus's
PR PrismarineJS#1186 (PrismarineJS#1186,
head bc0c595, opened 2026-05-12, 49 mineflayer external tests passing).
ROOT CAUSE (bytecode-verified 2026-05-12):
- MC 26.1.2 server-26.1.2.jar contains new class net/minecraft/network/LpVec3.class
- ClientboundSetEntityMotionPacket.STREAM_CODEC <clinit>+8 reads via
net/minecraft/world/phys/Vec3.LP_STREAM_CODEC → BootstrapMethods table
cites LpVec3.read/write
- Our prior schema mistyped packet_entity_velocity.velocity,
packet_spawn_entity.velocity, and packet_use_entity.location as vec3i16
(3 × i16 = 6 bytes, notch-quantized) when wire format is actually
LpVec3 (variable-length bit-packed with scale bits + continuation
flag + optional VarInt extension)
- Byte-coincident wire size (6 bytes minimum LpVec3) → packet parses
without PartialReadError but values are garbage → mineflayer applies
garbage to bot.entity.velocity → physics integration → "10× knockback
catapult" symptom (bot launched 60+ blocks, dies on fall)
FIX (this commit):
- packet_entity_velocity.velocity: vec3i16 → lpVec3
- packet_spawn_entity.velocity: vec3i16 → lpVec3
- packet_use_entity: rewritten (entityId + hand + location: lpVec3 +
usingSecondaryAction)
- Many adjacent shapes updated to match upstream-canonical 26.1.2 schema
- Codec (lpVec3.js) already in node-minecraft-protocol@1.66.0; no new
protodef type needed
Spec: docs/superpowers/specs/2026-05-12-mc26-protocol-schema-audit-design.md
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>1 parent d83789a commit b82cd57
1 file changed
Lines changed: 3171 additions & 896 deletions
0 commit comments