Modernize data carriers to records and add primary constructors

Convert 14 data carrier classes to records:
- VillagerInfo, MapIcon, EnchantmentData: non-positional records (mutable properties)
- ForgeMod, SkinInfo, VillagerTrade, Node, Response: positional records
- CommandNode: sealed positional record
- CommandArgumentDescriptor: readonly record struct
- ColorRGBA: record struct (multiple constructors preserved)
- RecipeConfig, Recipe, BannerLayer: non-positional records

Add primary constructors to 6 classes:
- DataTypes, Protocol18Terrain, Protocol18Forge, ItemMovingHelper,
  LastSeenMessageList, Acknowledgment, SuggestionTooltip

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-03-24 01:31:17 +00:00
parent 81b756292e
commit 654a16907b
18 changed files with 68 additions and 231 deletions

View file

@ -8,17 +8,12 @@ namespace MinecraftClient.Protocol.Message
/// <summary>
/// A list of messages a client has seen.
/// </summary>
public class LastSeenMessageList
public class LastSeenMessageList(AcknowledgedMessage[] list)
{
public static readonly LastSeenMessageList EMPTY = new(Array.Empty<AcknowledgedMessage>());
public static readonly int MAX_ENTRIES = 5;
public AcknowledgedMessage[] entries;
public LastSeenMessageList(AcknowledgedMessage[] list)
{
entries = list;
}
public AcknowledgedMessage[] entries = list;
public void WriteForSign(List<byte> data)
{
@ -56,16 +51,10 @@ namespace MinecraftClient.Protocol.Message
/// A record of messages acknowledged by a client.
/// This holds the messages the client has recently seen, as well as the last message they received, if any.
/// </summary>
public class Acknowledgment
public class Acknowledgment(LastSeenMessageList lastSeenMessageList, AcknowledgedMessage? lastReceivedMessage)
{
public LastSeenMessageList lastSeen;
public AcknowledgedMessage? lastReceived;
public Acknowledgment(LastSeenMessageList lastSeenMessageList, AcknowledgedMessage? lastReceivedMessage)
{
lastSeen = lastSeenMessageList;
lastReceived = lastReceivedMessage;
}
public LastSeenMessageList lastSeen = lastSeenMessageList;
public AcknowledgedMessage? lastReceived = lastReceivedMessage;
}
}