diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BlockStateComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BlockStateComponent.cs index be3950fe..8037d07c 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BlockStateComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BlockStateComponent.cs @@ -7,24 +7,23 @@ namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_2 public class BlockStateComponent(DataTypes dataTypes, ItemPalette itemPalette, SubComponentRegistry subComponentRegistry) : StructuredComponent(dataTypes, itemPalette, subComponentRegistry) { - public int NumberOfProperties { get; set; } public List<(string, string)> Properties { get; set; } = []; public override void Parse(Queue data) { - NumberOfProperties = dataTypes.ReadNextVarInt(data); - for(var i = 0; i < NumberOfProperties; i++) + var count = dataTypes.ReadNextVarInt(data); + for(var i = 0; i < count; i++) Properties.Add((dataTypes.ReadNextString(data), dataTypes.ReadNextString(data))); } public override Queue Serialize() { var data = new List(); - data.AddRange(DataTypes.GetVarInt(NumberOfProperties)); - for (var i = 0; i < NumberOfProperties; i++) + data.AddRange(DataTypes.GetVarInt(Properties.Count)); + foreach (var (key, value) in Properties) { - data.AddRange(DataTypes.GetString(Properties[i].Item1)); - data.AddRange(DataTypes.GetString(Properties[i].Item2)); + data.AddRange(DataTypes.GetString(key)); + data.AddRange(DataTypes.GetString(value)); } return new Queue(data); diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ContainerComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ContainerComponent.cs index 053fc918..c132e06f 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ContainerComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ContainerComponent.cs @@ -8,13 +8,12 @@ namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_2 public class ContainerComponent(DataTypes dataTypes, ItemPalette itemPalette, SubComponentRegistry subComponentRegistry) : StructuredComponent(dataTypes, itemPalette, subComponentRegistry) { - public int NumberOfItems { get; set; } public List Items { get; set; } = []; public override void Parse(Queue data) { - NumberOfItems = dataTypes.ReadNextVarInt(data); - for (var i = 0; i < NumberOfItems; i++) + var count = dataTypes.ReadNextVarInt(data); + for (var i = 0; i < count; i++) Items.Add(dataTypes.ReadNextItemSlot(data, ItemPalette)); } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/PotDecorationsComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/PotDecorationsComponent.cs index 74607228..0acc10e6 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/PotDecorationsComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/PotDecorationsComponent.cs @@ -7,22 +7,21 @@ namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_2 public class PotDecorationsComponent(DataTypes dataTypes, ItemPalette itemPalette, SubComponentRegistry subComponentRegistry) : StructuredComponent(dataTypes, itemPalette, subComponentRegistry) { - public int NumberOfItems { get; set; } public List Items { get; set; } = []; public override void Parse(Queue data) { - NumberOfItems = dataTypes.ReadNextVarInt(data); - for(var i = 0; i < NumberOfItems; i++) + var count = dataTypes.ReadNextVarInt(data); + for(var i = 0; i < count; i++) Items.Add(dataTypes.ReadNextVarInt(data)); } public override Queue Serialize() { var data = new List(); - data.AddRange(DataTypes.GetVarInt(NumberOfItems)); - for(var i = 0; i < NumberOfItems; i++) - data.AddRange(DataTypes.GetVarInt(Items[i])); + data.AddRange(DataTypes.GetVarInt(Items.Count)); + foreach (var item in Items) + data.AddRange(DataTypes.GetVarInt(item)); return new Queue(data); } } \ No newline at end of file diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/WritableBlookContentComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/WritableBlookContentComponent.cs index 9c782d55..e22c714a 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/WritableBlookContentComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/WritableBlookContentComponent.cs @@ -8,14 +8,13 @@ namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Components._1_2 public class WritableBlookContentComponent(DataTypes dataTypes, ItemPalette itemPalette, SubComponentRegistry subComponentRegistry) : StructuredComponent(dataTypes, itemPalette, subComponentRegistry) { - public int NumberOfPages { get; set; } public List Pages { get; set; } = []; public override void Parse(Queue data) { - NumberOfPages = dataTypes.ReadNextVarInt(data); + var count = dataTypes.ReadNextVarInt(data); - for (var i = 0; i < NumberOfPages; i++) + for (var i = 0; i < count; i++) { var rawContent = dataTypes.ReadNextString(data); var hasFilteredContent = dataTypes.ReadNextBool(data); @@ -32,10 +31,7 @@ public class WritableBlookContentComponent(DataTypes dataTypes, ItemPalette item { var data = new List(); - data.AddRange(DataTypes.GetVarInt(NumberOfPages)); - - if (NumberOfPages != Pages.Count) - throw new InvalidOperationException("Can not setialize WritableBlookContentComponent1206 because NumberOfPages != Pages.Count!"); + data.AddRange(DataTypes.GetVarInt(Pages.Count)); foreach (var page in Pages) { @@ -45,7 +41,7 @@ public class WritableBlookContentComponent(DataTypes dataTypes, ItemPalette item if (page.HasFilteredContent) { if(page.FilteredContent is null) - throw new InvalidOperationException("Can not setialize WritableBlookContentComponent1206 because page.HasFilteredContent = true, but FilteredContent is null!"); + throw new InvalidOperationException("Can not serialize WritableBlookContentComponent because page.HasFilteredContent = true, but FilteredContent is null!"); data.AddRange(DataTypes.GetString(page.FilteredContent)); }