mirror of
https://github.com/Pumpkin-MC/Pumpkin.git
synced 2026-08-31 08:22:33 +00:00
* fix(protocol): remap item/block state IDs and entity metadata for older Java clients The server was using reversed ViaVersion mappings (designed for old→new) to downgrade packets for older clients, which produced ID collisions and incorrect fallbacks for 26.1-exclusive items and block states. Changes: - Replace ViaVersion with ViaBackwards mapping files for item ID and block state remapping, which provide the correct new→old direction with proper closest-item fallbacks for 26.1-exclusive content - Fix CSetEntityMetadata to remap ItemStack item IDs per client version, matching the version-aware handling already done for inventory packets and block state metadata - Fix TrackedData codegen to resolve Java JSON keys correctly by trying both bare names and DATA_-prefixed names, and iterate the union of all version keys instead of only the latest (Bedrock) version - Fix LootCondition::MatchTool to default to false instead of true, preventing silk-touch loot table branches from always winning and causing ores to drop themselves instead of their correct items Fixes: block drops invisible on older Java clients Fixes: leather showing as milk bucket on 1.21.11 Fixes: coal ore dropping coal ore instead of coal Fixes: 26.1-exclusive blocks showing as wrong blocks on older clients * fix(codegen): remove #[must_use] from trait impl methods in generated code * fix(codegen): switch entity, sound and block state remapping to ViaBackwards mappings --------- Co-authored-by: Missing_Love <42416195+Q2297045667@users.noreply.github.com>