using System.Collections.Generic; using MinecraftClient.Inventory; using MinecraftClient.Inventory.ItemPalettes; using MinecraftClient.Protocol.Handlers.StructuredComponents.Core; namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_20_6; public class EnchantmentsComponent(DataTypes dataTypes, ItemPalette itemPalette, SubComponentRegistry subComponentRegistry) : StructuredComponent(dataTypes, itemPalette, subComponentRegistry) { public int NumberOfEnchantments { get; set; } public List Enchantments { get; set; } = new(); public bool ShowTooltip { get; set; } public override void Parse(Queue data) { NumberOfEnchantments = dataTypes.ReadNextVarInt(data); for (var i = 0; i < NumberOfEnchantments; i++) { var registryId = dataTypes.ReadNextVarInt(data); var level = dataTypes.ReadNextVarInt(data); Enchantments.Add(new Enchantment(EnchantmentMapping.GetEnchantmentByRegistryId1206(registryId), level)); } ShowTooltip = dataTypes.ReadNextBool(data); } public override Queue Serialize() { var data = new List(); data.AddRange(DataTypes.GetVarInt(Enchantments.Count)); foreach (var enchantment in Enchantments) { data.AddRange(DataTypes.GetVarInt(EnchantmentMapping.GetRegistryId1206ByEnchantment(enchantment.Type))); data.AddRange(DataTypes.GetVarInt(enchantment.Level)); } data.AddRange(DataTypes.GetBool(ShowTooltip)); return new Queue(data); } }