feat: add palettes and version constants for MC 1.21.2 (protocol 768)

Add item, entity, block, and metadata palettes for Minecraft 1.21.2:
- ItemPalette1212: 1375 items (42 new: pale oak set, colored bundles,
  creaking heart/spawn egg, banner patterns)
- EntityPalette1212: 150 entity types (boats split into per-wood-type
  entries, generic boat/chest_boat removed; added creaking,
  creaking_transient, pale oak boats)
- Palette1212 (blocks): 1084 block types with state IDs generated from
  official 1.21.2 data reports (24 new pale oak blocks, creaking heart,
  pale moss variants)
- EntityMetadataPalette: reuses 1206 (serializers unchanged in 1.21.2)

Updated version infrastructure:
- Protocol18.cs: MC_1_21_2_Version = 768, palette switch routing
- ProtocolHandler.cs: version mapping 1.21.2 <-> 768
- Program.cs: MCHighestVersion bumped to 1.21.2
- ItemType.cs, EntityType.cs, Material.cs: new enum entries

Note: packet palette, structured components, and protocol handler
changes for 1.21.2 are not yet implemented — this commit covers
palette/registry groundwork only.

Made-with: Cursor
This commit is contained in:
BruceChen 2026-03-20 03:02:43 +08:00
parent 896263acc8
commit df833ae2a8
10 changed files with 3476 additions and 9 deletions

View file

@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Data.Odbc;
using System.Globalization;
@ -153,7 +153,7 @@ namespace MinecraftClient.Protocol
int[] suppoertedVersionsProtocol18 =
{
4, 5, 47, 107, 108, 109, 110, 210, 315, 316, 335, 338, 340, 393, 401, 404, 477, 480, 485, 490, 498, 573,
575, 578, 735, 736, 751, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767
575, 578, 735, 736, 751, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768
};
if (Array.IndexOf(suppoertedVersionsProtocol18, protocolVersion) > -1)
@ -351,6 +351,8 @@ namespace MinecraftClient.Protocol
case "1.21":
case "1.21.1":
return 767;
case "1.21.2":
return 768;
default:
return 0;
}
@ -432,6 +434,7 @@ namespace MinecraftClient.Protocol
765 => "1.20.4",
766 => "1.20.6",
767 => "1.21",
768 => "1.21.2",
_ => "0.0"
};
}