fix: correct bitfield decoder using mask extraction, fix command_node
- Switch bitfield decoder from shift-based to mask-based extraction (var>>pos & mask) fixes non-power-of-2 bitfields like 6-bit command_node flags - Fix MultiTypeFix to handle CaseExprTypeOnlyNumber/OnlyBool variants - Update minecraft-data command_node bitfield order for all 1.21.8+ versions to LSB-first convention (matches reverse encoder/decoder) - Implement SwitchDecoder for extraNodeData via compareTo visitor - DeclareCommands now decodes successfully (was EOF) - Add 6 regression tests (entity_equipment, metadata, recipes, commands)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
// Code generated by strom. DO NOT EDIT.
|
||||
// source: minecraft-data/pc/1.12.2/protocol.json (sha256:21c57208db654a5e14a34cb696570080df179c5c642e53b16120399eee9232be)
|
||||
// version: v0.6.6-0.20260805175346-53d366ae5301+dirty (go1.26.2)
|
||||
// version: v0.6.6-0.20260805191907-f4c27628815b+dirty (go1.26.2)
|
||||
package v1_12_2
|
||||
|
||||
import (
|
||||
@@ -432,17 +432,17 @@ func (ret *Position) Decode(r io.ReadSeeker) (err error) {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
ret.X = int32(PositionPacked << 0 >> 38)
|
||||
if ret.X >= 1<<25 {
|
||||
ret.X -= 1 << 26
|
||||
ret.Z = int32(PositionPacked >> 0 & 67108863)
|
||||
if ret.Z >= 1<<25 {
|
||||
ret.Z -= 1 << 26
|
||||
}
|
||||
ret.Y = int16(PositionPacked << 26 >> 52)
|
||||
ret.Y = int16(PositionPacked >> 26 & 4095)
|
||||
if ret.Y >= 1<<11 {
|
||||
ret.Y -= 1 << 12
|
||||
}
|
||||
ret.Z = int32(PositionPacked << 38 >> 38)
|
||||
if ret.Z >= 1<<25 {
|
||||
ret.Z -= 1 << 26
|
||||
ret.X = int32(PositionPacked >> 38 & 67108863)
|
||||
if ret.X >= 1<<25 {
|
||||
ret.X -= 1 << 26
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -2810,10 +2810,10 @@ func (ret *PlayToClientPacketAdvancements) Decode(r io.ReadSeeker) (err error) {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Flags.Unused = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataFlagsPacked << 0 >> 3
|
||||
PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Flags.Hidden = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataFlagsPacked<<29>>31 == 1
|
||||
PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Flags.ShowToast = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataFlagsPacked<<30>>31 == 1
|
||||
PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Flags.HasBackgroundTexture = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataFlagsPacked<<31>>31 == 1
|
||||
PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Flags.HasBackgroundTexture = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataFlagsPacked>>0&1 == 1
|
||||
PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Flags.ShowToast = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataFlagsPacked>>1&1 == 1
|
||||
PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Flags.Hidden = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataFlagsPacked>>2&1 == 1
|
||||
PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Flags.Unused = PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataFlagsPacked >> 3 & 536870911
|
||||
switch PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataPresentValue.Flags.HasBackgroundTexture {
|
||||
case true:
|
||||
var PlayToClientPacketAdvancementsAdvancementMappingElementValueDisplayDataBackgroundTexture1Tmp string
|
||||
|
||||
Reference in New Issue
Block a user