From e09b997cdf464bddabad7b01e313fa3d427e98c8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Mar 2026 00:05:56 +0000 Subject: [PATCH 01/13] Initial plan From 74def7c51276242691b2ad654bfde39e7419f930 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Mar 2026 00:15:21 +0000 Subject: [PATCH 02/13] Modernize lock object declarations from object to System.Threading.Lock Replace all lock object declarations using 'object' type with the C# 13 System.Threading.Lock type across 12 files. The Lock type provides a more efficient locking mechanism - when used with lock(), the compiler automatically uses Lock.EnterScope() instead of Monitor.Enter/Exit. Also made two previously non-readonly lock fields readonly: - McClient.DigLock - Protocol18.MessageSigningLock Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- MinecraftClient/ChatBots/AutoDig.cs | 3 ++- MinecraftClient/ChatBots/AutoFishing.cs | 3 ++- MinecraftClient/ChatBots/ChatLog.cs | 3 ++- MinecraftClient/ChatBots/DiscordRpc.cs | 4 ++-- MinecraftClient/ChatBots/Mailer.cs | 3 ++- MinecraftClient/Logger/FileLogLogger.cs | 3 ++- MinecraftClient/McClient.cs | 8 ++++---- MinecraftClient/Protocol/Handlers/Protocol18.cs | 2 +- MinecraftClient/Scripting/ChatBot.cs | 3 ++- MinecraftClient/Settings.cs | 2 +- MinecraftClient/TaskWithResult.cs | 2 +- MinecraftClient/config/sample-script-packet-capture.cs | 4 +++- 12 files changed, 24 insertions(+), 16 deletions(-) diff --git a/MinecraftClient/ChatBots/AutoDig.cs b/MinecraftClient/ChatBots/AutoDig.cs index e1da7a51..67d0b199 100644 --- a/MinecraftClient/ChatBots/AutoDig.cs +++ b/MinecraftClient/ChatBots/AutoDig.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading; using Brigadier.NET.Builder; using MinecraftClient.CommandHandler; using MinecraftClient.CommandHandler.Patch; @@ -102,7 +103,7 @@ namespace MinecraftClient.ChatBots private bool inventoryEnabled; private int counter = 0; - private readonly object stateLock = new(); + private readonly Lock stateLock = new(); private State state = State.WaitJoinGame; bool AlreadyWaitting = false; diff --git a/MinecraftClient/ChatBots/AutoFishing.cs b/MinecraftClient/ChatBots/AutoFishing.cs index f2ab906d..c72dcb40 100644 --- a/MinecraftClient/ChatBots/AutoFishing.cs +++ b/MinecraftClient/ChatBots/AutoFishing.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Threading; using Brigadier.NET.Builder; using MinecraftClient.CommandHandler; using MinecraftClient.CommandHandler.Patch; @@ -175,7 +176,7 @@ namespace MinecraftClient.ChatBots private Entity fishItem = new(-1, EntityType.Item, Location.Zero); private int counter = 0; - private readonly object stateLock = new(); + private readonly Lock stateLock = new(); private FishingState state = FishingState.WaitJoinGame; private int curLocationIdx = 0, moveDir = 1; diff --git a/MinecraftClient/ChatBots/ChatLog.cs b/MinecraftClient/ChatBots/ChatLog.cs index 37aecd36..d5121897 100644 --- a/MinecraftClient/ChatBots/ChatLog.cs +++ b/MinecraftClient/ChatBots/ChatLog.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Threading; using MinecraftClient.CommandHandler; using MinecraftClient.Scripting; using Tomlet.Attributes; @@ -50,7 +51,7 @@ namespace MinecraftClient.ChatBots private bool saveChat = true; private bool savePrivate = true; private bool saveInternal = true; - private readonly object logfileLock = new(); + private readonly Lock logfileLock = new(); /// /// This bot saves the messages received in the specified file, with some filters and date/time tagging. diff --git a/MinecraftClient/ChatBots/DiscordRpc.cs b/MinecraftClient/ChatBots/DiscordRpc.cs index f4be0532..e3ab09b3 100644 --- a/MinecraftClient/ChatBots/DiscordRpc.cs +++ b/MinecraftClient/ChatBots/DiscordRpc.cs @@ -361,8 +361,8 @@ namespace MinecraftClient.ChatBots private readonly byte[] _buffer = new byte[PipeFrame.MAX_SIZE]; private readonly Queue _frameQueue = new(); - private readonly object _frameQueueLock = new(); - private readonly object _streamLock = new(); + private readonly Lock _frameQueueLock = new(); + private readonly Lock _streamLock = new(); private int _connectedPipe; private NamedPipeClientStream? _stream; diff --git a/MinecraftClient/ChatBots/Mailer.cs b/MinecraftClient/ChatBots/Mailer.cs index 5733b3a8..1d84b74f 100644 --- a/MinecraftClient/ChatBots/Mailer.cs +++ b/MinecraftClient/ChatBots/Mailer.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; +using System.Threading; using Brigadier.NET; using Brigadier.NET.Builder; using MinecraftClient.CommandHandler; @@ -218,7 +219,7 @@ namespace MinecraftClient.ChatBots private IgnoreList ignoreList = new(); private FileMonitor? mailDbFileMonitor; private FileMonitor? ignoreListFileMonitor; - private readonly object readWriteLock = new(); + private readonly Lock readWriteLock = new(); /// /// Initialization of the Mailer bot diff --git a/MinecraftClient/Logger/FileLogLogger.cs b/MinecraftClient/Logger/FileLogLogger.cs index 9614a5c4..a7931202 100644 --- a/MinecraftClient/Logger/FileLogLogger.cs +++ b/MinecraftClient/Logger/FileLogLogger.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Threading; using MinecraftClient.Scripting; namespace MinecraftClient.Logger @@ -8,7 +9,7 @@ namespace MinecraftClient.Logger { private readonly string logFile; private readonly bool prependTimestamp; - private readonly object logFileLock = new(); + private readonly Lock logFileLock = new(); public FileLogLogger(string file, bool prependTimestamp = false) { diff --git a/MinecraftClient/McClient.cs b/MinecraftClient/McClient.cs index 45a9f776..2f220594 100644 --- a/MinecraftClient/McClient.cs +++ b/MinecraftClient/McClient.cs @@ -43,7 +43,7 @@ namespace MinecraftClient private static DateTime nextMessageSendTime = DateTime.MinValue; private readonly Queue threadTasks = new(); - private readonly object threadTasksLock = new(); + private readonly Lock threadTasksLock = new(); private readonly List bots = new(); private static readonly List botsOnHold = new(); @@ -58,7 +58,7 @@ namespace MinecraftClient private bool inventoryHandlingRequested = false; private bool entityHandlingEnabled; - private readonly object locationLock = new(); + private readonly Lock locationLock = new(); private bool locationReceived = false; private readonly World world = new(); private Queue? steps; @@ -86,7 +86,7 @@ namespace MinecraftClient private readonly string sessionid; private readonly PlayerKeyPair? playerKeyPair; private DateTime lastKeepAlive; - private readonly object lastKeepAliveLock = new(); + private readonly Lock lastKeepAliveLock = new(); private int respawnTicks = 0; private int gamemode = 0; private bool isSupportPreviewsChat; @@ -94,7 +94,7 @@ namespace MinecraftClient private int playerEntityID; - private object DigLock = new(); + private readonly Lock DigLock = new(); private Tuple? LastDigPosition; private int RemainingDiggingTime = 0; diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index 9b35c026..a11efc1e 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -102,7 +102,7 @@ namespace MinecraftClient.Protocol.Handlers private int oldSamplesWeight = 1; private bool receiveDeclareCommands = false, receivePlayerInfo = false; - private object MessageSigningLock = new(); + private readonly Lock MessageSigningLock = new(); private Guid chatUuid = Guid.NewGuid(); private int pendingAcknowledgments = 0, messageIndex = 0; private LastSeenMessagesCollector lastSeenMessagesCollector; diff --git a/MinecraftClient/Scripting/ChatBot.cs b/MinecraftClient/Scripting/ChatBot.cs index 024b74af..be825fe8 100644 --- a/MinecraftClient/Scripting/ChatBot.cs +++ b/MinecraftClient/Scripting/ChatBot.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using System.Text; using System.Text.RegularExpressions; +using System.Threading; using Brigadier.NET; using MinecraftClient.CommandHandler; using MinecraftClient.Inventory; @@ -42,7 +43,7 @@ namespace MinecraftClient.Scripting private McClient? _handler = null; private ChatBot? master = null; private readonly List registeredPluginChannels = new(); - private readonly object delayTasksLock = new(); + private readonly Lock delayTasksLock = new(); private readonly List delayedTasks = new(); protected McClient Handler { diff --git a/MinecraftClient/Settings.cs b/MinecraftClient/Settings.cs index ab576cc7..6ee9ecfd 100644 --- a/MinecraftClient/Settings.cs +++ b/MinecraftClient/Settings.cs @@ -1011,7 +1011,7 @@ namespace MinecraftClient private readonly Dictionary VarObject = new(); [NonSerialized] - readonly object varLock = new(); + readonly Lock varLock = new(); /// /// Set a custom %variable% which will be available through expandVars() diff --git a/MinecraftClient/TaskWithResult.cs b/MinecraftClient/TaskWithResult.cs index 90e21e8d..4cf28659 100644 --- a/MinecraftClient/TaskWithResult.cs +++ b/MinecraftClient/TaskWithResult.cs @@ -14,7 +14,7 @@ namespace MinecraftClient private T? result = default; private Exception? exception = null; private bool taskRun = false; - private readonly object taskRunLock = new(); + private readonly Lock taskRunLock = new(); /// /// Create a new asynchronous task with return value diff --git a/MinecraftClient/config/sample-script-packet-capture.cs b/MinecraftClient/config/sample-script-packet-capture.cs index bfebb214..981ddb49 100644 --- a/MinecraftClient/config/sample-script-packet-capture.cs +++ b/MinecraftClient/config/sample-script-packet-capture.cs @@ -4,12 +4,14 @@ MCC.LoadBot(new PacketCadenceCaptureBot()); //MCCScript Extensions +using System.Threading; + public class PacketCadenceCaptureBot : ChatBot { private const int CaptureDurationSeconds = 5; private const int CaptureDurationTicks = CaptureDurationSeconds * 20; - private readonly object _countsLock = new(); + private readonly Lock _countsLock = new(); private readonly Dictionary _counts = new() { { "PlayerMovement", 0 }, From cf34db526b115ac5a802359ea703eb938ec557ab Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Mar 2026 00:21:37 +0000 Subject: [PATCH 03/13] refactor: modernize null-check patterns in McClient.cs Replace '== null' with 'is null' and '!= null' with 'is not null' across 51 occurrences to use idiomatic C# pattern matching. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- MinecraftClient/McClient.cs | 102 ++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/MinecraftClient/McClient.cs b/MinecraftClient/McClient.cs index 2f220594..e9ea713c 100644 --- a/MinecraftClient/McClient.cs +++ b/MinecraftClient/McClient.cs @@ -210,9 +210,9 @@ namespace MinecraftClient { scope.SetTag("Protocol Version", protocolversion.ToString()); scope.SetTag("Minecraft Version", ProtocolHandler.ProtocolVersion2MCVer(protocolversion)); - scope.SetTag("MCC Build", Program.BuildInfo == null ? "Debug" : Program.BuildInfo); + scope.SetTag("MCC Build", Program.BuildInfo is null ? "Debug" : Program.BuildInfo); - if (forgeInfo != null) + if (forgeInfo is not null) scope.SetTag("Forge Version", forgeInfo?.Version.ToString()); scope.Contexts["Server Information"] = new @@ -288,7 +288,7 @@ namespace MinecraftClient return; Retry: - if (timeoutdetector != null) + if (timeoutdetector is not null) { timeoutdetector.Item2.Cancel(); timeoutdetector = null; @@ -377,7 +377,7 @@ namespace MinecraftClient Log.Error($"Transfer to {newHost}:{newPort} failed: {ex.Message}"); // Handle reconnection attempts - if (timeoutdetector != null) + if (timeoutdetector is not null) { timeoutdetector.Item2.Cancel(); timeoutdetector = null; @@ -514,8 +514,8 @@ namespace MinecraftClient UpdatePathfindingInput(); // Sync yaw/pitch if explicitly set (by commands/bots) - if (_yaw != null) playerPhysics.Yaw = _yaw.Value; - if (_pitch != null) playerPhysics.Pitch = _pitch.Value; + if (_yaw is not null) playerPhysics.Yaw = _yaw.Value; + if (_pitch is not null) playerPhysics.Pitch = _pitch.Value; // Update environment flags (water, lava, climbable) playerPhysics.UpdateEnvironment(world); @@ -563,7 +563,7 @@ namespace MinecraftClient { if (RemainingDiggingTime > 0) { - if (--RemainingDiggingTime == 0 && LastDigPosition != null) + if (--RemainingDiggingTime == 0 && LastDigPosition is not null) { handler.SendPlayerDigging(2, LastDigPosition.Item1, LastDigPosition.Item2, sequenceId++); Log.Info(string.Format(Translations.cmd_dig_end, LastDigPosition.Item1)); @@ -627,25 +627,25 @@ namespace MinecraftClient botsOnHold.Clear(); botsOnHold.AddRange(bots); - if (handler != null) + if (handler is not null) { handler.Disconnect(); handler.Dispose(); } - if (cmdprompt != null) + if (cmdprompt is not null) { cmdprompt.Cancel(); cmdprompt = null; } - if (timeoutdetector != null) + if (timeoutdetector is not null) { timeoutdetector.Item2.Cancel(); timeoutdetector = null; } - if (client != null) + if (client is not null) client.Close(); } @@ -660,9 +660,9 @@ namespace MinecraftClient world.Clear(); - if (timeoutdetector != null) + if (timeoutdetector is not null) { - if (timeoutdetector != null && Thread.CurrentThread != timeoutdetector.Item1) + if (timeoutdetector is not null && Thread.CurrentThread != timeoutdetector.Item1) timeoutdetector.Item2.Cancel(); timeoutdetector = null; } @@ -728,7 +728,7 @@ namespace MinecraftClient private void ConsoleReaderOnMessageReceived(object? sender, string e) { - if (client.Client == null) + if (client.Client is null) return; if (client.Client.Connected) @@ -980,7 +980,7 @@ namespace MinecraftClient get { int callingThreadId = Environment.CurrentManagedThreadId; - if (handler != null) + if (handler is not null) { return handler.GetNetMainThreadId() != callingThreadId; } @@ -1011,7 +1011,7 @@ namespace MinecraftClient bots.Add(b); if (init) DispatchBotEvent(bot => bot.Initialize(), new ChatBot[] { b }); - if (handler != null) + if (handler is not null) DispatchBotEvent(bot => bot.AfterGameJoined(), new ChatBot[] { b }); } @@ -1353,7 +1353,7 @@ namespace MinecraftClient { pathTarget = null; path = Movement.CalculatePath(world, location, goal, allowUnsafe, maxOffset, minOffset, timeout ?? TimeSpan.FromSeconds(5)); - return path != null; + return path is not null; } } } @@ -1591,7 +1591,7 @@ namespace MinecraftClient // Update our inventory base on action type Container inventory = GetInventory(windowId)!; Container playerInventory = GetInventory(0)!; - if (inventory != null) + if (inventory is not null) { switch (action) { @@ -1738,7 +1738,7 @@ namespace MinecraftClient case WindowActionType.ShiftClick: case WindowActionType.ShiftRightClick: if (slotId == 0) break; - if (item != null) + if (item is not null) { /* Target slot have item */ @@ -1758,7 +1758,7 @@ namespace MinecraftClient upper2backpack = true; lowerStartSlot = 9; } - else if (item != null && false /* Check if wearable */) + else if (item is not null && false /* Check if wearable */) { lower2upper = true; // upperStartSlot = ?; @@ -1894,7 +1894,7 @@ namespace MinecraftClient upper2backpack = true; lowerStartSlot = 1; } - else if (item != null && item.Count == 1 && (item.Type == ItemType.NetheriteIngot || + else if (item is not null && item.Count == 1 && (item.Type == ItemType.NetheriteIngot || item.Type == ItemType.Emerald || item.Type == ItemType.Diamond || item.Type == ItemType.GoldIngot || item.Type == ItemType.IronIngot) && !inventory.Items.ContainsKey(0)) { @@ -1927,7 +1927,7 @@ namespace MinecraftClient upper2backpack = true; lowerStartSlot = 3; } - else if (item != null && false /* Check if it can be burned */) + else if (item is not null && false /* Check if it can be burned */) { lower2upper = true; upperStartSlot = 0; @@ -1954,7 +1954,7 @@ namespace MinecraftClient upper2backpack = true; lowerStartSlot = 5; } - else if (item != null && item.Type == ItemType.BlazePowder) + else if (item is not null && item.Type == ItemType.BlazePowder) { lower2upper = true; if (!inventory.Items.ContainsKey(4) || inventory.Items[4].Count < 64) @@ -1962,12 +1962,12 @@ namespace MinecraftClient else upperStartSlot = upperEndSlot = 3; } - else if (item != null && false /* Check if it can be used for alchemy */) + else if (item is not null && false /* Check if it can be used for alchemy */) { lower2upper = true; upperStartSlot = upperEndSlot = 3; } - else if (item != null && (item.Type == ItemType.Potion || item.Type == ItemType.GlassBottle)) + else if (item is not null && (item.Type == ItemType.Potion || item.Type == ItemType.GlassBottle)) { lower2upper = true; upperStartSlot = 0; @@ -2009,7 +2009,7 @@ namespace MinecraftClient upper2backpack = true; lowerStartSlot = 5; } - else if (item != null && item.Type == ItemType.LapisLazuli) + else if (item is not null && item.Type == ItemType.LapisLazuli) { lower2upper = true; upperStartSlot = upperEndSlot = 1; @@ -2029,7 +2029,7 @@ namespace MinecraftClient upper2backpack = true; lowerStartSlot = 3; } - else if (item != null && false /* Check */) + else if (item is not null && false /* Check */) { lower2upper = true; upperStartSlot = 0; @@ -2066,7 +2066,7 @@ namespace MinecraftClient upper2backpack = true; lowerStartSlot = 4; } - else if (item != null && false /* Check for availability for staining */) + else if (item is not null && false /* Check for availability for staining */) { lower2upper = true; // upperStartSlot = ?; @@ -2095,7 +2095,7 @@ namespace MinecraftClient upper2backpack = true; lowerStartSlot = 3; } - else if (item != null && false /* Check if it is available for trading */) + else if (item is not null && false /* Check if it is available for trading */) { lower2upper = true; upperStartSlot = 0; @@ -2124,12 +2124,12 @@ namespace MinecraftClient upper2backpack = true; lowerStartSlot = 3; } - else if (item != null && item.Type == ItemType.FilledMap) + else if (item is not null && item.Type == ItemType.FilledMap) { lower2upper = true; upperStartSlot = upperEndSlot = 0; } - else if (item != null && item.Type == ItemType.Map) + else if (item is not null && item.Type == ItemType.Map) { lower2upper = true; upperStartSlot = upperEndSlot = 1; @@ -2157,7 +2157,7 @@ namespace MinecraftClient upper2backpack = true; lowerStartSlot = 2; } - else if (item != null && false /* Check if it is available for stone cutteing */) + else if (item is not null && false /* Check if it is available for stone cutteing */) { lower2upper = true; upperStartSlot = 0; @@ -2442,7 +2442,7 @@ namespace MinecraftClient lock (DigLock) { - if (RemainingDiggingTime > 0 && LastDigPosition != null) + if (RemainingDiggingTime > 0 && LastDigPosition is not null) { handler.SendPlayerDigging(1, LastDigPosition.Item1, LastDigPosition.Item2, sequenceId++); Log.Info(string.Format(Translations.cmd_dig_cancel, LastDigPosition.Item1)); @@ -2587,7 +2587,7 @@ namespace MinecraftClient { ChatBot[] selectedBots; - if (botList != null) + if (botList is not null) { selectedBots = botList.ToArray(); } @@ -2639,7 +2639,7 @@ namespace MinecraftClient /// public void OnGameJoined(bool isOnlineMode) { - if (protocolversion < Protocol18Handler.MC_1_19_3_Version || playerKeyPair == null || !isOnlineMode) + if (protocolversion < Protocol18Handler.MC_1_19_3_Version || playerKeyPair is null || !isOnlineMode) SetCanSendMessage(true); else SetCanSendMessage(false); @@ -2659,7 +2659,7 @@ namespace MinecraftClient (byte)Config.MCSettings.MainHand); if (protocolversion >= Protocol18Handler.MC_1_19_3_Version - && playerKeyPair != null && isOnlineMode) + && playerKeyPair is not null && isOnlineMode) handler.SendPlayerSession(playerKeyPair); if (inventoryHandlingRequested) @@ -2709,10 +2709,10 @@ namespace MinecraftClient physicsInput.Reset(); // Still heading toward a target (even if path queue is empty) - if (pathTarget != null && ReachedWaypoint(pathTarget.Value)) + if (pathTarget is not null && ReachedWaypoint(pathTarget.Value)) { // Arrived at current waypoint — advance to next, or finish - if (path != null && path.Count > 0) + if (path is not null && path.Count > 0) { pathTarget = path.Dequeue(); if (Config.Main.Advanced.MoveHeadWhileWalking) @@ -2726,14 +2726,14 @@ namespace MinecraftClient } // Need a first target from a fresh path - if (pathTarget == null && path != null && path.Count > 0) + if (pathTarget is null && path is not null && path.Count > 0) { pathTarget = path.Dequeue(); if (Config.Main.Advanced.MoveHeadWhileWalking) UpdateLocation(location, pathTarget.Value + new Location(0, 1, 0)); } - if (pathTarget != null) + if (pathTarget is not null) { SetInputToward(pathTarget.Value); } @@ -2787,7 +2787,7 @@ namespace MinecraftClient /// true if a movement is currently handled public bool ClientIsMoving() { - return terrainAndMovementsEnabled && locationReceived && ((steps != null && steps.Count > 0) || (path != null && path.Count > 0)); + return terrainAndMovementsEnabled && locationReceived && ((steps is not null && steps.Count > 0) || (path is not null && path.Count > 0)); } /// @@ -2796,7 +2796,7 @@ namespace MinecraftClient /// Current goal of movement. Location.Zero if not set. public Location GetCurrentMovementGoal() { - return (ClientIsMoving() || path == null) ? Location.Zero : path.Last(); + return (ClientIsMoving() || path is null) ? Location.Zero : path.Last(); } /// @@ -2959,7 +2959,7 @@ namespace MinecraftClient { if ((bool)message.isSignatureLegal!) { - if (Config.Signature.ShowModifiedChat && message.unsignedContent != null) + if (Config.Signature.ShowModifiedChat && message.unsignedContent is not null) { if (Config.Signature.MarkModifiedMsg) color = "§6▌§r"; // Background Yellow @@ -3181,7 +3181,7 @@ namespace MinecraftClient inventoryID = 0; // Prevent key not found for some bots relied to this event if (inventories.ContainsKey(0)) { - if (item != null) + if (item is not null) inventories[0].Items[-1] = item; else inventories[0].Items.Remove(-1); @@ -3191,7 +3191,7 @@ namespace MinecraftClient { if (inventories.ContainsKey(inventoryID)) { - if (item == null || item.IsEmpty) + if (item is null || item.IsEmpty) { if (inventories[inventoryID].Items.ContainsKey(slotID)) inventories[inventoryID].Items.Remove(slotID); @@ -3353,7 +3353,7 @@ namespace MinecraftClient Entity entity = entities[entityid]; if (entity.Equipment.ContainsKey(slot)) entity.Equipment.Remove(slot); - if (item != null) + if (item is not null) entity.Equipment[slot] = item; DispatchBotEvent(bot => bot.OnEntityEquipment(entities[entityid], slot, item)); } @@ -3729,24 +3729,24 @@ namespace MinecraftClient entity.Metadata = metadata; int itemEntityMetadataFieldIndex = protocolversion < Protocol18Handler.MC_1_17_Version ? 7 : 8; - if (entity.Type.ContainsItem() && metadata.TryGetValue(itemEntityMetadataFieldIndex, out object? itemObj) && itemObj != null && itemObj.GetType() == typeof(Item)) + if (entity.Type.ContainsItem() && metadata.TryGetValue(itemEntityMetadataFieldIndex, out object? itemObj) && itemObj is not null && itemObj.GetType() == typeof(Item)) { Item item = (Item)itemObj; - if (item == null) + if (item is null) entity.Item = new Item(ItemType.Air, 0, null); else entity.Item = item; } - if (metadata.TryGetValue(6, out object? poseObj) && poseObj != null && poseObj.GetType() == typeof(Int32)) + if (metadata.TryGetValue(6, out object? poseObj) && poseObj is not null && poseObj.GetType() == typeof(Int32)) { entity.Pose = (EntityPose)poseObj; } - if (metadata.TryGetValue(2, out object? nameObj) && nameObj != null && nameObj.GetType() == typeof(string)) + if (metadata.TryGetValue(2, out object? nameObj) && nameObj is not null && nameObj.GetType() == typeof(string)) { string name = nameObj.ToString() ?? string.Empty; entity.CustomNameJson = name; entity.CustomName = ChatParser.ParseText(name); } - if (metadata.TryGetValue(3, out object? nameVisableObj) && nameVisableObj != null && nameVisableObj.GetType() == typeof(bool)) + if (metadata.TryGetValue(3, out object? nameVisableObj) && nameVisableObj is not null && nameVisableObj.GetType() == typeof(bool)) { entity.IsCustomNameVisible = bool.Parse(nameVisableObj.ToString() ?? string.Empty); } From 902e944cbbb64612d4a4ae563b04ae6cc8f335b9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Mar 2026 00:23:31 +0000 Subject: [PATCH 04/13] Modernize null-check patterns in Protocol18.cs Replace '== null' with 'is null' and '!= null' with 'is not null' for all 25 null comparisons in the file, following modern C# pattern matching conventions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../Protocol/Handlers/Protocol18.cs | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index a11efc1e..73ce0f78 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -133,7 +133,7 @@ namespace MinecraftClient.Protocol.Handlers this.handler = handler; pForge = new Protocol18Forge(forgeInfo, protocolVersion, dataTypes, this, handler); pTerrain = new Protocol18Terrain(protocolVersion, dataTypes, handler); - packetPalette = new PacketTypeHandler(protocolVersion, forgeInfo != null).GetTypeHandler(); + packetPalette = new PacketTypeHandler(protocolVersion, forgeInfo is not null).GetTypeHandler(); log = handler.GetLogger(); randomGen = RandomNumberGenerator.Create(); lastSeenMessagesCollector = protocolVersion >= MC_1_19_3_Version ? new(20) : new(5); @@ -524,7 +524,7 @@ namespace MinecraftClient.Protocol.Handlers else if (isDimension) { dimensionIdMap!.Add(i, entryId); - if (nbtData != null && handler.GetTerrainEnabled()) + if (nbtData is not null && handler.GetTerrainEnabled()) World.StoreOneDimension(entryId, nbtData); } else if (isAttribute) @@ -984,7 +984,7 @@ namespace MinecraftClient.Protocol.Handlers else { var player = handler.GetPlayerInfo(senderUuid); - verifyResult = player != null && player.VerifyMessage(signedChat, timestamp, salt, + verifyResult = player is not null && player.VerifyMessage(signedChat, timestamp, salt, ref messageSignature); } @@ -1043,7 +1043,7 @@ namespace MinecraftClient.Protocol.Handlers var messageTypeEnum = ChatParser.ChatId2Type!.GetValueOrDefault(chatTypeId, ChatParser.MessageType.CHAT); - if (targetName != null && + if (targetName is not null && (messageTypeEnum == ChatParser.MessageType.TEAM_MSG_COMMAND_INCOMING || messageTypeEnum == ChatParser.MessageType.TEAM_MSG_COMMAND_OUTGOING)) senderTeamName = Json.ParseJson(targetName)!["with"]![0]! @@ -1052,7 +1052,7 @@ namespace MinecraftClient.Protocol.Handlers if (string.IsNullOrWhiteSpace(senderDisplayName)) { var player = handler.GetPlayerInfo(senderUuid); - if (player != null && (player.DisplayName != null || player is { Name: not null }) && + if (player is not null && (player.DisplayName is not null || player is { Name: not null }) && string.IsNullOrWhiteSpace(senderDisplayName)) { senderDisplayName = ChatParser.ParseText(player.DisplayName ?? player.Name); @@ -1071,7 +1071,7 @@ namespace MinecraftClient.Protocol.Handlers else { var player = handler.GetPlayerInfo(senderUuid); - if (player == null || !player.IsMessageChainLegal()) + if (player is null || !player.IsMessageChainLegal()) verifyResult = false; else { @@ -1158,7 +1158,7 @@ namespace MinecraftClient.Protocol.Handlers if (string.IsNullOrWhiteSpace(senderDisplayName)) { var player = handler.GetPlayerInfo(senderUuid); - if (player != null && (player.DisplayName != null || player.Name != null) && + if (player is not null && (player.DisplayName is not null || player.Name is not null) && string.IsNullOrWhiteSpace(senderDisplayName)) { senderDisplayName = player.DisplayName ?? player.Name; @@ -1170,7 +1170,7 @@ namespace MinecraftClient.Protocol.Handlers } bool verifyResult; - if (!isOnlineMode || messageSignature == null) + if (!isOnlineMode || messageSignature is null) verifyResult = false; else { @@ -1179,7 +1179,7 @@ namespace MinecraftClient.Protocol.Handlers else { var player = handler.GetPlayerInfo(senderUuid); - if (player == null || !player.IsMessageChainLegal()) + if (player is null || !player.IsMessageChainLegal()) verifyResult = false; else { @@ -1336,7 +1336,7 @@ namespace MinecraftClient.Protocol.Handlers { var player = handler.GetPlayerInfo(senderUuid); - if (player == null || !player.IsMessageChainLegal()) + if (player is null || !player.IsMessageChainLegal()) verifyResult = false; else { @@ -2017,7 +2017,7 @@ namespace MinecraftClient.Protocol.Handlers // Warning: It is legal to include unloaded chunks in the UnloadChunk packet. // Since chunks that have not been loaded are not recorded, this may result // in loading chunks that should be unloaded and inaccurate statistics. - if (handler.GetWorld()[chunkX, chunkZ] != null) + if (handler.GetWorld()[chunkX, chunkZ] is not null) Interlocked.Decrement(ref handler.GetWorld().chunkCnt); handler.GetWorld()[chunkX, chunkZ] = null; @@ -2061,7 +2061,7 @@ namespace MinecraftClient.Protocol.Handlers else { var playerGet = handler.GetPlayerInfo(playerUuid); - if (playerGet == null) + if (playerGet is null) { player = new(string.Empty, playerUuid); handler.OnPlayerJoin(player); @@ -2221,7 +2221,7 @@ namespace MinecraftClient.Protocol.Handlers if (dataTypes.ReadNextBool(packetData)) { var player = handler.GetPlayerInfo(uuid); - if (player != null) + if (player is not null) player.DisplayName = dataTypes.ReadNextString(packetData); else dataTypes.SkipNextString(packetData); @@ -2365,7 +2365,7 @@ namespace MinecraftClient.Protocol.Handlers for (var slotId = 0; slotId < elements; slotId++) { var item = dataTypes.ReadNextItemSlot(packetData, itemPalette); - if (item != null) + if (item is not null) inventorySlots[slotId] = item; } @@ -3109,7 +3109,7 @@ namespace MinecraftClient.Protocol.Handlers /// Net read thread ID public int GetNetMainThreadId() { - return netMain != null ? netMain.Item1.ManagedThreadId : -1; + return netMain is not null ? netMain.Item1.ManagedThreadId : -1; } /// @@ -3119,12 +3119,12 @@ namespace MinecraftClient.Protocol.Handlers { try { - if (netMain != null) + if (netMain is not null) { netMain.Item2.Cancel(); } - if (netReader != null) + if (netReader is not null) { netReader.Item2.Cancel(); socketWrapper.Disconnect(); @@ -3212,7 +3212,7 @@ namespace MinecraftClient.Protocol.Handlers // 1.19 - 1.19.2 if (protocolVersion is >= MC_1_19_Version and < MC_1_19_3_Version) { - if (playerKeyPair == null) + if (playerKeyPair is null) fullLoginPacket.AddRange(dataTypes.GetBool(false)); // Has Sig Data else { @@ -3371,7 +3371,7 @@ namespace MinecraftClient.Protocol.Handlers // 1.19 - 1.19.2 if (protocolVersion is >= MC_1_19_Version and < MC_1_19_3_Version) { - if (playerKeyPair == null) + if (playerKeyPair is null) { encryptionResponse.AddRange(dataTypes.GetBool(true)); // Has Verify Token encryptionResponse.AddRange(dataTypes.GetArray(RSAService.Encrypt(token, false))); // Verify Token @@ -3622,7 +3622,7 @@ namespace MinecraftClient.Protocol.Handlers } ConsoleIO.WriteLineFormatted("§8" + string.Format(Translations.mcc_server_protocol, version, - protocolVersion + (forgeInfo != null ? Translations.mcc_with_forge : ""))); + protocolVersion + (forgeInfo is not null ? Translations.mcc_with_forge : ""))); return true; } @@ -3719,7 +3719,7 @@ namespace MinecraftClient.Protocol.Handlers public void Acknowledge(ChatMessage message) { var entry = message.ToLastSeenMessageEntry(); - if (entry == null) return; + if (entry is null) return; if (protocolVersion >= MC_1_19_3_Version) { @@ -3768,7 +3768,7 @@ namespace MinecraftClient.Protocol.Handlers List>? needSigned = null; bool canSignCommand = protocolVersion >= MC_1_19_Version && isOnlineMode && - playerKeyPair != null && + playerKeyPair is not null && Config.Signature.LoginWithSecureProfile && Config.Signature.SignMessageInCommand; @@ -3798,7 +3798,7 @@ namespace MinecraftClient.Protocol.Handlers var timeNow = DateTimeOffset.UtcNow; fields.AddRange(DataTypes.GetLong(timeNow.ToUnixTimeMilliseconds())); - if (needSigned == null || needSigned.Count == 0) + if (needSigned is null || needSigned.Count == 0) { fields.AddRange(DataTypes.GetLong(0)); fields.AddRange(DataTypes.GetVarInt(0)); @@ -3902,7 +3902,7 @@ namespace MinecraftClient.Protocol.Handlers var timeNow = DateTimeOffset.UtcNow; fields.AddRange(DataTypes.GetLong(timeNow.ToUnixTimeMilliseconds())); - if (!isOnlineMode || playerKeyPair == null || !Config.Signature.LoginWithSecureProfile || + if (!isOnlineMode || playerKeyPair is null || !Config.Signature.LoginWithSecureProfile || !Config.Signature.SignChat) { fields.AddRange(DataTypes.GetLong(0)); // Salt: Long @@ -5105,7 +5105,7 @@ namespace MinecraftClient.Protocol.Handlers public bool SendPlayerSession(PlayerKeyPair? playerKeyPair) { - if (playerKeyPair == null || !isOnlineMode) + if (playerKeyPair is null || !isOnlineMode) return false; if (protocolVersion >= MC_1_19_3_Version) From c5df6a49c6422ee346291f76d40a2b5e8d11d044 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Mar 2026 00:27:07 +0000 Subject: [PATCH 05/13] Modernize null-check patterns: use 'is null' and 'is not null' Replace '== null' with 'is null' and '!= null' with 'is not null' across 19 core files following modern C# pattern matching conventions. Only literal null comparisons are changed. Assignments, value comparisons, and LINQ expressions are left untouched. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- MinecraftClient/ChatBots/AutoFishing.cs | 8 ++--- MinecraftClient/ChatBots/AutoRespond.cs | 10 +++--- MinecraftClient/ChatBots/DiscordBridge.cs | 8 ++--- MinecraftClient/ChatBots/FollowPlayer.cs | 18 +++++------ MinecraftClient/Commands/Entitycmd.cs | 14 ++++---- MinecraftClient/ConsoleIO.cs | 4 +-- MinecraftClient/Inventory/Item.cs | 32 +++++++++---------- MinecraftClient/Inventory/ItemMovingHelper.cs | 12 +++---- MinecraftClient/Mapping/Movement.cs | 10 +++--- MinecraftClient/Mapping/World.cs | 10 +++--- MinecraftClient/Program.cs | 20 ++++++------ .../Protocol/Handlers/DataTypes.cs | 16 +++++----- .../Protocol/Message/ChatParser.cs | 4 +-- MinecraftClient/Protocol/PlayerInfo.cs | 16 +++++----- MinecraftClient/Protocol/ProtocolHandler.cs | 10 +++--- MinecraftClient/Scripting/CSharpRunner.cs | 10 +++--- MinecraftClient/Scripting/ChatBot.cs | 6 ++-- MinecraftClient/TaskWithResult.cs | 2 +- MinecraftClient/UpgradeHelper.cs | 12 +++---- 19 files changed, 111 insertions(+), 111 deletions(-) diff --git a/MinecraftClient/ChatBots/AutoFishing.cs b/MinecraftClient/ChatBots/AutoFishing.cs index c72dcb40..9711b86c 100644 --- a/MinecraftClient/ChatBots/AutoFishing.cs +++ b/MinecraftClient/ChatBots/AutoFishing.cs @@ -474,7 +474,7 @@ namespace MinecraftClient.ChatBots public override void OnEntityDespawn(Entity entity) { - if (entity != null && fishingBobber != null && entity.Type == EntityType.FishingBobber && entity.ID == fishingBobber!.ID) + if (entity is not null && fishingBobber is not null && entity.Type == EntityType.FishingBobber && entity.ID == fishingBobber!.ID) { if (Config.Log_Fish_Bobber) LogToConsole(string.Format("FishingBobber despawn at {0}", entity.Location)); @@ -499,7 +499,7 @@ namespace MinecraftClient.ChatBots public override void OnEntityMove(Entity entity) { - if (isFishing && entity != null && fishingBobber!.ID == entity.ID && + if (isFishing && entity is not null && fishingBobber!.ID == entity.ID && (state == FishingState.WaitingFishToBite || state == FishingState.WaitingFishingBobber)) { Location Pos = entity.Location; @@ -603,12 +603,12 @@ namespace MinecraftClient.ChatBots LocationConfig curConfig = locationList[curLocationIdx]; - if (curConfig.facing != null) + if (curConfig.facing is not null) (nextYaw, nextPitch) = ((float)curConfig.facing.Value.yaw, (float)curConfig.facing.Value.pitch); else (nextYaw, nextPitch) = (GetYaw(), GetPitch()); - if (curConfig.XYZ != null) + if (curConfig.XYZ is not null) { Location current = GetCurrentLocation(); Location goal = new(curConfig.XYZ.Value.x, curConfig.XYZ.Value.y, curConfig.XYZ.Value.z); diff --git a/MinecraftClient/ChatBots/AutoRespond.cs b/MinecraftClient/ChatBots/AutoRespond.cs index 3b5a2991..a9bb43ea 100644 --- a/MinecraftClient/ChatBots/AutoRespond.cs +++ b/MinecraftClient/ChatBots/AutoRespond.cs @@ -132,7 +132,7 @@ namespace MinecraftClient.ChatBots if (String.IsNullOrEmpty(toSend)) return null; - if (regex != null) + if (regex is not null) { if (regex.IsMatch(message)) { @@ -261,15 +261,15 @@ namespace MinecraftClient.ChatBots /// Minimal cooldown between two matches private void CheckAddMatch(Regex? matchRegex, string? matchString, string? matchAction, string? matchActionPrivate, string? matchActionOther, bool ownersOnly, TimeSpan cooldown) { - if (matchRegex != null || matchString != null || matchAction != null || matchActionPrivate != null || matchActionOther != null || ownersOnly || cooldown != TimeSpan.Zero) + if (matchRegex is not null || matchString is not null || matchAction is not null || matchActionPrivate is not null || matchActionOther is not null || ownersOnly || cooldown != TimeSpan.Zero) { - RespondRule rule = matchRegex != null + RespondRule rule = matchRegex is not null ? new RespondRule(matchRegex, matchAction, matchActionPrivate, matchActionOther, ownersOnly, cooldown) : new RespondRule(matchString, matchAction, matchActionPrivate, matchActionOther, ownersOnly, cooldown); - if (matchAction != null || matchActionPrivate != null || matchActionOther != null) + if (matchAction is not null || matchActionPrivate is not null || matchActionOther is not null) { - if (matchRegex != null || matchString != null) + if (matchRegex is not null || matchString is not null) { respondRules!.Add(rule); LogDebugToConsole(string.Format(Translations.bot_autoRespond_loaded_match, rule)); diff --git a/MinecraftClient/ChatBots/DiscordBridge.cs b/MinecraftClient/ChatBots/DiscordBridge.cs index 9f5905de..0af5c08d 100644 --- a/MinecraftClient/ChatBots/DiscordBridge.cs +++ b/MinecraftClient/ChatBots/DiscordBridge.cs @@ -153,11 +153,11 @@ namespace MinecraftClient.ChatBots private void Disconnect() { - if (discordBotClient != null) + if (discordBotClient is not null) { try { - if (discordChannel != null) + if (discordChannel is not null) discordBotClient.SendMessageAsync(discordChannel, new DiscordEmbedBuilder { Description = Translations.bot_DiscordBridge_disconnected, @@ -284,7 +284,7 @@ namespace MinecraftClient.ChatBots filePath = filePath[(filePath.IndexOf(Path.DirectorySeparatorChar) + 1)..]; var messageBuilder = new DiscordMessageBuilder(); - if (text != null) + if (text is not null) messageBuilder.WithContent(text); messageBuilder.AddFiles(new Dictionary() { { filePath, fs } }); @@ -309,7 +309,7 @@ namespace MinecraftClient.ChatBots private bool CanSendMessages() { - return discordBotClient != null && discordChannel != null && bridgeDirection != BridgeDirection.Minecraft; + return discordBotClient is not null && discordChannel is not null && bridgeDirection != BridgeDirection.Minecraft; } async Task MainAsync() diff --git a/MinecraftClient/ChatBots/FollowPlayer.cs b/MinecraftClient/ChatBots/FollowPlayer.cs index 60a40029..09df5f0a 100644 --- a/MinecraftClient/ChatBots/FollowPlayer.cs +++ b/MinecraftClient/ChatBots/FollowPlayer.cs @@ -110,13 +110,13 @@ namespace MinecraftClient.ChatBots && !string.IsNullOrEmpty(entity.Name) && entity.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); - if (player == null) + if (player is null) return r.SetAndReturn(CmdResult.Status.Fail, Translations.cmd_follow_invalid_player); if (!CanMoveThere(player.Location)) return r.SetAndReturn(CmdResult.Status.Fail, Translations.cmd_follow_cant_reach_player); - if (_playerToFollow != null && _playerToFollow.Equals(name, StringComparison.OrdinalIgnoreCase)) + if (_playerToFollow is not null && _playerToFollow.Equals(name, StringComparison.OrdinalIgnoreCase)) return r.SetAndReturn(CmdResult.Status.Fail, string.Format(Translations.cmd_follow_already_following, _playerToFollow)); @@ -127,7 +127,7 @@ namespace MinecraftClient.ChatBots var result = string.Format( - _playerToFollow != null ? Translations.cmd_follow_switched : Translations.cmd_follow_started, + _playerToFollow is not null ? Translations.cmd_follow_switched : Translations.cmd_follow_started, player.Name!); _playerToFollow = name.ToLower(); @@ -152,7 +152,7 @@ namespace MinecraftClient.ChatBots private int OnCommandStop(CmdResult r) { - if (_playerToFollow == null) + if (_playerToFollow is null) return r.SetAndReturn(CmdResult.Status.Fail, Translations.cmd_follow_already_stopped); var movementLock = BotMovementLock.Instance; @@ -172,7 +172,7 @@ namespace MinecraftClient.ChatBots if (entity.Type != EntityType.Player) return; - if (_playerToFollow == null || string.IsNullOrEmpty(entity.Name)) + if (_playerToFollow is null || string.IsNullOrEmpty(entity.Name)) return; if (_playerToFollow != entity.Name.ToLower()) @@ -200,7 +200,7 @@ namespace MinecraftClient.ChatBots if (entity.Type != EntityType.Player) return; - if (_playerToFollow != null && !string.IsNullOrEmpty(entity.Name) && + if (_playerToFollow is not null && !string.IsNullOrEmpty(entity.Name) && _playerToFollow.Equals(entity.Name, StringComparison.OrdinalIgnoreCase)) { LogToConsole(string.Format(Translations.cmd_follow_player_came_to_the_range, _playerToFollow)); @@ -213,7 +213,7 @@ namespace MinecraftClient.ChatBots if (entity.Type != EntityType.Player) return; - if (_playerToFollow != null && !string.IsNullOrEmpty(entity.Name) && + if (_playerToFollow is not null && !string.IsNullOrEmpty(entity.Name) && _playerToFollow.Equals(entity.Name, StringComparison.OrdinalIgnoreCase)) { LogToConsole(string.Format(Translations.cmd_follow_player_left_the_range, _playerToFollow)); @@ -223,7 +223,7 @@ namespace MinecraftClient.ChatBots public override void OnPlayerLeave(Guid uuid, string? name) { - if (_playerToFollow != null && !string.IsNullOrEmpty(name) && + if (_playerToFollow is not null && !string.IsNullOrEmpty(name) && _playerToFollow.Equals(name, StringComparison.OrdinalIgnoreCase)) { LogToConsole(string.Format(Translations.cmd_follow_player_left, _playerToFollow)); @@ -235,7 +235,7 @@ namespace MinecraftClient.ChatBots private bool CanMoveThere(Location location) { var chunkColumn = GetWorld().GetChunkColumn(location); - return chunkColumn != null && chunkColumn.FullyLoaded != false; + return chunkColumn is not null && chunkColumn.FullyLoaded != false; } } } \ No newline at end of file diff --git a/MinecraftClient/Commands/Entitycmd.cs b/MinecraftClient/Commands/Entitycmd.cs index e9935a80..c48398bf 100644 --- a/MinecraftClient/Commands/Entitycmd.cs +++ b/MinecraftClient/Commands/Entitycmd.cs @@ -260,20 +260,20 @@ namespace MinecraftClient.Commands sb.Append($"\n [MCC] {Translations.cmd_entityCmd_item}: {item.GetTypeString()} x{item.Count} - {displayName}§8"); } - if (entity.Equipment.Count >= 1 && entity.Equipment != null) + if (entity.Equipment is not null && entity.Equipment.Count >= 1) { sb.Append($"\n [MCC] {Translations.cmd_entityCmd_equipment}:"); - if (entity.Equipment.ContainsKey(0) && entity.Equipment[0] != null) + if (entity.Equipment.ContainsKey(0) && entity.Equipment[0] is not null) sb.Append($"\n [MCC] {Translations.cmd_entityCmd_mainhand}: {entity.Equipment[0].GetTypeString()} x{entity.Equipment[0].Count}"); - if (entity.Equipment.ContainsKey(1) && entity.Equipment[1] != null) + if (entity.Equipment.ContainsKey(1) && entity.Equipment[1] is not null) sb.Append($"\n [MCC] {Translations.cmd_entityCmd_offhand}: {entity.Equipment[1].GetTypeString()} x{entity.Equipment[1].Count}"); - if (entity.Equipment.ContainsKey(5) && entity.Equipment[5] != null) + if (entity.Equipment.ContainsKey(5) && entity.Equipment[5] is not null) sb.Append($"\n [MCC] {Translations.cmd_entityCmd_helmet}: {entity.Equipment[5].GetTypeString()} x{entity.Equipment[5].Count}"); - if (entity.Equipment.ContainsKey(4) && entity.Equipment[4] != null) + if (entity.Equipment.ContainsKey(4) && entity.Equipment[4] is not null) sb.Append($"\n [MCC] {Translations.cmd_entityCmd_chestplate}: {entity.Equipment[4].GetTypeString()} x{entity.Equipment[4].Count}"); - if (entity.Equipment.ContainsKey(3) && entity.Equipment[3] != null) + if (entity.Equipment.ContainsKey(3) && entity.Equipment[3] is not null) sb.Append($"\n [MCC] {Translations.cmd_entityCmd_leggings}: {entity.Equipment[3].GetTypeString()} x{entity.Equipment[3].Count}"); - if (entity.Equipment.ContainsKey(2) && entity.Equipment[2] != null) + if (entity.Equipment.ContainsKey(2) && entity.Equipment[2] is not null) sb.Append($"\n [MCC] {Translations.cmd_entityCmd_boots}: {entity.Equipment[2].GetTypeString()} x{entity.Equipment[2].Count}"); } diff --git a/MinecraftClient/ConsoleIO.cs b/MinecraftClient/ConsoleIO.cs index c200a3d8..0c7987a5 100644 --- a/MinecraftClient/ConsoleIO.cs +++ b/MinecraftClient/ConsoleIO.cs @@ -225,7 +225,7 @@ namespace MinecraftClient sugList.Add(new("/")); var childs = McClient.dispatcher.GetRoot().Children; - if (childs != null) + if (childs is not null) foreach (var child in childs) sugList.Add(new(child.Name)); @@ -247,7 +247,7 @@ namespace MinecraftClient else { CommandDispatcher? dispatcher = McClient.dispatcher; - if (dispatcher == null) + if (dispatcher is null) return; ParseResults parse = dispatcher.Parse(command, CmdResult.Empty); diff --git a/MinecraftClient/Inventory/Item.cs b/MinecraftClient/Inventory/Item.cs index 247d45ea..e794e205 100644 --- a/MinecraftClient/Inventory/Item.cs +++ b/MinecraftClient/Inventory/Item.cs @@ -82,20 +82,20 @@ namespace MinecraftClient.Inventory { get { - if (Components != null) + if (Components is not null) { var customName = Components.OfType().FirstOrDefault(); - if (customName != null && !string.IsNullOrEmpty(customName.CustomName)) + if (customName is not null && !string.IsNullOrEmpty(customName.CustomName)) return customName.CustomName; var itemName = Components.OfType().FirstOrDefault(); - if (itemName != null && !string.IsNullOrEmpty(itemName.ItemName)) + if (itemName is not null && !string.IsNullOrEmpty(itemName.ItemName)) return itemName.ItemName; return null; } - if (NBT != null && NBT.ContainsKey("display")) + if (NBT is not null && NBT.ContainsKey("display")) { if (NBT["display"] is Dictionary displayProperties && displayProperties.ContainsKey("Name")) @@ -117,17 +117,17 @@ namespace MinecraftClient.Inventory { get { - if (Components != null) + if (Components is not null) { var loreComponent = Components.OfType().FirstOrDefault(); - if (loreComponent != null && loreComponent.Lines.Count > 0) + if (loreComponent is not null && loreComponent.Lines.Count > 0) return loreComponent.Lines.ToArray(); return null; } List lores = new(); - if (NBT != null && NBT.ContainsKey("display")) + if (NBT is not null && NBT.ContainsKey("display")) { if (NBT["display"] is Dictionary displayProperties && displayProperties.ContainsKey("Lore")) @@ -151,19 +151,19 @@ namespace MinecraftClient.Inventory { get { - if (Components != null) + if (Components is not null) { var damageComponent = Components.OfType().FirstOrDefault(); - if (damageComponent != null) + if (damageComponent is not null) return damageComponent.Damage; return 0; } - if (NBT != null && NBT.ContainsKey("Damage")) + if (NBT is not null && NBT.ContainsKey("Damage")) { object damage = NBT["Damage"]; - if (damage != null) + if (damage is not null) { return int.Parse(damage.ToString() ?? string.Empty, NumberStyles.Any, CultureInfo.CurrentCulture); @@ -183,11 +183,11 @@ namespace MinecraftClient.Inventory { get { - if (Components == null) + if (Components is null) return null; var enchComp = Components.OfType().FirstOrDefault(); - if (enchComp != null && enchComp.Enchantments.Count > 0) + if (enchComp is not null && enchComp.Enchantments.Count > 0) return enchComp.Enchantments; return null; @@ -220,7 +220,7 @@ namespace MinecraftClient.Inventory try { var enchList = EnchantmentList; - if (enchList != null) + if (enchList is not null) { foreach (var ench in enchList) { @@ -229,7 +229,7 @@ namespace MinecraftClient.Inventory sb.AppendFormat(" | {0} {1}", name, level); } } - else if (NBT != null && (NBT.TryGetValue("Enchantments", out object? enchantments) || + else if (NBT is not null && (NBT.TryGetValue("Enchantments", out object? enchantments) || NBT.TryGetValue("StoredEnchantments", out enchantments))) { foreach (Dictionary enchantment in (object[])enchantments) @@ -242,7 +242,7 @@ namespace MinecraftClient.Inventory } } - if (Lores != null && Lores.Length > 0) + if (Lores is not null && Lores.Length > 0) { foreach (var lore in Lores) sb.AppendFormat(" | {0}", lore); diff --git a/MinecraftClient/Inventory/ItemMovingHelper.cs b/MinecraftClient/Inventory/ItemMovingHelper.cs index da9a0097..48623ee0 100644 --- a/MinecraftClient/Inventory/ItemMovingHelper.cs +++ b/MinecraftClient/Inventory/ItemMovingHelper.cs @@ -38,9 +38,9 @@ namespace MinecraftClient.Inventory // Condition: source has item and dest has no item if (ValidateSlots(source, dest, destContainer) && HasItem(source) && - ((destContainer != null && !HasItem(dest, destContainer)) || (destContainer == null && !HasItem(dest)))) + ((destContainer is not null && !HasItem(dest, destContainer)) || (destContainer is null && !HasItem(dest)))) return mc.DoWindowAction(c.ID, source, WindowActionType.LeftClick) - && mc.DoWindowAction(destContainer == null ? c.ID : destContainer.ID, dest, WindowActionType.LeftClick); + && mc.DoWindowAction(destContainer is null ? c.ID : destContainer.ID, dest, WindowActionType.LeftClick); else return false; } @@ -56,9 +56,9 @@ namespace MinecraftClient.Inventory // Condition: Both slot1 and slot2 has item if (ValidateSlots(slot1, slot2, destContainer) && HasItem(slot1) && - (destContainer != null && HasItem(slot2, destContainer) || (destContainer == null && HasItem(slot2)))) + (destContainer is not null && HasItem(slot2, destContainer) || (destContainer is null && HasItem(slot2)))) return mc.DoWindowAction(c.ID, slot1, WindowActionType.LeftClick) - && mc.DoWindowAction(destContainer == null ? c.ID : destContainer.ID, slot2, WindowActionType.LeftClick) + && mc.DoWindowAction(destContainer is null ? c.ID : destContainer.ID, slot2, WindowActionType.LeftClick) && mc.DoWindowAction(c.ID, slot1, WindowActionType.LeftClick); else return false; } @@ -126,7 +126,7 @@ namespace MinecraftClient.Inventory /// The compare result private bool ValidateSlots(int s1, int s2, Container? s2Container = null) { - if (s2Container == null) + if (s2Container is null) return (s1 != s2 && s1 < c.Type.SlotCount() && s2 < c.Type.SlotCount()); else return (s1 < c.Type.SlotCount() && s2 < s2Container.Type.SlotCount()); @@ -153,7 +153,7 @@ namespace MinecraftClient.Inventory /// True if they are equal private bool ItemTypeEqual(int slot1, int slot2, Container? s2Container = null) { - if (s2Container == null) + if (s2Container is null) { if (HasItem(slot1) && HasItem(slot2)) return c.Items[slot1].Type == c.Items[slot2].Type; diff --git a/MinecraftClient/Mapping/Movement.cs b/MinecraftClient/Mapping/Movement.cs index caed454d..64a470da 100644 --- a/MinecraftClient/Mapping/Movement.cs +++ b/MinecraftClient/Mapping/Movement.cs @@ -247,7 +247,7 @@ namespace MinecraftClient.Mapping } // Goal could not be reached. Set the path to the closest location if close enough - if (current != null && openSet.MinHScoreNode != null && + if (current is not null && openSet.MinHScoreNode is not null && (maxOffset == int.MaxValue || openSet.MinHScoreNode.HScore <= maxOffset)) return ReconstructPath(cameFrom, openSet.MinHScoreNode.Location, start, goal); @@ -362,7 +362,7 @@ namespace MinecraftClient.Mapping locationList.Add(loc); // Save node with the smallest H-Score => Distance to goal - if (MinHScoreNode == null || newNode.HScore < MinHScoreNode.HScore) + if (MinHScoreNode is null || newNode.HScore < MinHScoreNode.HScore) MinHScoreNode = newNode; if (i == 0) @@ -491,7 +491,7 @@ namespace MinecraftClient.Mapping public static bool IsOnGround(World world, Location location) { ChunkColumn? chunkColumn = world.GetChunkColumn(location); - if (chunkColumn == null || chunkColumn.FullyLoaded == false) + if (chunkColumn is null || chunkColumn.FullyLoaded == false) return true; // avoid moving downward in a not loaded chunk Location down = Move(location, Direction.Down); @@ -721,11 +721,11 @@ namespace MinecraftClient.Mapping public static bool CheckChunkLoading(World world, Location start, Location dest) { var chunkColumn = world.GetChunkColumn(dest); - if (chunkColumn == null || chunkColumn.FullyLoaded == false) + if (chunkColumn is null || chunkColumn.FullyLoaded == false) return false; chunkColumn = world.GetChunkColumn(start); - if (chunkColumn == null || chunkColumn.FullyLoaded == false) + if (chunkColumn is null || chunkColumn.FullyLoaded == false) return false; return true; diff --git a/MinecraftClient/Mapping/World.cs b/MinecraftClient/Mapping/World.cs index 0a83ff97..6c31c8de 100644 --- a/MinecraftClient/Mapping/World.cs +++ b/MinecraftClient/Mapping/World.cs @@ -55,7 +55,7 @@ namespace MinecraftClient.Mapping set { Tuple chunkCoord = new(chunkX, chunkZ); - if (value == null) + if (value is null) chunks.TryRemove(chunkCoord, out _); else chunks.AddOrUpdate(chunkCoord, value, (_, _) => value); @@ -385,10 +385,10 @@ namespace MinecraftClient.Mapping public Block GetBlock(Location location) { ChunkColumn? column = GetChunkColumn(location); - if (column != null) + if (column is not null) { Chunk? chunk = column.GetChunk(location); - if (chunk != null) + if (chunk is not null) return chunk.GetBlock(location); } return Block.Air; @@ -437,10 +437,10 @@ namespace MinecraftClient.Mapping public void SetBlock(Location location, Block block) { ChunkColumn? column = this[location.ChunkX, location.ChunkZ]; - if (column != null && column.ColumnSize >= location.ChunkY) + if (column is not null && column.ColumnSize >= location.ChunkY) { Chunk? chunk = column.GetChunk(location); - if (chunk == null) + if (chunk is null) column[location.ChunkY] = chunk = new Chunk(); chunk[location.ChunkBlockX, location.ChunkBlockY, location.ChunkBlockZ] = block; } diff --git a/MinecraftClient/Program.cs b/MinecraftClient/Program.cs index e5ced59f..e49e4ea4 100644 --- a/MinecraftClient/Program.cs +++ b/MinecraftClient/Program.cs @@ -120,7 +120,7 @@ namespace MinecraftClient ConsoleIO.WriteLine($"Minecraft Console Client v{Version} - for MC {MCLowestVersion} to {MCHighestVersion} - Github.com/MCCTeam"); //Build information to facilitate processing of bug reports - if (BuildInfo != null) + if (BuildInfo is not null) ConsoleIO.WriteLineFormatted("§8" + BuildInfo); //Debug input ? @@ -616,11 +616,11 @@ namespace MinecraftClient ConsoleIO.WriteLineFormatted("§8" + string.Format(Translations.mcc_profile_key_valid, session.PlayerName)); } - if (playerKeyPair == null || playerKeyPair.NeedRefresh()) + if (playerKeyPair is null || playerKeyPair.NeedRefresh()) { ConsoleIO.WriteLineFormatted(Translations.mcc_fetching_key, acceptnewlines: true); playerKeyPair = KeyUtils.GetNewProfileKeys(session.ID, Config.Main.General.AccountType == LoginType.yggdrasil); - if (Config.Main.Advanced.ProfileKeyCache != CacheType.none && playerKeyPair != null) + if (Config.Main.Advanced.ProfileKeyCache != CacheType.none && playerKeyPair is not null) { KeysCache.Store(loginLower, playerKeyPair); } @@ -628,7 +628,7 @@ namespace MinecraftClient } //Force-enable Forge support? - if (!isRealms && (Config.Main.Advanced.EnableForge == ForgeConfigType.force) && forgeInfo == null) + if (!isRealms && (Config.Main.Advanced.EnableForge == ForgeConfigType.force) && forgeInfo is null) { if (ProtocolHandler.ProtocolMayForceForge(protocolversion)) { @@ -724,8 +724,8 @@ namespace MinecraftClient ConsoleInteractive.ConsoleReader.StopReadThread(); new Thread(new ThreadStart(delegate { - if (client != null) { client.Disconnect(); ConsoleIO.Reset(); } - if (offlinePrompt != null) { offlinePrompt.Item2.Cancel(); offlinePrompt.Item1.Join(); offlinePrompt = null; ConsoleIO.Reset(); } + if (client is not null) { client.Disconnect(); ConsoleIO.Reset(); } + if (offlinePrompt is not null) { offlinePrompt.Item2.Cancel(); offlinePrompt.Item1.Join(); offlinePrompt = null; ConsoleIO.Reset(); } if (delaySeconds > 0) { ConsoleIO.WriteLine(string.Format(Translations.mcc_restart_delay, delaySeconds)); @@ -743,8 +743,8 @@ namespace MinecraftClient ConsoleInteractive.ConsoleSuggestion.ClearSuggestions(); ConsoleIO.WriteLineFormatted("§a" + string.Format(Translations.config_saving, settingsIniPath)); - if (client != null) { client.Disconnect(); ConsoleIO.Reset(); } - if (offlinePrompt != null) { offlinePrompt.Item2.Cancel(); offlinePrompt.Item1.Join(); offlinePrompt = null; ConsoleIO.Reset(); } + if (client is not null) { client.Disconnect(); ConsoleIO.Reset(); } + if (offlinePrompt is not null) { offlinePrompt.Item2.Cancel(); offlinePrompt.Item1.Join(); offlinePrompt = null; ConsoleIO.Reset(); } if (Config.Main.Advanced.PlayerHeadAsIcon) { ConsoleIcon.RevertToMCCIcon(); } Environment.Exit(exitcode); } @@ -801,7 +801,7 @@ namespace MinecraftClient return; //AutoRelog is triggering a restart of the client, don't turn on the offline prompt } - if (offlinePrompt == null) + if (offlinePrompt is null) { ConsoleInteractive.ConsoleReader.StopReadThread(); @@ -907,7 +907,7 @@ namespace MinecraftClient /// public static Type[] GetTypesInNamespace(string nameSpace, Assembly? assembly = null) { - if (assembly == null) { assembly = Assembly.GetExecutingAssembly(); } + if (assembly is null) { assembly = Assembly.GetExecutingAssembly(); } return assembly.GetTypes().Where(t => string.Equals(t.Namespace, nameSpace, StringComparison.Ordinal)).ToArray(); } diff --git a/MinecraftClient/Protocol/Handlers/DataTypes.cs b/MinecraftClient/Protocol/Handlers/DataTypes.cs index 509c52ef..e6ad0368 100644 --- a/MinecraftClient/Protocol/Handlers/DataTypes.cs +++ b/MinecraftClient/Protocol/Handlers/DataTypes.cs @@ -1350,7 +1350,7 @@ namespace MinecraftClient.Protocol.Handlers /// Byte array for this NBT tag private byte[] GetNbt(Dictionary? nbt, bool root) { - if (nbt == null || nbt.Count == 0) + if (nbt is null || nbt.Count == 0) return new byte[] { 0 }; // TAG_End List bytes = new(); @@ -1699,7 +1699,7 @@ namespace MinecraftClient.Protocol.Handlers { List slotData = new(); - if (item == null || item.IsEmpty) + if (item is null || item.IsEmpty) { slotData.AddRange(GetBool(false)); } @@ -1727,7 +1727,7 @@ namespace MinecraftClient.Protocol.Handlers if (protocolversion >= Protocol18Handler.MC_1_20_6_Version) { - if (item == null || item.IsEmpty) + if (item is null || item.IsEmpty) { slotData.AddRange(GetVarInt(0)); } @@ -1736,7 +1736,7 @@ namespace MinecraftClient.Protocol.Handlers slotData.AddRange(GetVarInt(item.Count)); slotData.AddRange(GetVarInt(itemPalette.ToId(item.Type))); - if (item.Components != null && item.Components.Count > 0) + if (item.Components is not null && item.Components.Count > 0) { slotData.AddRange(GetVarInt(item.Components.Count)); slotData.AddRange(GetVarInt(0)); // components to remove @@ -1756,7 +1756,7 @@ namespace MinecraftClient.Protocol.Handlers } else if (protocolversion > Protocol18Handler.MC_1_13_Version) { - if (item == null || item.IsEmpty) + if (item is null || item.IsEmpty) slotData.AddRange(GetBool(false)); else { @@ -1768,7 +1768,7 @@ namespace MinecraftClient.Protocol.Handlers } else { - if (item == null || item.IsEmpty) + if (item is null || item.IsEmpty) slotData.AddRange(GetShort(-1)); else { @@ -1849,7 +1849,7 @@ namespace MinecraftClient.Protocol.Handlers /// String representation public string ByteArrayToString(byte[]? bytes) { - if (bytes == null) + if (bytes is null) return "null"; else return BitConverter.ToString(bytes).Replace("-", " "); @@ -1890,7 +1890,7 @@ namespace MinecraftClient.Protocol.Handlers { List fields = new(); fields.AddRange(GetLastSeenMessageList(ack.lastSeen, isOnlineMode)); - if (!isOnlineMode || ack.lastReceived == null) + if (!isOnlineMode || ack.lastReceived is null) fields.AddRange(GetBool(false)); // Has last received message else { diff --git a/MinecraftClient/Protocol/Message/ChatParser.cs b/MinecraftClient/Protocol/Message/ChatParser.cs index c0c1e03d..57b38572 100644 --- a/MinecraftClient/Protocol/Message/ChatParser.cs +++ b/MinecraftClient/Protocol/Message/ChatParser.cs @@ -123,7 +123,7 @@ namespace MinecraftClient.Protocol.Message { string sender = message.isSenderJson ? ParseText(message.displayName!) : message.displayName!; string content; - if (Config.Signature.ShowModifiedChat && message.unsignedContent != null) + if (Config.Signature.ShowModifiedChat && message.unsignedContent is not null) { content = ParseText(message.unsignedContent!); if (string.IsNullOrEmpty(content)) @@ -315,7 +315,7 @@ namespace MinecraftClient.Protocol.Message Task?> fetckFileTask = httpClient.GetFromJsonAsync>(translation_file_location); fetckFileTask.Wait(); - if (fetckFileTask.Result != null && fetckFileTask.Result.Count > 0) + if (fetckFileTask.Result is not null && fetckFileTask.Result.Count > 0) { TranslationRules = fetckFileTask.Result; TranslationRules["Version"] = TranslationsFile_Version; diff --git a/MinecraftClient/Protocol/PlayerInfo.cs b/MinecraftClient/Protocol/PlayerInfo.cs index 74134068..66e2441c 100644 --- a/MinecraftClient/Protocol/PlayerInfo.cs +++ b/MinecraftClient/Protocol/PlayerInfo.cs @@ -44,13 +44,13 @@ namespace MinecraftClient.Protocol { Uuid = uuid; Name = name; - if (property != null) + if (property is not null) Property = property; Gamemode = gamemode; Ping = ping; DisplayName = displayName; lastMessageVerified = false; - if (timeStamp != null && publicKey != null && signature != null) + if (timeStamp is not null && publicKey is not null && signature is not null) { DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTimeMilliseconds((long)timeStamp); KeyExpiresAt = dateTimeOffset.UtcDateTime; @@ -119,7 +119,7 @@ namespace MinecraftClient.Protocol /// Is this message vaild public bool VerifyMessage(string message, long timestamp, long salt, ref byte[] signature) { - if (PublicKey == null || IsKeyExpired()) + if (PublicKey is null || IsKeyExpired()) return false; else { @@ -146,12 +146,12 @@ namespace MinecraftClient.Protocol { if (lastMessageVerified == false) return false; - if (PublicKey == null || IsKeyExpired() || (this.precedingSignature != null && precedingSignature == null)) + if (PublicKey is null || IsKeyExpired() || (this.precedingSignature is not null && precedingSignature is null)) { lastMessageVerified = false; return false; } - if (this.precedingSignature != null && !this.precedingSignature.SequenceEqual(precedingSignature!)) + if (this.precedingSignature is not null && !this.precedingSignature.SequenceEqual(precedingSignature!)) { lastMessageVerified = false; return false; @@ -181,12 +181,12 @@ namespace MinecraftClient.Protocol { if (lastMessageVerified == false) return false; - if (PublicKey == null || IsKeyExpired() || (this.precedingSignature != null && precedingSignature == null)) + if (PublicKey is null || IsKeyExpired() || (this.precedingSignature is not null && precedingSignature is null)) { lastMessageVerified = false; return false; } - if (this.precedingSignature != null && !this.precedingSignature.SequenceEqual(precedingSignature!)) + if (this.precedingSignature is not null && !this.precedingSignature.SequenceEqual(precedingSignature!)) { lastMessageVerified = false; return false; @@ -212,7 +212,7 @@ namespace MinecraftClient.Protocol /// Is this message chain vaild public bool VerifyMessage(string message, Guid playerUuid, Guid chatUuid, int messageIndex, long timestamp, long salt, ref byte[] signature, Tuple[] previousMessageSignatures) { - if (PublicKey == null || IsKeyExpired()) + if (PublicKey is null || IsKeyExpired()) return false; // net.minecraft.server.network.ServerPlayNetworkHandler#validateMessage diff --git a/MinecraftClient/Protocol/ProtocolHandler.cs b/MinecraftClient/Protocol/ProtocolHandler.cs index 7d395876..7e4020af 100644 --- a/MinecraftClient/Protocol/ProtocolHandler.cs +++ b/MinecraftClient/Protocol/ProtocolHandler.cs @@ -925,7 +925,7 @@ namespace MinecraftClient.Protocol int code = DoHTTPSPost("authserver.mojang.com", 443, "/refresh", json_request, ref result); if (code == 200) { - if (result == null) + if (result is null) { return LoginResult.NullError; } @@ -976,7 +976,7 @@ namespace MinecraftClient.Protocol Config.Main.General.AuthServer.UseHttps, ref result); if (code == 200) { - if (result == null) + if (result is null) { return LoginResult.NullError; } @@ -1251,7 +1251,7 @@ namespace MinecraftClient.Protocol contentType = header.Value; } - if (body != null) + if (body is not null) request.Content = new StringContent(body, Encoding.UTF8, contentType); if (Settings.Config.Logging.DebugMessages) @@ -1279,9 +1279,9 @@ namespace MinecraftClient.Protocol } } }, TimeSpan.FromSeconds(30)); - if (postResult != null) + if (postResult is not null) result = postResult; - if (exception != null) + if (exception is not null) throw exception; return statusCode; } diff --git a/MinecraftClient/Scripting/CSharpRunner.cs b/MinecraftClient/Scripting/CSharpRunner.cs index 7f6c6e77..90cb3fcf 100644 --- a/MinecraftClient/Scripting/CSharpRunner.cs +++ b/MinecraftClient/Scripting/CSharpRunner.cs @@ -109,7 +109,7 @@ namespace MinecraftClient.Scripting var result = compiler.Compile(code, Guid.NewGuid().ToString(), dlls); //Process compile warnings and errors - if (result.Failures != null) + if (result.Failures is not null) { ConsoleIO.WriteLogLine("[Script] Compilation failed with error(s):"); @@ -309,7 +309,7 @@ namespace MinecraftClient.Scripting /// Value of the variable or null if no variable public object? GetVar(string varName) { - if (localVars != null && localVars.ContainsKey(varName)) + if (localVars is not null && localVars.ContainsKey(varName)) return localVars[varName]; else return Config.AppVar.GetVar(varName); @@ -322,7 +322,7 @@ namespace MinecraftClient.Scripting /// Value of the variable public bool SetVar(string varName, object varValue) { - if (localVars != null && localVars.ContainsKey(varName)) + if (localVars is not null && localVars.ContainsKey(varName)) localVars.Remove(varName); return Config.AppVar.SetVar(varName, varValue); } @@ -339,12 +339,12 @@ namespace MinecraftClient.Scripting object? value = GetVar(varName); if (value is T Tval) return Tval; - if (value != null) + if (value is not null) { try { TypeConverter converter = TypeDescriptor.GetConverter(typeof(T)); - if (converter != null) + if (converter is not null) return (T?)converter.ConvertFromString(value.ToString() ?? string.Empty); } catch (NotSupportedException) { /* Was worth trying */ } diff --git a/MinecraftClient/Scripting/ChatBot.cs b/MinecraftClient/Scripting/ChatBot.cs index be825fe8..1c84b7e7 100644 --- a/MinecraftClient/Scripting/ChatBot.cs +++ b/MinecraftClient/Scripting/ChatBot.cs @@ -49,9 +49,9 @@ namespace MinecraftClient.Scripting { get { - if (master != null) + if (master is not null) return master.Handler; - if (_handler != null) + if (_handler is not null) return _handler; throw new InvalidOperationException(Translations.exception_chatbot_init); } @@ -862,7 +862,7 @@ namespace MinecraftClient.Scripting protected void LogToConsole(object? text) { string botName = Translations.ResourceManager.GetString("botname." + GetType().Name) ?? GetType().Name; - if (_handler == null || master == null) + if (_handler is null || master is null) ConsoleIO.WriteLogLine(string.Format("[{0}] {1}", botName, text)); else Handler.Log.Info(string.Format("[{0}] {1}", botName, text)); diff --git a/MinecraftClient/TaskWithResult.cs b/MinecraftClient/TaskWithResult.cs index 4cf28659..53aec3aa 100644 --- a/MinecraftClient/TaskWithResult.cs +++ b/MinecraftClient/TaskWithResult.cs @@ -113,7 +113,7 @@ namespace MinecraftClient } // Receive exception from task - if (exception != null) + if (exception is not null) throw exception; return result!; diff --git a/MinecraftClient/UpgradeHelper.cs b/MinecraftClient/UpgradeHelper.cs index 8c53da16..cd08a1a7 100644 --- a/MinecraftClient/UpgradeHelper.cs +++ b/MinecraftClient/UpgradeHelper.cs @@ -211,7 +211,7 @@ namespace MinecraftClient if (!cancellationToken.IsCancellationRequested) { HttpResponseMessage res = httpWebRequest.Result; - if (res.Headers.Location != null) + if (res.Headers.Location is not null) { Match match = Regex.Match(res.Headers.Location.ToString(), GithubReleaseUrl + @"/tag/(\d{4})(\d{2})(\d{2})-(\d+)"); if (match.Success && match.Groups.Count == 5) @@ -284,7 +284,7 @@ namespace MinecraftClient private static bool CompareVersionInfo(string? current, string? latest) { - if (current == null || latest == null) + if (current is null || latest is null) return false; Regex reg = new(@"\w+\sbuild\s(\d+),\sbuilt\son\s(\d{4})[-\/\.\s]?(\d{2})[-\/\.\s]?(\d{2}).*"); Regex reg2 = new(@"\w+\sbuild\s(\d+),\sbuilt\son\s\w+\s(\d{2})[-\/\.\s]?(\d{2})[-\/\.\s]?(\d{4}).*"); @@ -297,13 +297,13 @@ namespace MinecraftClient try { curTime = new(int.Parse(curMatch.Groups[2].Value), int.Parse(curMatch.Groups[3].Value), int.Parse(curMatch.Groups[4].Value)); } catch { curTime = null; } } - if (curTime == null) + if (curTime is null) { curMatch = reg2.Match(current); try { curTime = new(int.Parse(curMatch.Groups[4].Value), int.Parse(curMatch.Groups[3].Value), int.Parse(curMatch.Groups[2].Value)); } catch { curTime = null; } } - if (curTime == null) + if (curTime is null) return false; Match latestMatch = reg.Match(latest); @@ -312,13 +312,13 @@ namespace MinecraftClient try { latestTime = new(int.Parse(latestMatch.Groups[2].Value), int.Parse(latestMatch.Groups[3].Value), int.Parse(latestMatch.Groups[4].Value)); } catch { latestTime = null; } } - if (latestTime == null) + if (latestTime is null) { latestMatch = reg2.Match(latest); try { latestTime = new(int.Parse(latestMatch.Groups[4].Value), int.Parse(latestMatch.Groups[3].Value), int.Parse(latestMatch.Groups[2].Value)); } catch { latestTime = null; } } - if (latestTime == null) + if (latestTime is null) return false; int curBuildId, latestBuildId; From 2ae31e269fe688285ae7873349852e8036d514ca Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Mar 2026 00:34:00 +0000 Subject: [PATCH 06/13] Convert switch statements to expressions and adopt collection expressions - DirectionExtensions.cs: Convert GetOpposite() to switch expression, use file-scoped namespace, use collection expression for HORIZONTAL - McClient.cs: Convert InteractType switch to expression, use collection expressions for array literals - Protocol18.cs: Replace Array.Empty() with [], use collection expressions for byte/int array literals - DataTypes.cs: Use collection expression for TAG_End byte array - ChatBot.cs: Use collection expressions for string/char arrays - Location.cs: Use collection expressions and modernize null check Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com> Agent-Logs-Url: https://github.com/milutinke/Minecraft-Console-Client/sessions/4e9bd25b-22c5-47c2-98f9-6025d927b1d6 --- .../Mapping/DirectionExtensions.cs | 85 +++++++------------ MinecraftClient/Mapping/Location.cs | 8 +- MinecraftClient/McClient.cs | 33 +++---- .../Protocol/Handlers/DataTypes.cs | 2 +- .../Protocol/Handlers/Protocol18.cs | 22 ++--- MinecraftClient/Scripting/ChatBot.cs | 8 +- 6 files changed, 66 insertions(+), 92 deletions(-) diff --git a/MinecraftClient/Mapping/DirectionExtensions.cs b/MinecraftClient/Mapping/DirectionExtensions.cs index 9a42368c..4f965cde 100644 --- a/MinecraftClient/Mapping/DirectionExtensions.cs +++ b/MinecraftClient/Mapping/DirectionExtensions.cs @@ -1,63 +1,42 @@ using System; -namespace MinecraftClient.Mapping +namespace MinecraftClient.Mapping; + +public static class DirectionExtensions { - public static class DirectionExtensions + public static Direction GetOpposite(this Direction direction) => direction switch { - public static Direction GetOpposite(this Direction direction) - { - switch (direction) - { - case Direction.SouthEast: - return Direction.NorthEast; - case Direction.SouthWest: - return Direction.NorthWest; + Direction.SouthEast => Direction.NorthEast, + Direction.SouthWest => Direction.NorthWest, + Direction.NorthEast => Direction.SouthEast, + Direction.NorthWest => Direction.SouthWest, + Direction.West => Direction.East, + Direction.East => Direction.West, + Direction.North => Direction.South, + Direction.South => Direction.North, + Direction.Down => Direction.Up, + Direction.Up => Direction.Down, + _ => Direction.Up, + }; - case Direction.NorthEast: - return Direction.SouthEast; - case Direction.NorthWest: - return Direction.SouthWest; + public static Direction[] HORIZONTAL = + [ + Direction.South, + Direction.West, + Direction.North, + Direction.East, + ]; - case Direction.West: - return Direction.East; - case Direction.East: - return Direction.West; + public static Direction FromRotation(double rotation) + { + double floor = Math.Floor((rotation / 90.0) + 0.5); + int value = (int)floor & 3; - case Direction.North: - return Direction.South; - case Direction.South: - return Direction.North; + return FromHorizontal(value); + } - case Direction.Down: - return Direction.Up; - case Direction.Up: - return Direction.Down; - default: - return Direction.Up; - - } - } - - - public static Direction[] HORIZONTAL = - { - Direction.South, - Direction.West, - Direction.North, - Direction.East - }; - - public static Direction FromRotation(double rotation) - { - double floor = Math.Floor((rotation / 90.0) + 0.5); - int value = (int)floor & 3; - - return FromHorizontal(value); - } - - public static Direction FromHorizontal(int value) - { - return HORIZONTAL[Math.Abs(value % HORIZONTAL.Length)]; - } + public static Direction FromHorizontal(int value) + { + return HORIZONTAL[Math.Abs(value % HORIZONTAL.Length)]; } } diff --git a/MinecraftClient/Mapping/Location.cs b/MinecraftClient/Mapping/Location.cs index 4a6a7320..a0bbbc35 100644 --- a/MinecraftClient/Mapping/Location.cs +++ b/MinecraftClient/Mapping/Location.cs @@ -116,7 +116,7 @@ namespace MinecraftClient.Mapping public static bool TryParse(string x, string y, string z, out Location? location) { - string[] coord_str = new string[] { x.Trim(), y.Trim(), z.Trim() }; + string[] coord_str = [x.Trim(), y.Trim(), z.Trim()]; double[] coord_res = new double[3]; for (int i = 0; i < 3; ++i) @@ -144,7 +144,7 @@ namespace MinecraftClient.Mapping public static Location Parse(Location current, string x, string y, string z) { Location.TryParse(current, x, y, z, out Location? res); - if (res == null) + if (res is null) throw new FormatException(); else return (Location)res; @@ -152,9 +152,9 @@ namespace MinecraftClient.Mapping public static bool TryParse(Location current, string x, string y, string z, out Location? location) { - string[] coord_str = new string[] { x.Trim(), y.Trim(), z.Trim() }; + string[] coord_str = [x.Trim(), y.Trim(), z.Trim()]; double[] coord_res = new double[3]; - double[] coord_cur = new double[] { current.X, current.Y, current.Z }; + double[] coord_cur = [current.X, current.Y, current.Z]; for (int i = 0; i < 3; ++i) { diff --git a/MinecraftClient/McClient.cs b/MinecraftClient/McClient.cs index e9ea713c..96762e74 100644 --- a/MinecraftClient/McClient.cs +++ b/MinecraftClient/McClient.cs @@ -1010,9 +1010,9 @@ namespace MinecraftClient b.SetHandler(this); bots.Add(b); if (init) - DispatchBotEvent(bot => bot.Initialize(), new ChatBot[] { b }); + DispatchBotEvent(bot => bot.Initialize(), [b]); if (handler is not null) - DispatchBotEvent(bot => bot.AfterGameJoined(), new ChatBot[] { b }); + DispatchBotEvent(bot => bot.AfterGameJoined(), [b]); } /// @@ -1205,7 +1205,7 @@ namespace MinecraftClient /// public static char[] GetDisallowedChatCharacters() { - return new char[] { (char)167, (char)127 }; // Minecraft color code and ASCII code DEL + return [(char)167, (char)127]; // Minecraft color code and ASCII code DEL } /// @@ -2381,23 +2381,18 @@ namespace MinecraftClient if (entities.ContainsKey(entityID)) { - switch (type) + return type switch { - case InteractType.Interact: - return handler.SendInteractEntity(entityID, (int)type, (int)hand); - - case InteractType.InteractAt: - return handler.SendInteractEntity( - EntityID: entityID, - type: (int)type, - X: (float)entities[entityID].Location.X, - Y: (float)entities[entityID].Location.Y, - Z: (float)entities[entityID].Location.Z, - hand: (int)hand); - - default: - return handler.SendInteractEntity(entityID, (int)type); - } + InteractType.Interact => handler.SendInteractEntity(entityID, (int)type, (int)hand), + InteractType.InteractAt => handler.SendInteractEntity( + EntityID: entityID, + type: (int)type, + X: (float)entities[entityID].Location.X, + Y: (float)entities[entityID].Location.Y, + Z: (float)entities[entityID].Location.Z, + hand: (int)hand), + _ => handler.SendInteractEntity(entityID, (int)type), + }; } return false; diff --git a/MinecraftClient/Protocol/Handlers/DataTypes.cs b/MinecraftClient/Protocol/Handlers/DataTypes.cs index e6ad0368..94b1f3ff 100644 --- a/MinecraftClient/Protocol/Handlers/DataTypes.cs +++ b/MinecraftClient/Protocol/Handlers/DataTypes.cs @@ -1351,7 +1351,7 @@ namespace MinecraftClient.Protocol.Handlers private byte[] GetNbt(Dictionary? nbt, bool root) { if (nbt is null || nbt.Count == 0) - return new byte[] { 0 }; // TAG_End + return [0]; // TAG_End List bytes = new(); diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index 73ce0f78..31ae3394 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -691,7 +691,7 @@ namespace MinecraftClient.Protocol.Handlers var responseHeader = protocolVersion < MC_1_10_Version // After 1.10, the MC does not include resource pack hash in responses ? dataTypes.ConcatBytes(DataTypes.GetVarInt(hash.Length), Encoding.UTF8.GetBytes(hash)) - : Array.Empty(); + : []; var basePacketData = protocolVersion >= MC_1_20_4_Version && uuid != Guid.Empty ? dataTypes.ConcatBytes(responseHeader, DataTypes.GetUUID(uuid)) @@ -3486,9 +3486,9 @@ namespace MinecraftClient.Protocol.Handlers return -1; var transactionId = DataTypes.GetVarInt(autocomplete_transaction_id); - var assumeCommand = new byte[] { 0x00 }; - var hasPosition = new byte[] { 0x00 }; - var tabCompletePacket = Array.Empty(); + byte[] assumeCommand = [0x00]; + byte[] hasPosition = [0x00]; + byte[] tabCompletePacket = []; switch (protocolVersion) { @@ -4009,7 +4009,7 @@ namespace MinecraftClient.Protocol.Handlers { try { - SendPacket(PacketTypesOut.ClientStatus, new byte[] { 0 }); + SendPacket(PacketTypesOut.ClientStatus, [0]); return true; } catch (SocketException) @@ -4064,7 +4064,7 @@ namespace MinecraftClient.Protocol.Handlers fields.AddRange(protocolVersion >= MC_1_9_Version ? DataTypes.GetVarInt(chatMode) - : new byte[] { chatMode }); + : [chatMode]); fields.Add(chatColors ? (byte)1 : (byte)0); if (protocolVersion < MC_1_8_Version) @@ -4163,7 +4163,7 @@ namespace MinecraftClient.Protocol.Handlers dataTypes.GetDouble(location.Y), protocolVersion < MC_1_8_Version ? dataTypes.GetDouble(location.Y + 1.62) - : Array.Empty(), + : [], dataTypes.GetDouble(location.Z), dataTypes.GetFloat(yaw.Value), dataTypes.GetFloat(pitch.Value), @@ -4181,7 +4181,7 @@ namespace MinecraftClient.Protocol.Handlers dataTypes.GetDouble(location.Y), protocolVersion < MC_1_8_Version ? dataTypes.GetDouble(location.Y + 1.62) - : Array.Empty(), + : [], dataTypes.GetDouble(location.Z), new[] { flags }); } @@ -4223,7 +4223,7 @@ namespace MinecraftClient.Protocol.Handlers dataTypes.GetDouble(location.Y), protocolVersion < MC_1_8_Version ? dataTypes.GetDouble(location.Y + 1.62) - : Array.Empty(), + : [], dataTypes.GetDouble(location.Z), dataTypes.GetFloat(yaw.Value), dataTypes.GetFloat(pitch.Value), @@ -4241,7 +4241,7 @@ namespace MinecraftClient.Protocol.Handlers dataTypes.GetDouble(location.Y), protocolVersion < MC_1_8_Version ? dataTypes.GetDouble(location.Y + 1.62) - : Array.Empty(), + : [], dataTypes.GetDouble(location.Z), new[] { flags }); } @@ -4549,7 +4549,7 @@ namespace MinecraftClient.Protocol.Handlers if (playerInventory?.Items is null) return false; - var slotWindowIds = new int[]{ 36, 37, 38, 39, 40, 41, 42, 43, 44 }; + int[] slotWindowIds = [36, 37, 38, 39, 40, 41, 42, 43, 44]; var currentSlot = ((McClient)handler).GetCurrentSlot(); playerInventory.Items.TryGetValue(slotWindowIds[currentSlot], out var item); diff --git a/MinecraftClient/Scripting/ChatBot.cs b/MinecraftClient/Scripting/ChatBot.cs index 1c84b7e7..8b612ab8 100644 --- a/MinecraftClient/Scripting/ChatBot.cs +++ b/MinecraftClient/Scripting/ChatBot.cs @@ -785,7 +785,7 @@ namespace MinecraftClient.Scripting string prefix = tmp[0]; string user = tmp[1]; string semicolon = tmp[2]; - if (prefix.All(c => char.IsLetterOrDigit(c) || new char[] { '*', '<', '>', '_' }.Contains(c)) + if (prefix.All(c => char.IsLetterOrDigit(c) || new[] { '*', '<', '>', '_' }.Contains(c)) && semicolon == ":") { message = text[(prefix.Length + user.Length + 4)..]; @@ -878,7 +878,7 @@ namespace MinecraftClient.Scripting catch { return; /* Invalid file name or access denied */ } } - File.AppendAllLines(logfile, new string[] { GetTimestamp() + ' ' + text }); + File.AppendAllLines(logfile, [GetTimestamp() + ' ' + text]); } } @@ -898,7 +898,7 @@ namespace MinecraftClient.Scripting catch { return; /* Invalid file name or access denied */ } } - File.AppendAllLines(logfile, new string[] { GetTimestamp() + ' ' + text }); + File.AppendAllLines(logfile, [GetTimestamp() + ' ' + text]); } } @@ -1218,7 +1218,7 @@ namespace MinecraftClient.Scripting else { LogToConsole("File not found: " + Path.GetFullPath(file)); - return Array.Empty(); + return []; } } From 446c6e7739649a609415220a15e8418e8b38f265 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Mar 2026 00:37:35 +0000 Subject: [PATCH 07/13] refactor: convert redundant new TypeName() to target-typed new() Replace explicit constructor calls with target-typed new() expressions where the type is already specified on the left side of the assignment. This is a C# 9+ feature that reduces redundancy. Files changed: - Container.cs: field assignments in constructors - EntityPalette18/112/113.cs: static field initializers - ChatParser.cs: StringBuilder local variable - Movement.cs: field assignments in constructor - PacketPalette18.cs: field initializers - EnchantmentMapping.cs: field reassignments Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- MinecraftClient/Inventory/Container.cs | 20 +++++++++---------- .../Inventory/EnchantmentMapping.cs | 4 ++-- .../EntityPalettes/EntityPalette112.cs | 4 ++-- .../EntityPalettes/EntityPalette113.cs | 4 ++-- .../Mapping/EntityPalettes/EntityPalette18.cs | 4 ++-- MinecraftClient/Mapping/Movement.cs | 4 ++-- .../PacketPalettes/PacketPalette18.cs | 4 ++-- .../Protocol/Message/ChatParser.cs | 2 +- 8 files changed, 23 insertions(+), 23 deletions(-) diff --git a/MinecraftClient/Inventory/Container.cs b/MinecraftClient/Inventory/Container.cs index f1201275..a5ecd92d 100644 --- a/MinecraftClient/Inventory/Container.cs +++ b/MinecraftClient/Inventory/Container.cs @@ -50,8 +50,8 @@ namespace MinecraftClient.Inventory ID = id; Type = type; Title = title; - Items = new Dictionary(); - Properties = new Dictionary(); + Items = new(); + Properties = new(); } /// @@ -67,7 +67,7 @@ namespace MinecraftClient.Inventory Type = type; Title = title; Items = items; - Properties = new Dictionary(); + Properties = new(); } /// @@ -81,8 +81,8 @@ namespace MinecraftClient.Inventory ID = id; Title = title; Type = ConvertType.ToNew(type); - Items = new Dictionary(); - Properties = new Dictionary(); + Items = new(); + Properties = new(); } /// @@ -96,8 +96,8 @@ namespace MinecraftClient.Inventory ID = id; Type = GetContainerType(typeID); Title = title; - Items = new Dictionary(); - Properties = new Dictionary(); + Items = new(); + Properties = new(); } /// @@ -109,8 +109,8 @@ namespace MinecraftClient.Inventory ID = -1; Type = type; Title = null; - Items = new Dictionary(); - Properties = new Dictionary(); + Items = new(); + Properties = new(); } /// @@ -124,7 +124,7 @@ namespace MinecraftClient.Inventory Type = type; Title = null; Items = items; - Properties = new Dictionary(); + Properties = new(); } /// diff --git a/MinecraftClient/Inventory/EnchantmentMapping.cs b/MinecraftClient/Inventory/EnchantmentMapping.cs index cf25ea94..2c66b40f 100644 --- a/MinecraftClient/Inventory/EnchantmentMapping.cs +++ b/MinecraftClient/Inventory/EnchantmentMapping.cs @@ -261,7 +261,7 @@ namespace MinecraftClient.Inventory /// public static void SetDynamicEnchantmentIdMap(Dictionary idMap) { - dynamicEnchantmentIdMap = new Dictionary(); + dynamicEnchantmentIdMap = new(); foreach (var kvp in idMap) { var name = kvp.Value.StartsWith("minecraft:") ? kvp.Value.Substring("minecraft:".Length) : kvp.Value; @@ -284,7 +284,7 @@ namespace MinecraftClient.Inventory { if (reverseEnchantmentMappings == null) { - reverseEnchantmentMappings = new Dictionary(); + reverseEnchantmentMappings = new(); if (dynamicEnchantmentIdMap != null) { foreach (var kvp in dynamicEnchantmentIdMap) diff --git a/MinecraftClient/Mapping/EntityPalettes/EntityPalette112.cs b/MinecraftClient/Mapping/EntityPalettes/EntityPalette112.cs index 15d0dcd4..b5259508 100644 --- a/MinecraftClient/Mapping/EntityPalettes/EntityPalette112.cs +++ b/MinecraftClient/Mapping/EntityPalettes/EntityPalette112.cs @@ -9,7 +9,7 @@ namespace MinecraftClient.Mapping.EntityPalettes /// public class EntityPalette112 : EntityPalette { - private static Dictionary mappingsObjects = new Dictionary() + private static Dictionary mappingsObjects = new() { // https://wiki.vg/Entity_metadata#Objects { 1, EntityType.Boat }, @@ -41,7 +41,7 @@ namespace MinecraftClient.Mapping.EntityPalettes { 93, EntityType.DragonFireball }, }; - private static Dictionary mappingsMobs = new Dictionary() + private static Dictionary mappingsMobs = new() { { 1, EntityType.Item }, { 2, EntityType.ExperienceOrb }, diff --git a/MinecraftClient/Mapping/EntityPalettes/EntityPalette113.cs b/MinecraftClient/Mapping/EntityPalettes/EntityPalette113.cs index d78a7240..ab19e391 100644 --- a/MinecraftClient/Mapping/EntityPalettes/EntityPalette113.cs +++ b/MinecraftClient/Mapping/EntityPalettes/EntityPalette113.cs @@ -9,7 +9,7 @@ namespace MinecraftClient.Mapping.EntityPalettes /// public class EntityPalette113 : EntityPalette { - private static Dictionary mappingsObjects = new Dictionary() + private static Dictionary mappingsObjects = new() { // https://wiki.vg/Entity_metadata#Objects { 1, EntityType.Boat }, @@ -42,7 +42,7 @@ namespace MinecraftClient.Mapping.EntityPalettes { 94, EntityType.Trident }, }; - private static Dictionary mappingsMobs = new Dictionary() + private static Dictionary mappingsMobs = new() { // https://wiki.vg/Entity_metadata#Mobs { 0, EntityType.AreaEffectCloud }, diff --git a/MinecraftClient/Mapping/EntityPalettes/EntityPalette18.cs b/MinecraftClient/Mapping/EntityPalettes/EntityPalette18.cs index 2ff09ace..d85ed48a 100644 --- a/MinecraftClient/Mapping/EntityPalettes/EntityPalette18.cs +++ b/MinecraftClient/Mapping/EntityPalettes/EntityPalette18.cs @@ -10,7 +10,7 @@ namespace MinecraftClient.Mapping.EntityPalettes /// public class EntityPalette18 : EntityPalette { - private static Dictionary mappingsObjects = new Dictionary() + private static Dictionary mappingsObjects = new() { // https://wiki.vg/Entity_metadata#Objects { 1, EntityType.Boat }, @@ -39,7 +39,7 @@ namespace MinecraftClient.Mapping.EntityPalettes { 93, EntityType.DragonFireball }, }; - private static Dictionary mappingsMobs = new Dictionary() { + private static Dictionary mappingsMobs = new() { { 1, EntityType.Item }, { 2, EntityType.ExperienceOrb }, { 8, EntityType.LeashKnot }, diff --git a/MinecraftClient/Mapping/Movement.cs b/MinecraftClient/Mapping/Movement.cs index 64a470da..06009966 100644 --- a/MinecraftClient/Mapping/Movement.cs +++ b/MinecraftClient/Mapping/Movement.cs @@ -338,8 +338,8 @@ namespace MinecraftClient.Mapping public BinaryHeap() { - heapList = new List(); - locationList = new HashSet(); + heapList = new(); + locationList = new(); MinHScoreNode = null; } diff --git a/MinecraftClient/Protocol/Handlers/PacketPalettes/PacketPalette18.cs b/MinecraftClient/Protocol/Handlers/PacketPalettes/PacketPalette18.cs index b7db312d..26d43f9d 100644 --- a/MinecraftClient/Protocol/Handlers/PacketPalettes/PacketPalette18.cs +++ b/MinecraftClient/Protocol/Handlers/PacketPalettes/PacketPalette18.cs @@ -4,7 +4,7 @@ namespace MinecraftClient.Protocol.Handlers.PacketPalettes { public class PacketPalette18 : PacketTypePalette { - private Dictionary typeIn = new Dictionary() + private Dictionary typeIn = new() { { 0x00, PacketTypesIn.KeepAlive }, { 0x01, PacketTypesIn.JoinGame }, @@ -80,7 +80,7 @@ namespace MinecraftClient.Protocol.Handlers.PacketPalettes { 0x49, PacketTypesIn.UpdateEntityNBT } }; - private Dictionary typeOut = new Dictionary() + private Dictionary typeOut = new() { { 0x00, PacketTypesOut.TeleportConfirm }, { 0x01, PacketTypesOut.Unknown }, diff --git a/MinecraftClient/Protocol/Message/ChatParser.cs b/MinecraftClient/Protocol/Message/ChatParser.cs index 57b38572..610a2d7e 100644 --- a/MinecraftClient/Protocol/Message/ChatParser.cs +++ b/MinecraftClient/Protocol/Message/ChatParser.cs @@ -511,7 +511,7 @@ namespace MinecraftClient.Protocol.Message string message = string.Empty; string colorCode = string.Empty; - StringBuilder extraBuilder = new StringBuilder(); + StringBuilder extraBuilder = new(); foreach (var kvp in nbt) { string key = kvp.Key; From c7bc25aa17e142e2acdcd7edd895fbdc5c3f3115 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Mar 2026 00:42:59 +0000 Subject: [PATCH 08/13] refactor: convert == null / != null to is null / is not null in 31 files Replace old-style null comparisons with modern C# pattern matching syntax across Commands, Protocol, Mapping, ChatBots, Physics, Inventory, Logger, CommandHandler, Scripting, Crypto, and other modules. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- MinecraftClient/ChatBots/AutoCraft.cs | 4 ++-- MinecraftClient/ChatBots/Map.cs | 4 ++-- MinecraftClient/ChatBots/Script.cs | 6 +++--- MinecraftClient/ChatBots/TelegramBridge.cs | 4 ++-- .../ArgumentType/LocationArgumentType.cs | 6 +++--- MinecraftClient/CommandHandler/CmdResult.cs | 2 +- MinecraftClient/Commands/Bots.cs | 2 +- MinecraftClient/Commands/Chunk.cs | 16 ++++++++-------- MinecraftClient/Commands/Enchant.cs | 4 ++-- MinecraftClient/Commands/Inventory.cs | 10 +++++----- MinecraftClient/Crypto/AesCfb8Stream.cs | 8 ++++---- MinecraftClient/FileMonitor.cs | 4 ++-- MinecraftClient/Inventory/Container.cs | 2 +- .../Inventory/EnchantmentMapping.cs | 6 +++--- MinecraftClient/Logger/FilteredLogger.cs | 2 +- .../BlockPalettes/BlockPaletteGenerator.cs | 2 +- MinecraftClient/Mapping/Dimension.cs | 2 +- .../Mapping/EntityPalettes/EntityPalette.cs | 4 ++-- MinecraftClient/Mapping/Location.cs | 4 ++-- MinecraftClient/Physics/BlockShapes.cs | 8 ++++---- .../Protocol/Handlers/Protocol16.cs | 6 +++--- .../Protocol/Handlers/Protocol18Forge.cs | 2 +- .../Protocol/Handlers/SocketWrapper.cs | 2 +- .../Protocol/Message/ChatMessage.cs | 2 +- .../Protocol/Message/LastSeenMessageList.cs | 6 +++--- .../Protocol/ProfileKey/KeyUtils.cs | 18 +++++++++--------- .../Protocol/ProfileKey/PlayerKeyPair.cs | 4 ++-- .../Protocol/ProfileKey/PublicKey.cs | 4 ++-- .../Protocol/Session/SessionToken.cs | 4 ++-- .../Scripting/DynamicRun/Builder/Compiler.cs | 2 +- MinecraftClient/Settings.cs | 4 ++-- 31 files changed, 77 insertions(+), 77 deletions(-) diff --git a/MinecraftClient/ChatBots/AutoCraft.cs b/MinecraftClient/ChatBots/AutoCraft.cs index 151826f5..bc8bf957 100644 --- a/MinecraftClient/ChatBots/AutoCraft.cs +++ b/MinecraftClient/ChatBots/AutoCraft.cs @@ -276,7 +276,7 @@ namespace MinecraftClient.ChatBots /// so that it can be used in crafting table public static Recipe ConvertToCraftingTable(Recipe recipe) { - if (recipe.CraftingAreaType == ContainerType.PlayerInventory && recipe.Materials != null) + if (recipe.CraftingAreaType == ContainerType.PlayerInventory && recipe.Materials is not null) { if (recipe.Materials.ContainsKey(4)) { @@ -500,7 +500,7 @@ namespace MinecraftClient.ChatBots } } - if (recipe.Materials != null) + if (recipe.Materials is not null) { foreach (KeyValuePair slot in recipe.Materials) { diff --git a/MinecraftClient/ChatBots/Map.cs b/MinecraftClient/ChatBots/Map.cs index 6a9f6bc4..930e057e 100644 --- a/MinecraftClient/ChatBots/Map.cs +++ b/MinecraftClient/ChatBots/Map.cs @@ -284,13 +284,13 @@ namespace MinecraftClient.ChatBots if (Config.Send_Rendered_To_Discord) { - if (discordBridge == null || (discordBridge != null && !discordBridge.IsConnected)) + if (discordBridge is null || (discordBridge is not null && !discordBridge.IsConnected)) return; } if (Config.Send_Rendered_To_Telegram) { - if (telegramBridge == null || (telegramBridge != null && !telegramBridge.IsConnected)) + if (telegramBridge is null || (telegramBridge is not null && !telegramBridge.IsConnected)) return; } diff --git a/MinecraftClient/ChatBots/Script.cs b/MinecraftClient/ChatBots/Script.cs index 16ca9311..b4da57b4 100644 --- a/MinecraftClient/ChatBots/Script.cs +++ b/MinecraftClient/ChatBots/Script.cs @@ -154,7 +154,7 @@ namespace MinecraftClient.ChatBots if (csharp) //C# compiled script { //Initialize thread on first update - if (thread == null) + if (thread is null) { thread = new Thread(() => { @@ -166,7 +166,7 @@ namespace MinecraftClient.ChatBots { string errorMessage = string.Format(Translations.bot_script_fail, file, e.ExceptionType); LogToConsole(errorMessage); - if (owner != null) + if (owner is not null) SendPrivateMessage(owner, errorMessage); LogToConsole(e.InnerException); } @@ -178,7 +178,7 @@ namespace MinecraftClient.ChatBots } //Unload bot once the thread has finished running - if (thread != null && !thread.IsAlive) + if (thread is not null && !thread.IsAlive) { UnloadBot(); } diff --git a/MinecraftClient/ChatBots/TelegramBridge.cs b/MinecraftClient/ChatBots/TelegramBridge.cs index 1140756a..70536cb9 100644 --- a/MinecraftClient/ChatBots/TelegramBridge.cs +++ b/MinecraftClient/ChatBots/TelegramBridge.cs @@ -148,7 +148,7 @@ namespace MinecraftClient.ChatBots private void Disconnect() { - if (botClient != null) + if (botClient is not null) { try { @@ -238,7 +238,7 @@ namespace MinecraftClient.ChatBots private bool CanSendMessages() { - return botClient != null && !string.IsNullOrEmpty(Config.ChannelId.Trim()) && bridgeDirection != BridgeDirection.Minecraft; + return botClient is not null && !string.IsNullOrEmpty(Config.ChannelId.Trim()) && bridgeDirection != BridgeDirection.Minecraft; } async Task MainAsync() diff --git a/MinecraftClient/CommandHandler/ArgumentType/LocationArgumentType.cs b/MinecraftClient/CommandHandler/ArgumentType/LocationArgumentType.cs index f2ef9b0a..fbd8a4dc 100644 --- a/MinecraftClient/CommandHandler/ArgumentType/LocationArgumentType.cs +++ b/MinecraftClient/CommandHandler/ArgumentType/LocationArgumentType.cs @@ -51,7 +51,7 @@ namespace MinecraftClient.CommandHandler.ArgumentType string[] args = builder.Remaining.Split(' ', StringSplitOptions.TrimEntries); if (args.Length == 0 || (args.Length == 1 && string.IsNullOrWhiteSpace(args[0]))) { - if (client != null) + if (client is not null) { Location current = client.GetCurrentLocation(); builder.Suggest(string.Format("{0:0.00}", current.X)); @@ -68,7 +68,7 @@ namespace MinecraftClient.CommandHandler.ArgumentType else if (args.Length == 1 || (args.Length == 2 && string.IsNullOrWhiteSpace(args[1]))) { string add = args.Length == 1 ? " " : string.Empty; - if (client != null) + if (client is not null) { Location current = client.GetCurrentLocation(); builder.Suggest(string.Format("{0}{2}{1:0.00}", builder.Remaining, current.Y, add)); @@ -83,7 +83,7 @@ namespace MinecraftClient.CommandHandler.ArgumentType else if (args.Length == 2 || (args.Length == 3 && string.IsNullOrWhiteSpace(args[2]))) { string add = args.Length == 2 ? " " : string.Empty; - if (client != null) + if (client is not null) { Location current = client.GetCurrentLocation(); builder.Suggest(string.Format("{0}{2}{1:0.00}", builder.Remaining, current.Z, add)); diff --git a/MinecraftClient/CommandHandler/CmdResult.cs b/MinecraftClient/CommandHandler/CmdResult.cs index 8ecafc8a..9c4cd840 100644 --- a/MinecraftClient/CommandHandler/CmdResult.cs +++ b/MinecraftClient/CommandHandler/CmdResult.cs @@ -87,7 +87,7 @@ namespace MinecraftClient.CommandHandler public override string ToString() { - if (result != null) + if (result is not null) return result; else return status.ToString(); diff --git a/MinecraftClient/Commands/Bots.cs b/MinecraftClient/Commands/Bots.cs index 73574a14..9a94615e 100644 --- a/MinecraftClient/Commands/Bots.cs +++ b/MinecraftClient/Commands/Bots.cs @@ -84,7 +84,7 @@ namespace MinecraftClient.Commands else { ChatBot? bot = handler.GetLoadedChatBots().Find(bot => bot.GetType().Name.ToLower() == botName.ToLower()); - if (bot == null) + if (bot is null) return r.SetAndReturn(CmdResult.Status.Fail, string.Format(Translations.cmd_bots_notfound, botName)); else { diff --git a/MinecraftClient/Commands/Chunk.cs b/MinecraftClient/Commands/Chunk.cs index 2068c662..cbf82173 100644 --- a/MinecraftClient/Commands/Chunk.cs +++ b/MinecraftClient/Commands/Chunk.cs @@ -92,7 +92,7 @@ namespace MinecraftClient.Commands sb.Append('\n'); sb.AppendLine(string.Format(Translations.cmd_chunk_current, current, current.ChunkX, current.ChunkZ)); - if (markedChunkPos != null) + if (markedChunkPos is not null) { sb.Append(Translations.cmd_chunk_marked); if (pos.HasValue) @@ -120,7 +120,7 @@ namespace MinecraftClient.Commands { for (int x = startX; x <= endX; ++x) { - if (world[x, z] != null) + if (world[x, z] is not null) { leftMost = Math.Min(leftMost, x); rightMost = Math.Max(rightMost, x); @@ -184,7 +184,7 @@ namespace MinecraftClient.Commands } // Try to include the marker chunk - if (markedChunkPos != null && + if (markedChunkPos is not null && (((Math.Max(bottomMost, markChunkZ) - Math.Min(topMost, markChunkZ) + 1) > consoleHeight) || ((Math.Max(rightMost, markChunkX) - Math.Min(leftMost, markChunkX) + 1) > consoleWidth))) sb.AppendLine(Translations.cmd_chunk_outside); @@ -212,7 +212,7 @@ namespace MinecraftClient.Commands sb.Append("§§4"); // Marked chunk: background red ChunkColumn? chunkColumn = world[x, z]; - if (chunkColumn == null) + if (chunkColumn is null) sb.Append(chunkStatusStr[0]); else if (chunkColumn.FullyLoaded) sb.Append(chunkStatusStr[2]); @@ -242,10 +242,10 @@ namespace MinecraftClient.Commands handler.Log.Info(Translations.cmd_chunk_for_debug); (int chunkX, int chunkZ) = markedChunkPos ?? new(pos!.Value.ChunkX, pos!.Value.ChunkZ); ChunkColumn? chunkColumn = handler.GetWorld()[chunkX, chunkZ]; - if (chunkColumn != null) + if (chunkColumn is not null) chunkColumn.FullyLoaded = false; - if (chunkColumn == null) + if (chunkColumn is null) return r.SetAndReturn(Status.Fail, "Fail: chunk dosen't exist!"); else return r.SetAndReturn(Status.Done, string.Format("Successfully marked chunk ({0}, {1}) as loading.", chunkX, chunkZ)); @@ -262,10 +262,10 @@ namespace MinecraftClient.Commands handler.Log.Info(Translations.cmd_chunk_for_debug); (int chunkX, int chunkZ) = markedChunkPos ?? new(pos!.Value.ChunkX, pos!.Value.ChunkZ); ChunkColumn? chunkColumn = handler.GetWorld()[chunkX, chunkZ]; - if (chunkColumn != null) + if (chunkColumn is not null) chunkColumn.FullyLoaded = false; - if (chunkColumn == null) + if (chunkColumn is null) return r.SetAndReturn(Status.Fail, "Fail: chunk dosen't exist!"); else return r.SetAndReturn(Status.Done, string.Format("Successfully marked chunk ({0}, {1}) as loaded.", chunkX, chunkZ)); diff --git a/MinecraftClient/Commands/Enchant.cs b/MinecraftClient/Commands/Enchant.cs index 813c734f..1fc361f7 100644 --- a/MinecraftClient/Commands/Enchant.cs +++ b/MinecraftClient/Commands/Enchant.cs @@ -66,7 +66,7 @@ namespace MinecraftClient.Commands } } - if (enchantingTable == null) + if (enchantingTable is null) return r.SetAndReturn(CmdResult.Status.Fail, Translations.cmd_enchant_enchanting_table_not_opened); int[] emptySlots = enchantingTable.GetEmpytSlots(); @@ -84,7 +84,7 @@ namespace MinecraftClient.Commands EnchantmentData? enchantment = handler.GetLastEnchantments(); - if (enchantment == null) + if (enchantment is null) return r.SetAndReturn(CmdResult.Status.Fail, Translations.cmd_enchant_no_enchantments); short requiredLevel = slotId switch diff --git a/MinecraftClient/Commands/Inventory.cs b/MinecraftClient/Commands/Inventory.cs index c0397b08..cc0aeac4 100644 --- a/MinecraftClient/Commands/Inventory.cs +++ b/MinecraftClient/Commands/Inventory.cs @@ -276,7 +276,7 @@ namespace MinecraftClient.Commands } Container? inventory = handler.GetInventory(inventoryId.Value); - if (inventory == null) + if (inventory is null) return r.SetAndReturn(CmdResult.Status.Fail, string.Format(Translations.cmd_inventory_not_exist, inventoryId)); if (handler.CloseInventory(inventoryId.Value)) @@ -299,7 +299,7 @@ namespace MinecraftClient.Commands } Container? inventory = handler.GetInventory(inventoryId.Value); - if (inventory == null) + if (inventory is null) return r.SetAndReturn(CmdResult.Status.Fail, string.Format(Translations.cmd_inventory_not_exist, inventoryId)); StringBuilder response = new(); @@ -307,7 +307,7 @@ namespace MinecraftClient.Commands response.AppendLine(String.Format(" #{0} - {1}§8", inventoryId, inventory.Title)); string? asciiArt = inventory.Type.GetAsciiArt(); - if (asciiArt != null && Settings.Config.Main.Advanced.ShowInventoryLayout) + if (asciiArt is not null && Settings.Config.Main.Advanced.ShowInventoryLayout) response.AppendLine(asciiArt); int selectedHotbar = handler.GetCurrentSlot() + 1; @@ -342,7 +342,7 @@ namespace MinecraftClient.Commands } Container? inventory = handler.GetInventory(inventoryId.Value); - if (inventory == null) + if (inventory is null) return r.SetAndReturn(CmdResult.Status.Fail, string.Format(Translations.cmd_inventory_not_exist, inventoryId)); string keyName = actionType switch @@ -373,7 +373,7 @@ namespace MinecraftClient.Commands } Container? inventory = handler.GetInventory(inventoryId.Value); - if (inventory == null) + if (inventory is null) return r.SetAndReturn(CmdResult.Status.Fail, string.Format(Translations.cmd_inventory_not_exist, inventoryId)); // check item exist diff --git a/MinecraftClient/Crypto/AesCfb8Stream.cs b/MinecraftClient/Crypto/AesCfb8Stream.cs index dfa2dd78..b60eb845 100644 --- a/MinecraftClient/Crypto/AesCfb8Stream.cs +++ b/MinecraftClient/Crypto/AesCfb8Stream.cs @@ -89,7 +89,7 @@ namespace MinecraftClient.Crypto } Span blockOutput = stackalloc byte[blockSize]; - if (FastAes != null) + if (FastAes is not null) FastAes.EncryptEcb(ReadStreamIV, blockOutput); else Aes!.EncryptEcb(ReadStreamIV, blockOutput, PaddingMode.None); @@ -122,7 +122,7 @@ namespace MinecraftClient.Crypto } int processEnd = readed + curRead; - if (FastAes != null) + if (FastAes is not null) { for (int idx = readed; idx < processEnd; idx++) { @@ -161,7 +161,7 @@ namespace MinecraftClient.Crypto { Span blockOutput = stackalloc byte[blockSize]; - if (FastAes != null) + if (FastAes is not null) FastAes.EncryptEcb(WriteStreamIV, blockOutput); else Aes!.EncryptEcb(WriteStreamIV, blockOutput, PaddingMode.None); @@ -185,7 +185,7 @@ namespace MinecraftClient.Crypto for (int wirtten = 0; wirtten < required; ++wirtten) { ReadOnlySpan blockInput = new(outputBuf, wirtten, blockSize); - if (FastAes != null) + if (FastAes is not null) FastAes.EncryptEcb(blockInput, blockOutput); else Aes!.EncryptEcb(blockInput, blockOutput, PaddingMode.None); diff --git a/MinecraftClient/FileMonitor.cs b/MinecraftClient/FileMonitor.cs index 36e89ec1..16f590a4 100644 --- a/MinecraftClient/FileMonitor.cs +++ b/MinecraftClient/FileMonitor.cs @@ -59,9 +59,9 @@ namespace MinecraftClient /// public void Dispose() { - if (monitor != null) + if (monitor is not null) monitor.Item1.Dispose(); - if (polling != null) + if (polling is not null) polling.Item2.Cancel(); } diff --git a/MinecraftClient/Inventory/Container.cs b/MinecraftClient/Inventory/Container.cs index a5ecd92d..98908655 100644 --- a/MinecraftClient/Inventory/Container.cs +++ b/MinecraftClient/Inventory/Container.cs @@ -172,7 +172,7 @@ namespace MinecraftClient.Inventory public int[] SearchItem(ItemType itemType) { List result = new(); - if (Items != null) + if (Items is not null) { foreach (var item in Items) { diff --git a/MinecraftClient/Inventory/EnchantmentMapping.cs b/MinecraftClient/Inventory/EnchantmentMapping.cs index 2c66b40f..6bab6117 100644 --- a/MinecraftClient/Inventory/EnchantmentMapping.cs +++ b/MinecraftClient/Inventory/EnchantmentMapping.cs @@ -273,7 +273,7 @@ namespace MinecraftClient.Inventory public static Enchantments GetEnchantmentByRegistryId1206(int id) { - if (dynamicEnchantmentIdMap != null && dynamicEnchantmentIdMap.TryGetValue(id, out var dynValue)) + if (dynamicEnchantmentIdMap is not null && dynamicEnchantmentIdMap.TryGetValue(id, out var dynValue)) return dynValue; if (enchantmentMappings.TryGetValue((short)id, out var value)) return value; @@ -282,10 +282,10 @@ namespace MinecraftClient.Inventory public static int GetRegistryId1206ByEnchantment(Enchantments enchantment) { - if (reverseEnchantmentMappings == null) + if (reverseEnchantmentMappings is null) { reverseEnchantmentMappings = new(); - if (dynamicEnchantmentIdMap != null) + if (dynamicEnchantmentIdMap is not null) { foreach (var kvp in dynamicEnchantmentIdMap) reverseEnchantmentMappings[kvp.Value] = (short)kvp.Key; diff --git a/MinecraftClient/Logger/FilteredLogger.cs b/MinecraftClient/Logger/FilteredLogger.cs index 168e126b..09a3596c 100644 --- a/MinecraftClient/Logger/FilteredLogger.cs +++ b/MinecraftClient/Logger/FilteredLogger.cs @@ -31,7 +31,7 @@ namespace MinecraftClient.Logger regexToUse = new(debug); break; } - if (regexToUse != null) + if (regexToUse is not null) { // IsMatch and white/blacklist result can be represented using XOR // e.g. matched(true) ^ blacklist(true) => shouldn't log(false) diff --git a/MinecraftClient/Mapping/BlockPalettes/BlockPaletteGenerator.cs b/MinecraftClient/Mapping/BlockPalettes/BlockPaletteGenerator.cs index 1c835892..11f7f5d2 100644 --- a/MinecraftClient/Mapping/BlockPalettes/BlockPaletteGenerator.cs +++ b/MinecraftClient/Mapping/BlockPalettes/BlockPaletteGenerator.cs @@ -137,7 +137,7 @@ namespace MinecraftClient.Mapping.BlockPalettes File.WriteAllLines(outputPalettePath, outFile); - if (outputEnum != null) + if (outputEnum is not null) { outFile = new List(); outFile.AddRange(new[] { diff --git a/MinecraftClient/Mapping/Dimension.cs b/MinecraftClient/Mapping/Dimension.cs index fe52b0e0..f9e8380f 100644 --- a/MinecraftClient/Mapping/Dimension.cs +++ b/MinecraftClient/Mapping/Dimension.cs @@ -129,7 +129,7 @@ namespace MinecraftClient.Mapping { Name = name ?? throw new ArgumentNullException(nameof(name)); - if (nbt == null) + if (nbt is null) throw new ArgumentNullException(nameof(nbt)); if (nbt.ContainsKey("piglin_safe")) diff --git a/MinecraftClient/Mapping/EntityPalettes/EntityPalette.cs b/MinecraftClient/Mapping/EntityPalettes/EntityPalette.cs index d1e30c16..0873d5d4 100644 --- a/MinecraftClient/Mapping/EntityPalettes/EntityPalette.cs +++ b/MinecraftClient/Mapping/EntityPalettes/EntityPalette.cs @@ -29,9 +29,9 @@ namespace MinecraftClient.Mapping.EntityPalettes Dictionary entityTypes = GetDict(); Dictionary? entityTypesNonLiving = GetDictNonLiving(); - if (entityTypesNonLiving != null && !living) + if (entityTypesNonLiving is not null && !living) { - //Pre-1.14 non-living entities have a different set of IDs (entityTypesNonLiving != null) + //Pre-1.14 non-living entities have a different set of IDs (entityTypesNonLiving is not null) if (entityTypesNonLiving.ContainsKey(id)) return entityTypesNonLiving[id]; } diff --git a/MinecraftClient/Mapping/Location.cs b/MinecraftClient/Mapping/Location.cs index a0bbbc35..abfda749 100644 --- a/MinecraftClient/Mapping/Location.cs +++ b/MinecraftClient/Mapping/Location.cs @@ -108,7 +108,7 @@ namespace MinecraftClient.Mapping public static Location Parse(string x, string y, string z) { Location.TryParse(x, y, z, out Location? res); - if (res == null) + if (res is null) throw new FormatException(); else return (Location)res; @@ -308,7 +308,7 @@ namespace MinecraftClient.Mapping /// TRUE if the locations are equals public override bool Equals(object? obj) { - if (obj == null) + if (obj is null) return false; if (obj is Location location) { diff --git a/MinecraftClient/Physics/BlockShapes.cs b/MinecraftClient/Physics/BlockShapes.cs index 2fbe5b27..b44c6816 100644 --- a/MinecraftClient/Physics/BlockShapes.cs +++ b/MinecraftClient/Physics/BlockShapes.cs @@ -39,7 +39,7 @@ namespace MinecraftClient.Physics /// public static Aabb[] GetShapes(int blockStateId) { - if (stateToShape != null && stateToShape.TryGetValue(blockStateId, out var shapes)) + if (stateToShape is not null && stateToShape.TryGetValue(blockStateId, out var shapes)) return shapes; return FallbackShape(blockStateId); } @@ -76,7 +76,7 @@ namespace MinecraftClient.Physics { var assembly = Assembly.GetExecutingAssembly(); using var stream = assembly.GetManifestResourceStream("BlockShapeData.json"); - if (stream == null) + if (stream is null) { ConsoleInteractive.ConsoleWriter.WriteLineFormatted("§e[Physics] BlockShapeData.json not found as embedded resource"); return; @@ -138,12 +138,12 @@ namespace MinecraftClient.Physics { stateToShape = new Dictionary(); - if (prismarineBlocks == null || prismarineShapes == null) + if (prismarineBlocks is null || prismarineShapes is null) return; var palette = Block.Palette; var dict = GetPaletteDict(palette); - if (dict == null) return; + if (dict is null) return; // Group consecutive state IDs by Material to find state ranges per block var materialRanges = new Dictionary>(); diff --git a/MinecraftClient/Protocol/Handlers/Protocol16.cs b/MinecraftClient/Protocol/Handlers/Protocol16.cs index 2e3a4e8a..21d2a488 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol16.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol16.cs @@ -251,7 +251,7 @@ namespace MinecraftClient.Protocol.Handlers /// Net read thread ID public int GetNetMainThreadId() { - return netRead != null ? netRead.Item1.ManagedThreadId : -1; + return netRead is not null ? netRead.Item1.ManagedThreadId : -1; } public bool SendCookieResponse(string name, byte[]? data) @@ -268,7 +268,7 @@ namespace MinecraftClient.Protocol.Handlers { try { - if (netRead != null) + if (netRead is not null) { netRead.Item2.Cancel(); c.Close(); @@ -556,7 +556,7 @@ namespace MinecraftClient.Protocol.Handlers string serverHash = CryptoHandler.GetServerHash(serverIDhash, serverPublicKey, secretKey); bool needCheckSession = true; - if (session.ServerPublicKey != null && session.SessionPreCheckTask != null + if (session.ServerPublicKey is not null && session.SessionPreCheckTask is not null && serverIDhash == session.ServerIDhash && Enumerable.SequenceEqual(serverPublicKey, session.ServerPublicKey)) { session.SessionPreCheckTask.Wait(); diff --git a/MinecraftClient/Protocol/Handlers/Protocol18Forge.cs b/MinecraftClient/Protocol/Handlers/Protocol18Forge.cs index dc1d6a12..3dbe753e 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18Forge.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18Forge.cs @@ -21,7 +21,7 @@ namespace MinecraftClient.Protocol.Handlers private readonly ForgeInfo? forgeInfo; private FMLHandshakeClientState fmlHandshakeState = FMLHandshakeClientState.START; - private bool ForgeEnabled() { return forgeInfo != null; } + private bool ForgeEnabled() { return forgeInfo is not null; } /// /// Initialize a new Forge protocol handler diff --git a/MinecraftClient/Protocol/Handlers/SocketWrapper.cs b/MinecraftClient/Protocol/Handlers/SocketWrapper.cs index e74fc84a..338bcd46 100644 --- a/MinecraftClient/Protocol/Handlers/SocketWrapper.cs +++ b/MinecraftClient/Protocol/Handlers/SocketWrapper.cs @@ -29,7 +29,7 @@ namespace MinecraftClient.Protocol.Handlers /// Silently dropped connection can only be detected by attempting to read/write data public bool IsConnected() { - return c.Client != null && c.Connected; + return c.Client is not null && c.Connected; } /// diff --git a/MinecraftClient/Protocol/Message/ChatMessage.cs b/MinecraftClient/Protocol/Message/ChatMessage.cs index 3088d85e..832fa19b 100644 --- a/MinecraftClient/Protocol/Message/ChatMessage.cs +++ b/MinecraftClient/Protocol/Message/ChatMessage.cs @@ -64,7 +64,7 @@ namespace MinecraftClient.Protocol.Message public LastSeenMessageList.AcknowledgedMessage? ToLastSeenMessageEntry() { - return signature != null ? new LastSeenMessageList.AcknowledgedMessage(senderUUID, signature, true) : null; + return signature is not null ? new LastSeenMessageList.AcknowledgedMessage(senderUUID, signature, true) : null; } public bool LacksSender() diff --git a/MinecraftClient/Protocol/Message/LastSeenMessageList.cs b/MinecraftClient/Protocol/Message/LastSeenMessageList.cs index 62b1227e..852095dc 100644 --- a/MinecraftClient/Protocol/Message/LastSeenMessageList.cs +++ b/MinecraftClient/Protocol/Message/LastSeenMessageList.cs @@ -107,7 +107,7 @@ namespace MinecraftClient.Protocol.Message } } - if (lastEntry != null && messageCount < acknowledgedMessages.Length) + if (lastEntry is not null && messageCount < acknowledgedMessages.Length) acknowledgedMessages[messageCount++] = lastEntry; LastSeenMessageList.AcknowledgedMessage[] msgList = new LastSeenMessageList.AcknowledgedMessage[messageCount]; @@ -120,7 +120,7 @@ namespace MinecraftClient.Protocol.Message { // net.minecraft.network.message.LastSeenMessagesCollector#add(net.minecraft.network.message.MessageSignatureData, boolean) // net.minecraft.network.message.LastSeenMessagesCollector#add(net.minecraft.network.message.AcknowledgedMessage) - if (lastEntry != null && entry.signature.SequenceEqual(lastEntry.signature)) + if (lastEntry is not null && entry.signature.SequenceEqual(lastEntry.signature)) return false; lastEntry = entry; @@ -143,7 +143,7 @@ namespace MinecraftClient.Protocol.Message { int k = (nextIndex + j) % acknowledgedMessages.Length; AcknowledgedMessage? acknowledgedMessage = acknowledgedMessages[k]; - if (acknowledgedMessage == null) + if (acknowledgedMessage is null) continue; bitset[j / 8] |= (byte)(1 << (j % 8)); // bitSet.set(j, true); objectList.Add(acknowledgedMessage); diff --git a/MinecraftClient/Protocol/ProfileKey/KeyUtils.cs b/MinecraftClient/Protocol/ProfileKey/KeyUtils.cs index bc2ad08f..381af81f 100644 --- a/MinecraftClient/Protocol/ProfileKey/KeyUtils.cs +++ b/MinecraftClient/Protocol/ProfileKey/KeyUtils.cs @@ -43,7 +43,7 @@ namespace MinecraftClient.Protocol.ProfileKey } catch (Exception e) { - int code = response == null ? 0 : response.StatusCode; + int code = response is null ? 0 : response.StatusCode; ConsoleIO.WriteLineFormatted("§cFetch authlib-injector metadata failed: HttpCode = " + code + ", Error = " + e.Message); if (Settings.Config.Logging.DebugMessages) ConsoleIO.WriteLineFormatted("§c" + e.StackTrace); @@ -93,12 +93,12 @@ namespace MinecraftClient.Protocol.ProfileKey } var json = Json.ParseJson(response.Body); - if (json?["keyPair"]?["publicKey"] == null - || json["keyPair"]?["privateKey"] == null - || json["publicKeySignature"] == null - || json["publicKeySignatureV2"] == null - || json["expiresAt"] == null - || json["refreshedAfter"] == null) + if (json?["keyPair"]?["publicKey"] is null + || json["keyPair"]?["privateKey"] is null + || json["publicKeySignature"] is null + || json["publicKeySignatureV2"] is null + || json["expiresAt"] is null + || json["refreshedAfter"] is null) { throw new InvalidOperationException("Certificate endpoint returned an unexpected payload."); } @@ -115,7 +115,7 @@ namespace MinecraftClient.Protocol.ProfileKey } catch (Exception e) { - int code = response == null ? 0 : response.StatusCode; + int code = response is null ? 0 : response.StatusCode; ConsoleIO.WriteLineFormatted("§cFetch profile key failed: HttpCode = " + code + ", Error = " + e.Message); if (Settings.Config.Logging.DebugMessages) ConsoleIO.WriteLineFormatted("§c" + e.StackTrace); @@ -209,7 +209,7 @@ namespace MinecraftClient.Protocol.ProfileKey { List data = new(); - if (precedingSignature != null) + if (precedingSignature is not null) data.AddRange(precedingSignature); data.AddRange(sender.ToBigEndianBytes()); diff --git a/MinecraftClient/Protocol/ProfileKey/PlayerKeyPair.cs b/MinecraftClient/Protocol/ProfileKey/PlayerKeyPair.cs index 572b0d06..2c1fc589 100644 --- a/MinecraftClient/Protocol/ProfileKey/PlayerKeyPair.cs +++ b/MinecraftClient/Protocol/ProfileKey/PlayerKeyPair.cs @@ -73,11 +73,11 @@ namespace MinecraftClient.Protocol.ProfileKey { List datas = new(); datas.Add(Convert.ToBase64String(PublicKey.Key)); - if (PublicKey.Signature == null) + if (PublicKey.Signature is null) datas.Add(string.Empty); else datas.Add(Convert.ToBase64String(PublicKey.Signature)); - if (PublicKey.SignatureV2 == null) + if (PublicKey.SignatureV2 is null) datas.Add(string.Empty); else datas.Add(Convert.ToBase64String(PublicKey.SignatureV2)); diff --git a/MinecraftClient/Protocol/ProfileKey/PublicKey.cs b/MinecraftClient/Protocol/ProfileKey/PublicKey.cs index 2208e04e..faa8ba33 100644 --- a/MinecraftClient/Protocol/ProfileKey/PublicKey.cs +++ b/MinecraftClient/Protocol/ProfileKey/PublicKey.cs @@ -25,10 +25,10 @@ namespace MinecraftClient.Protocol.ProfileKey if (!string.IsNullOrEmpty(sigV2)) SignatureV2 = Convert.FromBase64String(sigV2!); - if (SignatureV2 == null || SignatureV2.Length == 0) + if (SignatureV2 is null || SignatureV2.Length == 0) SignatureV2 = Signature; - if (Signature == null || Signature.Length == 0) + if (Signature is null || Signature.Length == 0) Signature = SignatureV2; } diff --git a/MinecraftClient/Protocol/Session/SessionToken.cs b/MinecraftClient/Protocol/Session/SessionToken.cs index 8687b99f..1364012b 100644 --- a/MinecraftClient/Protocol/Session/SessionToken.cs +++ b/MinecraftClient/Protocol/Session/SessionToken.cs @@ -45,7 +45,7 @@ namespace MinecraftClient.Protocol.Session public bool SessionPreCheck(LoginType type) { - if (ID == string.Empty || PlayerID == String.Empty || ServerPublicKey == null) + if (ID == string.Empty || PlayerID == String.Empty || ServerPublicKey is null) return false; Crypto.CryptoHandler.ClientAESPrivateKey ??= Crypto.CryptoHandler.GenerateAESPrivateKey(); string serverHash = Crypto.CryptoHandler.GetServerHash(ServerIDhash, ServerPublicKey, Crypto.CryptoHandler.ClientAESPrivateKey); @@ -57,7 +57,7 @@ namespace MinecraftClient.Protocol.Session public override string ToString() { return String.Join(",", ID, PlayerName, PlayerID, ClientID, RefreshToken, ServerIDhash, - (ServerPublicKey == null) ? String.Empty : Convert.ToBase64String(ServerPublicKey)); + (ServerPublicKey is null) ? String.Empty : Convert.ToBase64String(ServerPublicKey)); } public static SessionToken FromString(string tokenString) diff --git a/MinecraftClient/Scripting/DynamicRun/Builder/Compiler.cs b/MinecraftClient/Scripting/DynamicRun/Builder/Compiler.cs index 81417178..c941aa19 100644 --- a/MinecraftClient/Scripting/DynamicRun/Builder/Compiler.cs +++ b/MinecraftClient/Scripting/DynamicRun/Builder/Compiler.cs @@ -142,7 +142,7 @@ namespace MinecraftClient.Scripting.DynamicRun.Builder "[Script Error] Too many references to the same assembly. Assembly name: " + refs.Name); } - if (reference == null) { + if (reference is null) { throw new InvalidOperationException( "[Script Error] The executable does not contain a referenced assembly. Assembly name: " + refs.Name); } diff --git a/MinecraftClient/Settings.cs b/MinecraftClient/Settings.cs index 6ee9ecfd..2b11637e 100644 --- a/MinecraftClient/Settings.cs +++ b/MinecraftClient/Settings.cs @@ -1150,7 +1150,7 @@ namespace MinecraftClient break; default: - if (localVars != null && localVars.ContainsKey(varname_lower)) + if (localVars is not null && localVars.ContainsKey(varname_lower)) result.Append(localVars[varname_lower].ToString()); else if (TryGetVar(varname_lower, out object? var_value)) result.Append(var_value.ToString()); @@ -1979,7 +1979,7 @@ namespace MinecraftClient public static string GetFullMessage(this Exception ex) { string msg = ex.Message.Replace("+", "->"); - return ex.InnerException == null + return ex.InnerException is null ? msg : msg + "\n --> " + ex.InnerException.GetFullMessage(); } From 94bf42710abe80404316331beb825e9de40a52b0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Mar 2026 00:47:03 +0000 Subject: [PATCH 09/13] refactor: use pattern matching for null checks (is null / is not null) Convert remaining == null to is null and != null to is not null across 17 files in CommandHandler/ArgumentType, StructuredComponents, and DeclareCommands for idiomatic C# style. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../CommandHandler/ArgumentType/BotNameArgumentType.cs | 2 +- .../ArgumentType/HotbarSlotArgumentType.cs | 4 ++-- .../ArgumentType/InventoryIdArgumentType.cs | 2 +- .../ArgumentType/InventorySlotArgumentType.cs | 6 +++--- .../ArgumentType/MapBotMapIdArgumentType.cs | 4 ++-- .../ArgumentType/PlayerNameArgumentType.cs | 2 +- .../Protocol/Handlers/Packet/s2c/DeclareCommands.cs | 6 +++--- .../Components/1_20_6/BundleContentsComponent.cs | 2 +- .../Components/1_20_6/ChargedProjectilesComponent.cs | 2 +- .../Components/1_21_2/ConsumableComponent.cs | 2 +- .../Components/1_21_2/EquippableComponent.cs | 10 +++++----- .../Components/1_21_2/RepairableComponent.cs | 4 ++-- .../Components/1_21_2/UseCooldownComponent.cs | 2 +- .../Subcomponents/1_20_6/BlockPredicateSubcomponent.cs | 6 +++--- .../Subcomponents/1_20_6/BlockSetSubcomponent.cs | 2 +- .../Subcomponents/1_20_6/PropertySubComponent.cs | 8 ++++---- .../StructuredComponents/Core/SubComponentRegistry.cs | 2 +- 17 files changed, 33 insertions(+), 33 deletions(-) diff --git a/MinecraftClient/CommandHandler/ArgumentType/BotNameArgumentType.cs b/MinecraftClient/CommandHandler/ArgumentType/BotNameArgumentType.cs index 1f49da98..b17bdf1c 100644 --- a/MinecraftClient/CommandHandler/ArgumentType/BotNameArgumentType.cs +++ b/MinecraftClient/CommandHandler/ArgumentType/BotNameArgumentType.cs @@ -17,7 +17,7 @@ namespace MinecraftClient.CommandHandler.ArgumentType public override Task ListSuggestions(CommandContext context, SuggestionsBuilder builder) { McClient? client = CmdResult.currentHandler; - if (client != null) + if (client is not null) { var botList = client.GetLoadedChatBots(); foreach (var bot in botList) diff --git a/MinecraftClient/CommandHandler/ArgumentType/HotbarSlotArgumentType.cs b/MinecraftClient/CommandHandler/ArgumentType/HotbarSlotArgumentType.cs index ebf05813..a71349b6 100644 --- a/MinecraftClient/CommandHandler/ArgumentType/HotbarSlotArgumentType.cs +++ b/MinecraftClient/CommandHandler/ArgumentType/HotbarSlotArgumentType.cs @@ -18,10 +18,10 @@ namespace MinecraftClient.CommandHandler.ArgumentType public override Task ListSuggestions(CommandContext context, SuggestionsBuilder builder) { McClient? client = CmdResult.currentHandler; - if (client != null) + if (client is not null) { Inventory.Container? inventory = client.GetInventory(0); - if (inventory != null) + if (inventory is not null) { for (int i = 1; i <= 9; ++i) { diff --git a/MinecraftClient/CommandHandler/ArgumentType/InventoryIdArgumentType.cs b/MinecraftClient/CommandHandler/ArgumentType/InventoryIdArgumentType.cs index 15164956..d485f82a 100644 --- a/MinecraftClient/CommandHandler/ArgumentType/InventoryIdArgumentType.cs +++ b/MinecraftClient/CommandHandler/ArgumentType/InventoryIdArgumentType.cs @@ -18,7 +18,7 @@ namespace MinecraftClient.CommandHandler.ArgumentType public override Task ListSuggestions(CommandContext context, SuggestionsBuilder builder) { McClient? client = CmdResult.currentHandler; - if (client != null) + if (client is not null) { var invList = client.GetInventories(); foreach (var inv in invList) diff --git a/MinecraftClient/CommandHandler/ArgumentType/InventorySlotArgumentType.cs b/MinecraftClient/CommandHandler/ArgumentType/InventorySlotArgumentType.cs index 2536aa1e..b9e01942 100644 --- a/MinecraftClient/CommandHandler/ArgumentType/InventorySlotArgumentType.cs +++ b/MinecraftClient/CommandHandler/ArgumentType/InventorySlotArgumentType.cs @@ -19,7 +19,7 @@ namespace MinecraftClient.CommandHandler.ArgumentType public override Task ListSuggestions(CommandContext context, SuggestionsBuilder builder) { McClient? client = CmdResult.currentHandler; - if (client != null && context.Nodes.Count >= 2) + if (client is not null && context.Nodes.Count >= 2) { string invName = context.Nodes[1].Range.Get(builder.Input); if (!int.TryParse(invName, out int invId)) @@ -33,11 +33,11 @@ namespace MinecraftClient.CommandHandler.ArgumentType }; Inventory.Container? inventory = client.GetInventory(invId); - if (inventory != null) + if (inventory is not null) { foreach ((int slot, Inventory.Item item) in inventory.Items) { - if (item != null && item.Count > 0) + if (item is not null && item.Count > 0) { string slotStr = slot.ToString(); if (slotStr.StartsWith(builder.RemainingLowerCase, StringComparison.InvariantCultureIgnoreCase)) diff --git a/MinecraftClient/CommandHandler/ArgumentType/MapBotMapIdArgumentType.cs b/MinecraftClient/CommandHandler/ArgumentType/MapBotMapIdArgumentType.cs index bd1ffee6..7b8b9b5d 100644 --- a/MinecraftClient/CommandHandler/ArgumentType/MapBotMapIdArgumentType.cs +++ b/MinecraftClient/CommandHandler/ArgumentType/MapBotMapIdArgumentType.cs @@ -19,10 +19,10 @@ namespace MinecraftClient.CommandHandler.ArgumentType public override Task ListSuggestions(CommandContext context, SuggestionsBuilder builder) { McClient? client = CmdResult.currentHandler; - if (client != null) + if (client is not null) { var bot = (Map?)client.GetLoadedChatBots().Find(bot => bot.GetType().Name == "Map"); - if (bot != null) + if (bot is not null) { var mapList = bot.cachedMaps; foreach (var map in mapList) diff --git a/MinecraftClient/CommandHandler/ArgumentType/PlayerNameArgumentType.cs b/MinecraftClient/CommandHandler/ArgumentType/PlayerNameArgumentType.cs index b5092251..4a622924 100644 --- a/MinecraftClient/CommandHandler/ArgumentType/PlayerNameArgumentType.cs +++ b/MinecraftClient/CommandHandler/ArgumentType/PlayerNameArgumentType.cs @@ -19,7 +19,7 @@ namespace MinecraftClient.CommandHandler.ArgumentType public override Task ListSuggestions(CommandContext context, SuggestionsBuilder builder) { McClient? client = CmdResult.currentHandler; - if (client != null) + if (client is not null) { var entityList = client.GetEntities().Values.ToList(); foreach (var entity in entityList) diff --git a/MinecraftClient/Protocol/Handlers/Packet/s2c/DeclareCommands.cs b/MinecraftClient/Protocol/Handlers/Packet/s2c/DeclareCommands.cs index 6883b6cf..b4e58cc2 100644 --- a/MinecraftClient/Protocol/Handlers/Packet/s2c/DeclareCommands.cs +++ b/MinecraftClient/Protocol/Handlers/Packet/s2c/DeclareCommands.cs @@ -235,7 +235,7 @@ namespace MinecraftClient.Protocol.Handlers.packet.s2c return false; List> currentArguments = signedArguments; - if (signedCapture != null) + if (signedCapture is not null) { currentArguments = new List>(signedArguments.Count + 1); currentArguments.AddRange(signedArguments); @@ -317,7 +317,7 @@ namespace MinecraftClient.Protocol.Handlers.packet.s2c case CommandNodeKind.Literal: return TryConsumeLiteral(command, position, node.Name!, out nextPosition); case CommandNodeKind.Argument: - if (node.Argument == null || !TryConsumeArgument(command, position, node.Argument.Value, out nextPosition)) + if (node.Argument is null || !TryConsumeArgument(command, position, node.Argument.Value, out nextPosition)) return false; if (node.Argument.Value.IsSigned) @@ -585,7 +585,7 @@ namespace MinecraftClient.Protocol.Handlers.packet.s2c }; } - if (name == null) + if (name is null) { layout = s_unknownLegacyArgumentType; return true; diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BundleContentsComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BundleContentsComponent.cs index 5c5044f7..09f6d7a9 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BundleContentsComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BundleContentsComponent.cs @@ -17,7 +17,7 @@ public class BundleContentsComponent(DataTypes dataTypes, ItemPalette itemPalett for (var i = 0; i < count; i++) { var item = dataTypes.ReadNextItemSlot(data, itemPalette); - if (item != null) + if (item is not null) Items.Add(item); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ChargedProjectilesComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ChargedProjectilesComponent.cs index 7305ee8c..ecbf18da 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ChargedProjectilesComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ChargedProjectilesComponent.cs @@ -17,7 +17,7 @@ public class ChargedProjectilesComponent(DataTypes dataTypes, ItemPalette itemPa for (var i = 0; i < count; i++) { var item = dataTypes.ReadNextItemSlot(data, itemPalette); - if (item != null) + if (item is not null) Items.Add(item); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/ConsumableComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/ConsumableComponent.cs index ad931c61..cd85f621 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/ConsumableComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/ConsumableComponent.cs @@ -114,7 +114,7 @@ public class ConsumableComponent(DataTypes dataTypes, ItemPalette itemPalette, S var data = new List(); data.AddRange(DataTypes.GetFloat(ConsumeSeconds)); data.AddRange(DataTypes.GetVarInt(Animation)); - if (Sound != null) data.AddRange(Sound.Serialize()); + if (Sound is not null) data.AddRange(Sound.Serialize()); data.AddRange(DataTypes.GetBool(HasConsumeParticles)); data.AddRange(DataTypes.GetVarInt(Effects.Count)); foreach (var effect in Effects) diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/EquippableComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/EquippableComponent.cs index c63e3f4d..a71e5197 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/EquippableComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/EquippableComponent.cs @@ -61,25 +61,25 @@ public class EquippableComponent(DataTypes dataTypes, ItemPalette itemPalette, S { var data = new List(); data.AddRange(DataTypes.GetVarInt(Slot)); - if (EquipSound != null) data.AddRange(EquipSound.Serialize()); + if (EquipSound is not null) data.AddRange(EquipSound.Serialize()); data.AddRange(DataTypes.GetBool(HasModel)); - if (HasModel && Model != null) + if (HasModel && Model is not null) data.AddRange(DataTypes.GetString(Model)); data.AddRange(DataTypes.GetBool(HasCameraOverlay)); - if (HasCameraOverlay && CameraOverlay != null) + if (HasCameraOverlay && CameraOverlay is not null) data.AddRange(DataTypes.GetString(CameraOverlay)); data.AddRange(DataTypes.GetBool(HasAllowedEntities)); if (HasAllowedEntities) { data.AddRange(DataTypes.GetVarInt(AllowedEntitiesType)); - if (AllowedEntitiesType == 0 && AllowedEntitiesTag != null) + if (AllowedEntitiesType == 0 && AllowedEntitiesTag is not null) { data.AddRange(DataTypes.GetString(AllowedEntitiesTag)); } - else if (AllowedEntitiesIds != null) + else if (AllowedEntitiesIds is not null) { foreach (var id in AllowedEntitiesIds) data.AddRange(DataTypes.GetVarInt(id)); diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/RepairableComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/RepairableComponent.cs index 08dcb91c..dcdc36ff 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/RepairableComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/RepairableComponent.cs @@ -30,11 +30,11 @@ public class RepairableComponent(DataTypes dataTypes, ItemPalette itemPalette, S { var data = new List(); data.AddRange(DataTypes.GetVarInt(Type)); - if (Type == 0 && TagName != null) + if (Type == 0 && TagName is not null) { data.AddRange(DataTypes.GetString(TagName)); } - else if (ItemIds != null) + else if (ItemIds is not null) { foreach (var id in ItemIds) data.AddRange(DataTypes.GetVarInt(id)); diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/UseCooldownComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/UseCooldownComponent.cs index 60f175c6..620deb1e 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/UseCooldownComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/UseCooldownComponent.cs @@ -24,7 +24,7 @@ public class UseCooldownComponent(DataTypes dataTypes, ItemPalette itemPalette, var data = new List(); data.AddRange(DataTypes.GetFloat(Seconds)); data.AddRange(DataTypes.GetBool(HasCooldownGroup)); - if (HasCooldownGroup && CooldownGroup != null) + if (HasCooldownGroup && CooldownGroup is not null) data.AddRange(DataTypes.GetString(CooldownGroup)); return new Queue(data); } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockPredicateSubcomponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockPredicateSubcomponent.cs index c8bf2369..05e0d6d2 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockPredicateSubcomponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockPredicateSubcomponent.cs @@ -44,7 +44,7 @@ public class BlockPredicateSubcomponent(DataTypes dataTypes, SubComponentRegistr data.AddRange(DataTypes.GetBool(HasBlocks)); if (HasBlocks) { - if(BlockSet == null) + if(BlockSet is null) throw new ArgumentNullException($"Can not serialize a BlockPredicate when the BlockSet is empty but HasBlocks is true!"); data.AddRange(BlockSet.Serialize()); @@ -54,7 +54,7 @@ public class BlockPredicateSubcomponent(DataTypes dataTypes, SubComponentRegistr data.AddRange(DataTypes.GetBool(HasProperities)); if (HasProperities) { - if(Properties == null || Properties.Count == 0) + if(Properties is null || Properties.Count == 0) throw new ArgumentNullException($"Can not serialize a BlockPredicate when the Properties is empty but HasProperties is true!"); data.AddRange(DataTypes.GetVarInt(Properties.Count)); @@ -66,7 +66,7 @@ public class BlockPredicateSubcomponent(DataTypes dataTypes, SubComponentRegistr data.AddRange(DataTypes.GetBool(HasNbt)); if (HasNbt) { - if(Nbt == null) + if(Nbt is null) throw new ArgumentNullException($"Can not serialize a BlockPredicate when the Nbt is empty but HasNbt is true!"); data.AddRange(DataTypes.GetNbt(Nbt)); diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockSetSubcomponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockSetSubcomponent.cs index dbc7c40a..4f6e01a7 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockSetSubcomponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockSetSubcomponent.cs @@ -39,7 +39,7 @@ public class BlockSetSubcomponent(DataTypes dataTypes, SubComponentRegistry subC if (Type == 0) return new Queue(data); - if(BlockIds == null || BlockIds.Count == 0) + if(BlockIds is null || BlockIds.Count == 0) throw new ArgumentNullException($"Can not serialize an empty list of Block IDs in a Block Set when the type is not 0!"); for(var i = 0; i < Type - 1; i++) diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PropertySubComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PropertySubComponent.cs index 6170dffa..d35de380 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PropertySubComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PropertySubComponent.cs @@ -47,12 +47,12 @@ public class PropertySubComponent(DataTypes dataTypes, SubComponentRegistry subC } else { - data.AddRange(DataTypes.GetBool(MinValue != null)); - if (MinValue != null) + data.AddRange(DataTypes.GetBool(MinValue is not null)); + if (MinValue is not null) data.AddRange(DataTypes.GetString(MinValue)); - data.AddRange(DataTypes.GetBool(MaxValue != null)); - if (MaxValue != null) + data.AddRange(DataTypes.GetBool(MaxValue is not null)); + if (MaxValue is not null) data.AddRange(DataTypes.GetString(MaxValue)); } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Core/SubComponentRegistry.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Core/SubComponentRegistry.cs index 49665709..4a991fd7 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Core/SubComponentRegistry.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Core/SubComponentRegistry.cs @@ -31,7 +31,7 @@ public abstract class SubComponentRegistry(DataTypes dataTypes) var parseMethod = instance.GetType().GetMethod("Parse", BindingFlags.Instance | BindingFlags.NonPublic); - if (parseMethod == null) + if (parseMethod is null) throw new InvalidOperationException($"Sub component parser type {subComponentParserType.Name} does not have a Parse method."); parseMethod.Invoke(instance, new object[] { data }); From 640a4e39b72c248a989bd2cb25cddbc074a3903f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Mar 2026 01:16:05 +0000 Subject: [PATCH 10/13] Fix CS9107 warnings: use base class properties instead of captured primary constructor parameters Replace lowercase primary constructor parameter references (dataTypes., subComponentRegistry., itemPalette.) with PascalCase base class property references (DataTypes., SubComponentRegistry., ItemPalette.) in method bodies of all StructuredComponent and SubComponent subclasses. This eliminates CS9107 warnings where subclass primary constructor parameters shadow the base class properties they are assigned to. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../1_20_6/AttributeModifiersComponent.cs | 6 +-- .../1_20_6/BannerPatternsComponent.cs | 10 ++-- .../Components/1_20_6/BaseColorComponent.cs | 2 +- .../Components/1_20_6/BeesComponent.cs | 4 +- .../Components/1_20_6/BlockStateComponent.cs | 4 +- .../1_20_6/BundleContentsComponent.cs | 4 +- .../Components/1_20_6/CanBreakComponent.cs | 6 +-- .../Components/1_20_6/CanPlaceOnComponent.cs | 6 +-- .../1_20_6/ChargedProjectilesComponent.cs | 4 +- .../Components/1_20_6/ContainerComponent.cs | 4 +- .../1_20_6/ContainerLootComponent.cs | 2 +- .../Components/1_20_6/CustomDataComponent.cs | 2 +- .../1_20_6/CustomModelDataComponent.cs | 2 +- .../Components/1_20_6/CustomNameComponent.cs | 2 +- .../Components/1_20_6/DamageComponent.cs | 2 +- .../1_20_6/DebugStickStateComponent.cs | 2 +- .../Components/1_20_6/DyeColorComponent.cs | 4 +- .../EnchantmentGlintOverrideComponent.cs | 2 +- .../1_20_6/EnchantmentsComponent.cs | 8 ++-- .../Components/1_20_6/EntityDataComponent.cs | 2 +- .../1_20_6/FireworkExplosionComponent.cs | 2 +- .../Components/1_20_6/FireworksComponent.cs | 6 +-- .../1_20_6/FoodComponentComponent.cs | 12 ++--- .../Components/1_20_6/InstrumentComponent.cs | 14 +++--- .../1_20_6/IntangibleProjectileComponent.cs | 2 +- .../Components/1_20_6/ItemNameComponent.cs | 2 +- .../Components/1_20_6/LockComponent.cs | 2 +- .../1_20_6/LodestoneTrackerComponent.cs | 8 ++-- .../Components/1_20_6/LoreComponent.cs | 4 +- .../Components/1_20_6/MapColorComponent.cs | 2 +- .../1_20_6/MapDecorationsComponent.cs | 2 +- .../Components/1_20_6/MapIdComponent.cs | 2 +- .../1_20_6/MapPostProcessingComponent.cs | 2 +- .../Components/1_20_6/MaxDamageComponent.cs | 2 +- .../1_20_6/MaxStackSizeComponent.cs | 2 +- .../1_20_6/NoteBlockSoundComponent.cs | 2 +- .../1_20_6/OmniousBottleAmplifierComponent.cs | 2 +- .../1_20_6/PotDecorationsComponent.cs | 4 +- .../1_20_6/PotionContentsComponent.cs | 12 ++--- .../Components/1_20_6/ProfileComponent.cs | 48 +++++++++---------- .../Components/1_20_6/RarityComponent.cs | 2 +- .../Components/1_20_6/RecipesComponent.cs | 2 +- .../Components/1_20_6/RepairCostComponent.cs | 2 +- .../1_20_6/SuspiciousStewEffectsComponent.cs | 4 +- .../Components/1_20_6/ToolComponent.cs | 8 ++-- .../Components/1_20_6/TrimComponent.cs | 28 +++++------ .../Components/1_20_6/UnbreakableComponent.cs | 2 +- .../1_20_6/WritableBlookContentComponent.cs | 8 ++-- .../1_20_6/WrittenBlookContentComponent.cs | 20 ++++---- .../1_21/JukeBoxPlayableComponent.cs | 16 +++---- .../1_21_11/AttackRangeComponent.cs | 12 ++--- .../1_21_11/KineticWeaponComponent.cs | 26 +++++----- .../1_21_11/PiercingWeaponComponent.cs | 14 +++--- .../1_21_11/RegistryEitherHolderComponent.cs | 6 +-- .../1_21_11/SwingAnimationComponent.cs | 4 +- .../Components/1_21_11/UseEffectsComponent.cs | 6 +-- .../Components/1_21_2/ConsumableComponent.cs | 40 ++++++++-------- .../1_21_2/DamageResistantComponent.cs | 2 +- .../1_21_2/DeathProtectionComponent.cs | 32 ++++++------- .../Components/1_21_2/EnchantableComponent.cs | 2 +- .../Components/1_21_2/EquippableComponent.cs | 26 +++++----- .../Components/1_21_2/FoodComponent1212.cs | 6 +-- .../Components/1_21_2/ItemModelComponent.cs | 2 +- .../Components/1_21_2/RepairableComponent.cs | 6 +-- .../1_21_2/TooltipStyleComponent.cs | 2 +- .../Components/1_21_2/UseCooldownComponent.cs | 6 +-- .../1_21_2/UseRemainderComponent.cs | 4 +- .../1_21_5/BlocksAttacksComponent.cs | 42 ++++++++-------- .../1_21_5/EitherHolderComponent.cs | 6 +-- .../1_21_5/EnchantmentsComponent1215.cs | 6 +-- .../1_21_5/InstrumentComponent1215.cs | 20 ++++---- .../1_21_5/PaintingVariantHolderComponent.cs | 16 +++---- .../1_21_5/PotionDurationScaleComponent.cs | 2 +- .../1_21_5/ProvidesBannerPatternsComponent.cs | 2 +- .../1_21_5/ProvidesTrimMaterialComponent.cs | 16 +++---- .../1_21_5/SoundEventHolderComponent.cs | 8 ++-- .../1_21_5/TooltipDisplayComponent.cs | 6 +-- .../Components/1_21_5/VarIntComponent.cs | 2 +- .../Components/1_21_5/WeaponComponent.cs | 4 +- .../1_20_6/AttributeSubComponent.cs | 12 ++--- .../1_20_6/BlockPredicateSubcomponent.cs | 14 +++--- .../1_20_6/BlockSetSubcomponent.cs | 4 +- .../1_20_6/DetailsSubComponent.cs | 14 +++--- .../1_20_6/EffectSubComponent.cs | 4 +- .../1_20_6/FireworkExplosionSubComponent.cs | 14 +++--- .../1_20_6/PotionEffectSubComponent.cs | 4 +- .../1_20_6/PropertySubComponent.cs | 10 ++-- .../Subcomponents/1_20_6/RuleSubComponent.cs | 10 ++-- .../1_21/AttributeSubComponent121.cs | 10 ++-- .../1_21/SoundEventSubComponent.cs | 8 ++-- 90 files changed, 366 insertions(+), 366 deletions(-) diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/AttributeModifiersComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/AttributeModifiersComponent.cs index 3cac3667..b458b786 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/AttributeModifiersComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/AttributeModifiersComponent.cs @@ -15,12 +15,12 @@ public class AttributeModifiersComponent(DataTypes dataTypes, ItemPalette itemPa public override void Parse(Queue data) { - NumberOfAttributes = dataTypes.ReadNextVarInt(data); + NumberOfAttributes = DataTypes.ReadNextVarInt(data); for (var i = 0; i < NumberOfAttributes; i++) - Attributes.Add(subComponentRegistry.ParseSubComponent(SubComponents.Attribute, data)); + Attributes.Add(SubComponentRegistry.ParseSubComponent(SubComponents.Attribute, data)); - ShowInTooltip = dataTypes.ReadNextBool(data); + ShowInTooltip = DataTypes.ReadNextBool(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BannerPatternsComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BannerPatternsComponent.cs index 82df01c9..6a69bc79 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BannerPatternsComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BannerPatternsComponent.cs @@ -13,17 +13,17 @@ public class BannerPatternsComponent(DataTypes dataTypes, ItemPalette itemPalett public override void Parse(Queue data) { - NumberOfLayers = dataTypes.ReadNextVarInt(data); + NumberOfLayers = DataTypes.ReadNextVarInt(data); for (var i = 0; i < NumberOfLayers; i++) { - var patternType = dataTypes.ReadNextVarInt(data); + var patternType = DataTypes.ReadNextVarInt(data); Layers.Add(new BannerLayer { PatternType = patternType, - AssetId = patternType == 0 ? dataTypes.ReadNextString(data) : null, - TranslationKey = patternType == 0 ? dataTypes.ReadNextString(data) : null, - DyeColor = dataTypes.ReadNextVarInt(data) + AssetId = patternType == 0 ? DataTypes.ReadNextString(data) : null, + TranslationKey = patternType == 0 ? DataTypes.ReadNextString(data) : null, + DyeColor = DataTypes.ReadNextVarInt(data) }); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BaseColorComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BaseColorComponent.cs index 0f2d9620..417c658c 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BaseColorComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BaseColorComponent.cs @@ -11,7 +11,7 @@ public class BaseColorComponent(DataTypes dataTypes, ItemPalette itemPalette, Su public override void Parse(Queue data) { - DyeColor = dataTypes.ReadNextVarInt(data); + DyeColor = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BeesComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BeesComponent.cs index f0630fe1..cbe0424b 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BeesComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BeesComponent.cs @@ -14,10 +14,10 @@ public class BeesComponent(DataTypes dataTypes, ItemPalette itemPalette, SubComp public override void Parse(Queue data) { - NumberOfBees = dataTypes.ReadNextVarInt(data); + NumberOfBees = DataTypes.ReadNextVarInt(data); for (var i = 0; i < NumberOfBees; i++) { - Bees.Add(new Bee(dataTypes.ReadNextNbt(data), dataTypes.ReadNextVarInt(data), dataTypes.ReadNextVarInt(data))); + Bees.Add(new Bee(DataTypes.ReadNextNbt(data), DataTypes.ReadNextVarInt(data), DataTypes.ReadNextVarInt(data))); } } 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 8037d07c..c36bb10c 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BlockStateComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BlockStateComponent.cs @@ -11,9 +11,9 @@ public class BlockStateComponent(DataTypes dataTypes, ItemPalette itemPalette, S public override void Parse(Queue data) { - var count = dataTypes.ReadNextVarInt(data); + var count = DataTypes.ReadNextVarInt(data); for(var i = 0; i < count; i++) - Properties.Add((dataTypes.ReadNextString(data), dataTypes.ReadNextString(data))); + Properties.Add((DataTypes.ReadNextString(data), DataTypes.ReadNextString(data))); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BundleContentsComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BundleContentsComponent.cs index 09f6d7a9..4ff4c4ff 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BundleContentsComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BundleContentsComponent.cs @@ -12,11 +12,11 @@ public class BundleContentsComponent(DataTypes dataTypes, ItemPalette itemPalett public override void Parse(Queue data) { - var count = dataTypes.ReadNextVarInt(data); + var count = DataTypes.ReadNextVarInt(data); for (var i = 0; i < count; i++) { - var item = dataTypes.ReadNextItemSlot(data, itemPalette); + var item = DataTypes.ReadNextItemSlot(data, itemPalette); if (item is not null) Items.Add(item); } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CanBreakComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CanBreakComponent.cs index 06ca3a7b..d561788b 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CanBreakComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CanBreakComponent.cs @@ -16,12 +16,12 @@ public class CanBreakComponent(DataTypes dataTypes, ItemPalette itemPalette, Sub public override void Parse(Queue data) { - NumberOfPredicates = dataTypes.ReadNextVarInt(data); + NumberOfPredicates = DataTypes.ReadNextVarInt(data); for (var i = 0; i < NumberOfPredicates; i++) - BlockPredicates.Add((BlockPredicateSubcomponent)subComponentRegistry.ParseSubComponent(SubComponents.BlockPredicate, data)); + BlockPredicates.Add((BlockPredicateSubcomponent)SubComponentRegistry.ParseSubComponent(SubComponents.BlockPredicate, data)); - ShowInTooltip = dataTypes.ReadNextBool(data); + ShowInTooltip = DataTypes.ReadNextBool(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CanPlaceOnComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CanPlaceOnComponent.cs index 581c089f..2a15d58d 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CanPlaceOnComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CanPlaceOnComponent.cs @@ -16,12 +16,12 @@ public class CanPlaceOnComponent(DataTypes dataTypes, ItemPalette itemPalette, S public override void Parse(Queue data) { - NumberOfPredicates = dataTypes.ReadNextVarInt(data); + NumberOfPredicates = DataTypes.ReadNextVarInt(data); for (var i = 0; i < NumberOfPredicates; i++) - BlockPredicates.Add((BlockPredicateSubcomponent)subComponentRegistry.ParseSubComponent(SubComponents.BlockPredicate, data)); + BlockPredicates.Add((BlockPredicateSubcomponent)SubComponentRegistry.ParseSubComponent(SubComponents.BlockPredicate, data)); - ShowInTooltip = dataTypes.ReadNextBool(data); + ShowInTooltip = DataTypes.ReadNextBool(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ChargedProjectilesComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ChargedProjectilesComponent.cs index ecbf18da..06b5904e 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ChargedProjectilesComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ChargedProjectilesComponent.cs @@ -12,11 +12,11 @@ public class ChargedProjectilesComponent(DataTypes dataTypes, ItemPalette itemPa public override void Parse(Queue data) { - var count = dataTypes.ReadNextVarInt(data); + var count = DataTypes.ReadNextVarInt(data); for (var i = 0; i < count; i++) { - var item = dataTypes.ReadNextItemSlot(data, itemPalette); + var item = DataTypes.ReadNextItemSlot(data, itemPalette); if (item is not null) Items.Add(item); } 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 c132e06f..61428b36 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ContainerComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ContainerComponent.cs @@ -12,9 +12,9 @@ public class ContainerComponent(DataTypes dataTypes, ItemPalette itemPalette, Su public override void Parse(Queue data) { - var count = dataTypes.ReadNextVarInt(data); + var count = DataTypes.ReadNextVarInt(data); for (var i = 0; i < count; i++) - Items.Add(dataTypes.ReadNextItemSlot(data, ItemPalette)); + Items.Add(DataTypes.ReadNextItemSlot(data, ItemPalette)); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ContainerLootComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ContainerLootComponent.cs index d0f951ae..a1ebfa6c 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ContainerLootComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ContainerLootComponent.cs @@ -11,7 +11,7 @@ public class ContainerLootComponent(DataTypes dataTypes, ItemPalette itemPalette public override void Parse(Queue data) { - Nbt = dataTypes.ReadNextNbt(data); + Nbt = DataTypes.ReadNextNbt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CustomDataComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CustomDataComponent.cs index 22b22b70..4abf1782 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CustomDataComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CustomDataComponent.cs @@ -11,7 +11,7 @@ public class CustomDataComponent(DataTypes dataTypes, ItemPalette itemPalette, S public override void Parse(Queue data) { - Nbt = dataTypes.ReadNextNbt(data); + Nbt = DataTypes.ReadNextNbt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CustomModelDataComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CustomModelDataComponent.cs index e8c05528..03fabecd 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CustomModelDataComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CustomModelDataComponent.cs @@ -10,7 +10,7 @@ public class CustomModelDataComponent(DataTypes dataTypes, ItemPalette itemPalet public override void Parse(Queue data) { - Value = dataTypes.ReadNextVarInt(data); + Value = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CustomNameComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CustomNameComponent.cs index f4f2fc92..140b60d5 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CustomNameComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/CustomNameComponent.cs @@ -13,7 +13,7 @@ public class CustomNameComponent(DataTypes dataTypes, ItemPalette itemPalette, S public override void Parse(Queue data) { - CustomNameNbt = dataTypes.ReadNextNbt(data); + CustomNameNbt = DataTypes.ReadNextNbt(data); CustomName = ChatParser.ParseText(CustomNameNbt); } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/DamageComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/DamageComponent.cs index 9ac84800..3c377177 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/DamageComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/DamageComponent.cs @@ -11,7 +11,7 @@ public class DamageComponent(DataTypes dataTypes, ItemPalette itemPalette, SubCo public override void Parse(Queue data) { - Damage = dataTypes.ReadNextVarInt(data); + Damage = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/DebugStickStateComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/DebugStickStateComponent.cs index 7cfc68e4..3d2eba6d 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/DebugStickStateComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/DebugStickStateComponent.cs @@ -11,7 +11,7 @@ public class DebugStickStateComponent(DataTypes dataTypes, ItemPalette itemPalet public override void Parse(Queue data) { - Nbt = dataTypes.ReadNextNbt(data); + Nbt = DataTypes.ReadNextNbt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/DyeColorComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/DyeColorComponent.cs index fc6de3d0..deb3f584 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/DyeColorComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/DyeColorComponent.cs @@ -12,8 +12,8 @@ public class DyeColorComponent(DataTypes dataTypes, ItemPalette itemPalette, Sub public override void Parse(Queue data) { - Color = dataTypes.ReadNextInt(data); - ShowInTooltip = dataTypes.ReadNextBool(data); + Color = DataTypes.ReadNextInt(data); + ShowInTooltip = DataTypes.ReadNextBool(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/EnchantmentGlintOverrideComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/EnchantmentGlintOverrideComponent.cs index af5ff63c..af8032fc 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/EnchantmentGlintOverrideComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/EnchantmentGlintOverrideComponent.cs @@ -11,7 +11,7 @@ public class EnchantmentGlintOverrideComponent(DataTypes dataTypes, ItemPalette public override void Parse(Queue data) { - HasGlint = dataTypes.ReadNextBool(data); + HasGlint = DataTypes.ReadNextBool(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/EnchantmentsComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/EnchantmentsComponent.cs index bfc942a1..08205408 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/EnchantmentsComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/EnchantmentsComponent.cs @@ -14,16 +14,16 @@ public class EnchantmentsComponent(DataTypes dataTypes, ItemPalette itemPalette, public override void Parse(Queue data) { - NumberOfEnchantments = dataTypes.ReadNextVarInt(data); + NumberOfEnchantments = DataTypes.ReadNextVarInt(data); for (var i = 0; i < NumberOfEnchantments; i++) { - var registryId = dataTypes.ReadNextVarInt(data); - var level = dataTypes.ReadNextVarInt(data); + var registryId = DataTypes.ReadNextVarInt(data); + var level = DataTypes.ReadNextVarInt(data); Enchantments.Add(new Enchantment(EnchantmentMapping.GetEnchantmentByRegistryId1206(registryId), level)); } - ShowTooltip = dataTypes.ReadNextBool(data); + ShowTooltip = DataTypes.ReadNextBool(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/EntityDataComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/EntityDataComponent.cs index a4e6ef98..a40b7bc6 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/EntityDataComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/EntityDataComponent.cs @@ -11,7 +11,7 @@ public class EntityDataComponent(DataTypes dataTypes, ItemPalette itemPalette, S public override void Parse(Queue data) { - Nbt = dataTypes.ReadNextNbt(data); + Nbt = DataTypes.ReadNextNbt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/FireworkExplosionComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/FireworkExplosionComponent.cs index eeb4e876..b85a0d93 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/FireworkExplosionComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/FireworkExplosionComponent.cs @@ -15,7 +15,7 @@ public class FireworkExplosionComponent(DataTypes dataTypes, ItemPalette itemPal public override void Parse(Queue data) { - FireworkExplosionSubComponent = (FireworkExplosionSubComponent)subComponentRegistry.ParseSubComponent(SubComponents.FireworkExplosion, data); + FireworkExplosionSubComponent = (FireworkExplosionSubComponent)SubComponentRegistry.ParseSubComponent(SubComponents.FireworkExplosion, data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/FireworksComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/FireworksComponent.cs index c670e95d..46fdfacd 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/FireworksComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/FireworksComponent.cs @@ -19,14 +19,14 @@ public class FireworksComponent(DataTypes dataTypes, ItemPalette itemPalette, Su public override void Parse(Queue data) { - FlightDuration = dataTypes.ReadNextVarInt(data); - NumberOfExplosions = dataTypes.ReadNextVarInt(data); + FlightDuration = DataTypes.ReadNextVarInt(data); + NumberOfExplosions = DataTypes.ReadNextVarInt(data); if (NumberOfExplosions > 0) { for(var i = 0; i < NumberOfExplosions; i++) Explosions.Add( - (FireworkExplosionSubComponent)subComponentRegistry.ParseSubComponent(SubComponents.FireworkExplosion, + (FireworkExplosionSubComponent)SubComponentRegistry.ParseSubComponent(SubComponents.FireworkExplosion, data)); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/FoodComponentComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/FoodComponentComponent.cs index aac861c2..276de892 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/FoodComponentComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/FoodComponentComponent.cs @@ -18,14 +18,14 @@ public class FoodComponentComponent(DataTypes dataTypes, ItemPalette itemPalette public override void Parse(Queue data) { - Nutrition = dataTypes.ReadNextVarInt(data); - Saturation = dataTypes.ReadNextFloat(data); - CanAlwaysEat = dataTypes.ReadNextBool(data); - SecondsToEat = dataTypes.ReadNextFloat(data); - var numberOfEffects = dataTypes.ReadNextVarInt(data); + Nutrition = DataTypes.ReadNextVarInt(data); + Saturation = DataTypes.ReadNextFloat(data); + CanAlwaysEat = DataTypes.ReadNextBool(data); + SecondsToEat = DataTypes.ReadNextFloat(data); + var numberOfEffects = DataTypes.ReadNextVarInt(data); for(var i = 0; i < numberOfEffects; i++) - Effects.Add((EffectSubComponent)subComponentRegistry.ParseSubComponent(SubComponents.Effect, data)); + Effects.Add((EffectSubComponent)SubComponentRegistry.ParseSubComponent(SubComponents.Effect, data)); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/InstrumentComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/InstrumentComponent.cs index ccfcf915..8c0895eb 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/InstrumentComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/InstrumentComponent.cs @@ -23,22 +23,22 @@ public class InstrumentComponent(DataTypes dataTypes, ItemPalette itemPalette, S public override void Parse(Queue data) { - InstrumentHolderId = dataTypes.ReadNextVarInt(data); + InstrumentHolderId = DataTypes.ReadNextVarInt(data); if (InstrumentHolderId == 0) { - SoundEventHolderId = dataTypes.ReadNextVarInt(data); + SoundEventHolderId = DataTypes.ReadNextVarInt(data); if (SoundEventHolderId == 0) { - SoundLocation = dataTypes.ReadNextString(data); - HasFixedRange = dataTypes.ReadNextBool(data); + SoundLocation = DataTypes.ReadNextString(data); + HasFixedRange = DataTypes.ReadNextBool(data); if (HasFixedRange) - FixedRange = dataTypes.ReadNextFloat(data); + FixedRange = DataTypes.ReadNextFloat(data); } - UseDuration = dataTypes.ReadNextVarInt(data); - Range = dataTypes.ReadNextFloat(data); + UseDuration = DataTypes.ReadNextVarInt(data); + Range = DataTypes.ReadNextFloat(data); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/IntangibleProjectileComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/IntangibleProjectileComponent.cs index cba25e6e..5006fad0 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/IntangibleProjectileComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/IntangibleProjectileComponent.cs @@ -11,7 +11,7 @@ public class IntangibleProjectileComponent(DataTypes dataTypes, ItemPalette item public override void Parse(Queue data) { - Nbt = dataTypes.ReadNextNbt(data); + Nbt = DataTypes.ReadNextNbt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ItemNameComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ItemNameComponent.cs index 6fc8ae3e..3aa26373 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ItemNameComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ItemNameComponent.cs @@ -13,7 +13,7 @@ public class ItemNameComponent(DataTypes dataTypes, ItemPalette itemPalette, Sub public override void Parse(Queue data) { - ItemNameNbt = dataTypes.ReadNextNbt(data); + ItemNameNbt = DataTypes.ReadNextNbt(data); ItemName = ChatParser.ParseText(ItemNameNbt); } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/LockComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/LockComponent.cs index c9ebe0b0..cc7b924c 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/LockComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/LockComponent.cs @@ -11,7 +11,7 @@ public class LockComponent(DataTypes dataTypes, ItemPalette itemPalette, SubComp public override void Parse(Queue data) { - Nbt = dataTypes.ReadNextNbt(data); + Nbt = DataTypes.ReadNextNbt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/LodestoneTrackerComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/LodestoneTrackerComponent.cs index 702b8763..b1cdda3a 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/LodestoneTrackerComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/LodestoneTrackerComponent.cs @@ -15,15 +15,15 @@ public class LodestoneTrackerComponent(DataTypes dataTypes, ItemPalette itemPale public override void Parse(Queue data) { - HasGlobalPosition = dataTypes.ReadNextBool(data); + HasGlobalPosition = DataTypes.ReadNextBool(data); if (HasGlobalPosition) { - Dimension = dataTypes.ReadNextString(data); - Position = dataTypes.ReadNextLocation(data); + Dimension = DataTypes.ReadNextString(data); + Position = DataTypes.ReadNextLocation(data); } - Tracked = dataTypes.ReadNextBool(data); + Tracked = DataTypes.ReadNextBool(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/LoreComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/LoreComponent.cs index aaca1b72..2c5219f9 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/LoreComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/LoreComponent.cs @@ -14,13 +14,13 @@ public class LoreNameComponent1206(DataTypes dataTypes, ItemPalette itemPalette, public override void Parse(Queue data) { - NumberOfLines = dataTypes.ReadNextVarInt(data); + NumberOfLines = DataTypes.ReadNextVarInt(data); if (NumberOfLines <= 0) return; for (var i = 0; i < NumberOfLines; i++) { - var lineNbt = dataTypes.ReadNextNbt(data); + var lineNbt = DataTypes.ReadNextNbt(data); LinesNbt.Add(lineNbt); Lines.Add(ChatParser.ParseText(lineNbt)); } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapColorComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapColorComponent.cs index 7c7e9186..af5a6989 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapColorComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapColorComponent.cs @@ -11,7 +11,7 @@ public class MapColorComponent(DataTypes dataTypes, ItemPalette itemPalette, Sub public override void Parse(Queue data) { - Id = dataTypes.ReadNextInt(data); + Id = DataTypes.ReadNextInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapDecorationsComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapDecorationsComponent.cs index c6f8f343..4c38ec50 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapDecorationsComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapDecorationsComponent.cs @@ -11,7 +11,7 @@ public class MapDecorationsComponent(DataTypes dataTypes, ItemPalette itemPalett public override void Parse(Queue data) { - Nbt = dataTypes.ReadNextNbt(data); + Nbt = DataTypes.ReadNextNbt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapIdComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapIdComponent.cs index 2df65305..88312a23 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapIdComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapIdComponent.cs @@ -11,7 +11,7 @@ public class MapIdComponent(DataTypes dataTypes, ItemPalette itemPalette, SubCom public override void Parse(Queue data) { - Id = dataTypes.ReadNextVarInt(data); + Id = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapPostProcessingComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapPostProcessingComponent.cs index 3d02a8bf..cda1ced4 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapPostProcessingComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MapPostProcessingComponent.cs @@ -11,7 +11,7 @@ public class MapPostProcessingComponent(DataTypes dataTypes, ItemPalette itemPal public override void Parse(Queue data) { - Type = dataTypes.ReadNextVarInt(data); + Type = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MaxDamageComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MaxDamageComponent.cs index 8edbd0c2..fd90e8bf 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MaxDamageComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MaxDamageComponent.cs @@ -11,7 +11,7 @@ public class MaxDamageComponent(DataTypes dataTypes, ItemPalette itemPalette, Su public override void Parse(Queue data) { - MaxDamage = dataTypes.ReadNextVarInt(data); + MaxDamage = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MaxStackSizeComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MaxStackSizeComponent.cs index 11855c6a..6bd20710 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MaxStackSizeComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/MaxStackSizeComponent.cs @@ -11,7 +11,7 @@ public class MaxStackSizeComponent(DataTypes dataTypes, ItemPalette itemPalette, public override void Parse(Queue data) { - MaxStackSize = dataTypes.ReadNextVarInt(data); + MaxStackSize = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/NoteBlockSoundComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/NoteBlockSoundComponent.cs index d4c0a157..985c7609 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/NoteBlockSoundComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/NoteBlockSoundComponent.cs @@ -11,7 +11,7 @@ public class NoteBlockSoundComponent(DataTypes dataTypes, ItemPalette itemPalett public override void Parse(Queue data) { - Identifier = dataTypes.ReadNextString(data); + Identifier = DataTypes.ReadNextString(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/OmniousBottleAmplifierComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/OmniousBottleAmplifierComponent.cs index f92a23e7..6f688b79 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/OmniousBottleAmplifierComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/OmniousBottleAmplifierComponent.cs @@ -11,7 +11,7 @@ public class OmniousBottleAmplifierComponent(DataTypes dataTypes, ItemPalette it public override void Parse(Queue data) { - Amplifier = dataTypes.ReadNextVarInt(data); + Amplifier = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() 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 0acc10e6..e7bf200e 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/PotDecorationsComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/PotDecorationsComponent.cs @@ -11,9 +11,9 @@ public class PotDecorationsComponent(DataTypes dataTypes, ItemPalette itemPalett public override void Parse(Queue data) { - var count = dataTypes.ReadNextVarInt(data); + var count = DataTypes.ReadNextVarInt(data); for(var i = 0; i < count; i++) - Items.Add(dataTypes.ReadNextVarInt(data)); + Items.Add(DataTypes.ReadNextVarInt(data)); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/PotionContentsComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/PotionContentsComponent.cs index e8b3443e..ff76f5a7 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/PotionContentsComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/PotionContentsComponent.cs @@ -17,17 +17,17 @@ public class PotionContentsComponent(DataTypes dataTypes, ItemPalette itemPalett public override void Parse(Queue data) { - HasPotionId = dataTypes.ReadNextBool(data); + HasPotionId = DataTypes.ReadNextBool(data); if (HasPotionId) - PotionId = dataTypes.ReadNextVarInt(data); + PotionId = DataTypes.ReadNextVarInt(data); - HasCustomColor = dataTypes.ReadNextBool(data); + HasCustomColor = DataTypes.ReadNextBool(data); if (HasCustomColor) - CustomColor = dataTypes.ReadNextInt(data); + CustomColor = DataTypes.ReadNextInt(data); - var numberOfEffects = dataTypes.ReadNextVarInt(data); + var numberOfEffects = DataTypes.ReadNextVarInt(data); for (var i = 0; i < numberOfEffects; i++) - Effects.Add((PotionEffectSubComponent)subComponentRegistry.ParseSubComponent(SubComponents.PotionEffect, data)); + Effects.Add((PotionEffectSubComponent)SubComponentRegistry.ParseSubComponent(SubComponents.PotionEffect, data)); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ProfileComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ProfileComponent.cs index cafacfec..d8540488 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ProfileComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ProfileComponent.cs @@ -23,7 +23,7 @@ public class ProfileComponent(DataTypes dataTypes, ItemPalette itemPalette, SubC { ResetState(); - if (dataTypes.ProtocolVersion >= Protocol18Handler.MC_1_21_9_Version) + if (DataTypes.ProtocolVersion >= Protocol18Handler.MC_1_21_9_Version) { ParseResolvableProfile(data); return; @@ -34,7 +34,7 @@ public class ProfileComponent(DataTypes dataTypes, ItemPalette itemPalette, SubC public override Queue Serialize() { - return dataTypes.ProtocolVersion >= Protocol18Handler.MC_1_21_9_Version + return DataTypes.ProtocolVersion >= Protocol18Handler.MC_1_21_9_Version ? SerializeResolvableProfile() : SerializeLegacyProfile(); } @@ -56,44 +56,44 @@ public class ProfileComponent(DataTypes dataTypes, ItemPalette itemPalette, SubC private void ParseLegacyProfile(Queue data) { - HasName = dataTypes.ReadNextBool(data); + HasName = DataTypes.ReadNextBool(data); if (HasName) - Name = dataTypes.ReadNextString(data); + Name = DataTypes.ReadNextString(data); - HasUniqueId = dataTypes.ReadNextBool(data); + HasUniqueId = DataTypes.ReadNextBool(data); if (HasUniqueId) - Uuid = dataTypes.ReadNextUUID(data); + Uuid = DataTypes.ReadNextUUID(data); - NumberOfProperties = dataTypes.ReadNextVarInt(data); + NumberOfProperties = DataTypes.ReadNextVarInt(data); ProfileProperties = ReadProfileProperties(data, NumberOfProperties); } private void ParseResolvableProfile(Queue data) { - IsFullProfile = dataTypes.ReadNextBool(data); + IsFullProfile = DataTypes.ReadNextBool(data); if (IsFullProfile) { HasUniqueId = true; - Uuid = dataTypes.ReadNextUUID(data); + Uuid = DataTypes.ReadNextUUID(data); HasName = true; - Name = dataTypes.ReadNextString(data); - NumberOfProperties = dataTypes.ReadNextVarInt(data); + Name = DataTypes.ReadNextString(data); + NumberOfProperties = DataTypes.ReadNextVarInt(data); ProfileProperties = ReadProfileProperties(data, NumberOfProperties); } else { - HasName = dataTypes.ReadNextBool(data); + HasName = DataTypes.ReadNextBool(data); if (HasName) - Name = dataTypes.ReadNextString(data); + Name = DataTypes.ReadNextString(data); - HasUniqueId = dataTypes.ReadNextBool(data); + HasUniqueId = DataTypes.ReadNextBool(data); if (HasUniqueId) - Uuid = dataTypes.ReadNextUUID(data); + Uuid = DataTypes.ReadNextUUID(data); - NumberOfProperties = dataTypes.ReadNextVarInt(data); + NumberOfProperties = DataTypes.ReadNextVarInt(data); ProfileProperties = ReadProfileProperties(data, NumberOfProperties); } @@ -101,8 +101,8 @@ public class ProfileComponent(DataTypes dataTypes, ItemPalette itemPalette, SubC CapeAssetId = ReadOptionalResourceLocation(data); ElytraAssetId = ReadOptionalResourceLocation(data); - if (dataTypes.ReadNextBool(data)) - Model = dataTypes.ReadNextBool(data) ? ProfileSkinModel.Slim : ProfileSkinModel.Wide; + if (DataTypes.ReadNextBool(data)) + Model = DataTypes.ReadNextBool(data) ? ProfileSkinModel.Slim : ProfileSkinModel.Wide; } private Queue SerializeLegacyProfile() @@ -171,7 +171,7 @@ public class ProfileComponent(DataTypes dataTypes, ItemPalette itemPalette, SubC data.AddRange(DataTypes.GetBool(Model.HasValue)); if (Model.HasValue) - data.AddRange(dataTypes.GetBool(Model.Value == ProfileSkinModel.Slim)); + data.AddRange(DataTypes.GetBool(Model.Value == ProfileSkinModel.Slim)); return new Queue(data); } @@ -181,10 +181,10 @@ public class ProfileComponent(DataTypes dataTypes, ItemPalette itemPalette, SubC var properties = new List(count); for (var i = 0; i < count; i++) { - var propertyName = dataTypes.ReadNextString(data); - var propertyValue = dataTypes.ReadNextString(data); - var hasSignature = dataTypes.ReadNextBool(data); - var signature = hasSignature ? dataTypes.ReadNextString(data) : null; + var propertyName = DataTypes.ReadNextString(data); + var propertyValue = DataTypes.ReadNextString(data); + var hasSignature = DataTypes.ReadNextBool(data); + var signature = hasSignature ? DataTypes.ReadNextString(data) : null; properties.Add(new ProfileProperty(propertyName, propertyValue, hasSignature, signature)); } @@ -211,7 +211,7 @@ public class ProfileComponent(DataTypes dataTypes, ItemPalette itemPalette, SubC private string? ReadOptionalResourceLocation(Queue data) { - return dataTypes.ReadNextBool(data) ? dataTypes.ReadNextString(data) : null; + return DataTypes.ReadNextBool(data) ? DataTypes.ReadNextString(data) : null; } private void SerializeOptionalResourceLocation(List data, string? resourceLocation) diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/RarityComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/RarityComponent.cs index 4da4cb00..2814cf2b 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/RarityComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/RarityComponent.cs @@ -12,7 +12,7 @@ public class RarityComponent(DataTypes dataTypes, ItemPalette itemPalette, SubCo public override void Parse(Queue data) { - Rarity = (ItemRarity)dataTypes.ReadNextVarInt(data); + Rarity = (ItemRarity)DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/RecipesComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/RecipesComponent.cs index a1101eca..7f95bcd0 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/RecipesComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/RecipesComponent.cs @@ -11,7 +11,7 @@ public class RecipesComponent(DataTypes dataTypes, ItemPalette itemPalette, SubC public override void Parse(Queue data) { - Nbt = dataTypes.ReadNextNbt(data); + Nbt = DataTypes.ReadNextNbt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/RepairCostComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/RepairCostComponent.cs index ccd1e2b5..b025a0a7 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/RepairCostComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/RepairCostComponent.cs @@ -11,7 +11,7 @@ public class RepairCostComponent(DataTypes dataTypes, ItemPalette itemPalette, S public override void Parse(Queue data) { - Cost = dataTypes.ReadNextVarInt(data); + Cost = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/SuspiciousStewEffectsComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/SuspiciousStewEffectsComponent.cs index a6d81d9a..d97dee90 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/SuspiciousStewEffectsComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/SuspiciousStewEffectsComponent.cs @@ -15,10 +15,10 @@ public class SuspiciousStewEffectsComponent(DataTypes dataTypes, ItemPalette ite public override void Parse(Queue data) { - NumberOfEffects = dataTypes.ReadNextVarInt(data); + NumberOfEffects = DataTypes.ReadNextVarInt(data); for (var i = 0; i < NumberOfEffects; i++) - Effects.Add(new SuspiciousStewEffect(dataTypes.ReadNextVarInt(data), dataTypes.ReadNextVarInt(data))); + Effects.Add(new SuspiciousStewEffect(DataTypes.ReadNextVarInt(data), DataTypes.ReadNextVarInt(data))); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ToolComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ToolComponent.cs index 3c09e43e..033d41bf 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ToolComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ToolComponent.cs @@ -17,13 +17,13 @@ public class ToolComponent(DataTypes dataTypes, ItemPalette itemPalette, SubComp public override void Parse(Queue data) { - NumberOfRules = dataTypes.ReadNextVarInt(data); + NumberOfRules = DataTypes.ReadNextVarInt(data); for (var i = 0; i < NumberOfRules; i++) - Rules.Add((RuleSubComponent)subComponentRegistry.ParseSubComponent(SubComponents.Rule, data)); + Rules.Add((RuleSubComponent)SubComponentRegistry.ParseSubComponent(SubComponents.Rule, data)); - DefaultMiningSpeed = dataTypes.ReadNextFloat(data); - DamagePerBlock = dataTypes.ReadNextVarInt(data); + DefaultMiningSpeed = DataTypes.ReadNextFloat(data); + DamagePerBlock = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/TrimComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/TrimComponent.cs index 374f1962..ed474825 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/TrimComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/TrimComponent.cs @@ -27,40 +27,40 @@ public class TrimComponent(DataTypes dataTypes, ItemPalette itemPalette, SubComp public override void Parse(Queue data) { - TrimMaterialType = dataTypes.ReadNextVarInt(data); + TrimMaterialType = DataTypes.ReadNextVarInt(data); if (TrimMaterialType == 0) { - AssetName = dataTypes.ReadNextString(data); - Ingredient = dataTypes.ReadNextVarInt(data); - ItemModelIndex = dataTypes.ReadNextFloat(data); - NumberOfOverrides = dataTypes.ReadNextVarInt(data); + AssetName = DataTypes.ReadNextString(data); + Ingredient = DataTypes.ReadNextVarInt(data); + ItemModelIndex = DataTypes.ReadNextFloat(data); + NumberOfOverrides = DataTypes.ReadNextVarInt(data); if (NumberOfOverrides > 0) { Overrides = []; for (var i = 0; i < NumberOfOverrides; i++) - Overrides.Add(new TrimAssetOverride(dataTypes.ReadNextVarInt(data), - dataTypes.ReadNextString(data))); + Overrides.Add(new TrimAssetOverride(DataTypes.ReadNextVarInt(data), + DataTypes.ReadNextString(data))); } - DescriptionNbt = dataTypes.ReadNextNbt(data); + DescriptionNbt = DataTypes.ReadNextNbt(data); Description = ChatParser.ParseText(DescriptionNbt); } - TrimPatternType = dataTypes.ReadNextVarInt(data); + TrimPatternType = DataTypes.ReadNextVarInt(data); if (TrimPatternType == 0) { - TrimPatternTypeAssetName = dataTypes.ReadNextString(data); - TemplateItem = dataTypes.ReadNextVarInt(data); - TrimPatternTypeDescriptionNbt = dataTypes.ReadNextNbt(data); + TrimPatternTypeAssetName = DataTypes.ReadNextString(data); + TemplateItem = DataTypes.ReadNextVarInt(data); + TrimPatternTypeDescriptionNbt = DataTypes.ReadNextNbt(data); TrimPatternTypeDescription = ChatParser.ParseText(TrimPatternTypeDescriptionNbt); - Decal = dataTypes.ReadNextBool(data); + Decal = DataTypes.ReadNextBool(data); } - ShowInTooltip = dataTypes.ReadNextBool(data); + ShowInTooltip = DataTypes.ReadNextBool(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/UnbreakableComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/UnbreakableComponent.cs index 39c19014..bfc09cda 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/UnbreakableComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/UnbreakableComponent.cs @@ -11,7 +11,7 @@ public class UnbrekableComponent1206(DataTypes dataTypes, ItemPalette itemPalett public override void Parse(Queue data) { - Unbrekable = dataTypes.ReadNextBool(data); + Unbrekable = DataTypes.ReadNextBool(data); } public override Queue Serialize() 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 e22c714a..c366e6b7 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/WritableBlookContentComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/WritableBlookContentComponent.cs @@ -12,16 +12,16 @@ public class WritableBlookContentComponent(DataTypes dataTypes, ItemPalette item public override void Parse(Queue data) { - var count = dataTypes.ReadNextVarInt(data); + var count = DataTypes.ReadNextVarInt(data); for (var i = 0; i < count; i++) { - var rawContent = dataTypes.ReadNextString(data); - var hasFilteredContent = dataTypes.ReadNextBool(data); + var rawContent = DataTypes.ReadNextString(data); + var hasFilteredContent = DataTypes.ReadNextBool(data); var filteredContent = null as string; if(hasFilteredContent) - filteredContent = dataTypes.ReadNextString(data); + filteredContent = DataTypes.ReadNextString(data); Pages.Add(new BookPage(rawContent, hasFilteredContent, filteredContent)); } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/WrittenBlookContentComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/WrittenBlookContentComponent.cs index 1f7cc905..55650913 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/WrittenBlookContentComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/WrittenBlookContentComponent.cs @@ -20,34 +20,34 @@ public class WrittenBlookContentComponent(DataTypes dataTypes, ItemPalette itemP public override void Parse(Queue data) { - RawTitle = dataTypes.ReadNextString(data); - HasFilteredTitle = dataTypes.ReadNextBool(data); + RawTitle = DataTypes.ReadNextString(data); + HasFilteredTitle = DataTypes.ReadNextBool(data); if (HasFilteredTitle) - FilteredTitle = dataTypes.ReadNextString(data); + FilteredTitle = DataTypes.ReadNextString(data); - Author = dataTypes.ReadNextString(data); - Generation = dataTypes.ReadNextVarInt(data); - NumberOfPages = dataTypes.ReadNextVarInt(data); + Author = DataTypes.ReadNextString(data); + Generation = DataTypes.ReadNextVarInt(data); + NumberOfPages = DataTypes.ReadNextVarInt(data); for (var i = 0; i < NumberOfPages; i++) { - var rawContentNbt = dataTypes.ReadNextNbt(data); + var rawContentNbt = DataTypes.ReadNextNbt(data); var rawContent = ChatParser.ParseText(rawContentNbt); - var hasFilteredContent = dataTypes.ReadNextBool(data); + var hasFilteredContent = DataTypes.ReadNextBool(data); Dictionary? filteredContentNbt = null; string? filteredContent = null; if (hasFilteredContent) { - filteredContentNbt = dataTypes.ReadNextNbt(data); + filteredContentNbt = DataTypes.ReadNextNbt(data); filteredContent = ChatParser.ParseText(filteredContentNbt); } Pages.Add(new BookPage(rawContent, hasFilteredContent, filteredContent, rawContentNbt, filteredContentNbt)); } - Resolved = dataTypes.ReadNextBool(data); + Resolved = DataTypes.ReadNextBool(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21/JukeBoxPlayableComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21/JukeBoxPlayableComponent.cs index d97b9cf8..d5f7c6f5 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21/JukeBoxPlayableComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21/JukeBoxPlayableComponent.cs @@ -21,26 +21,26 @@ public class JukeBoxPlayableComponent(DataTypes dataTypes, ItemPalette itemPalet public override void Parse(Queue data) { - DirectMode = dataTypes.ReadNextBool(data); + DirectMode = DataTypes.ReadNextBool(data); if (!DirectMode) - SongName = dataTypes.ReadNextString(data); + SongName = DataTypes.ReadNextString(data); if (DirectMode) { - SongType = dataTypes.ReadNextVarInt(data); + SongType = DataTypes.ReadNextVarInt(data); if (SongType == 0) { SoundEvent = - (SoundEventSubComponent)subComponentRegistry.ParseSubComponent(SubComponents.SoundEvent, data); - Description = dataTypes.ReadNextString(data); - Duration = dataTypes.ReadNextFloat(data); - Output = dataTypes.ReadNextVarInt(data); + (SoundEventSubComponent)SubComponentRegistry.ParseSubComponent(SubComponents.SoundEvent, data); + Description = DataTypes.ReadNextString(data); + Duration = DataTypes.ReadNextFloat(data); + Output = DataTypes.ReadNextVarInt(data); } } - ShowTooltip = dataTypes.ReadNextBool(data); + ShowTooltip = DataTypes.ReadNextBool(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/AttackRangeComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/AttackRangeComponent.cs index d4cc2dde..f06bff42 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/AttackRangeComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/AttackRangeComponent.cs @@ -16,12 +16,12 @@ public class AttackRangeComponent(DataTypes dataTypes, ItemPalette itemPalette, public override void Parse(Queue data) { - MinRange = dataTypes.ReadNextFloat(data); - MaxRange = dataTypes.ReadNextFloat(data); - MinCreativeRange = dataTypes.ReadNextFloat(data); - MaxCreativeRange = dataTypes.ReadNextFloat(data); - HitboxMargin = dataTypes.ReadNextFloat(data); - MobFactor = dataTypes.ReadNextFloat(data); + MinRange = DataTypes.ReadNextFloat(data); + MaxRange = DataTypes.ReadNextFloat(data); + MinCreativeRange = DataTypes.ReadNextFloat(data); + MaxCreativeRange = DataTypes.ReadNextFloat(data); + HitboxMargin = DataTypes.ReadNextFloat(data); + MobFactor = DataTypes.ReadNextFloat(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/KineticWeaponComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/KineticWeaponComponent.cs index 1e1da338..9bfeb283 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/KineticWeaponComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/KineticWeaponComponent.cs @@ -9,34 +9,34 @@ public class KineticWeaponComponent(DataTypes dataTypes, ItemPalette itemPalette { public override void Parse(Queue data) { - dataTypes.ReadNextVarInt(data); // contactCooldownTicks - dataTypes.ReadNextVarInt(data); // delayTicks + DataTypes.ReadNextVarInt(data); // contactCooldownTicks + DataTypes.ReadNextVarInt(data); // delayTicks ReadOptionalCondition(data); // dismountConditions ReadOptionalCondition(data); // knockbackConditions ReadOptionalCondition(data); // damageConditions - dataTypes.ReadNextFloat(data); // forwardMovement - dataTypes.ReadNextFloat(data); // damageMultiplier + DataTypes.ReadNextFloat(data); // forwardMovement + DataTypes.ReadNextFloat(data); // damageMultiplier ReadOptionalSoundEventHolder(data); // sound ReadOptionalSoundEventHolder(data); // hitSound } private void ReadOptionalCondition(Queue data) { - if (!dataTypes.ReadNextBool(data)) return; - dataTypes.ReadNextVarInt(data); // maxDurationTicks - dataTypes.ReadNextFloat(data); // minSpeed - dataTypes.ReadNextFloat(data); // minRelativeSpeed + if (!DataTypes.ReadNextBool(data)) return; + DataTypes.ReadNextVarInt(data); // maxDurationTicks + DataTypes.ReadNextFloat(data); // minSpeed + DataTypes.ReadNextFloat(data); // minRelativeSpeed } private void ReadOptionalSoundEventHolder(Queue data) { - if (!dataTypes.ReadNextBool(data)) return; - var holderId = dataTypes.ReadNextVarInt(data); + if (!DataTypes.ReadNextBool(data)) return; + var holderId = DataTypes.ReadNextVarInt(data); if (holderId == 0) { - dataTypes.ReadNextString(data); - if (dataTypes.ReadNextBool(data)) - dataTypes.ReadNextFloat(data); + DataTypes.ReadNextString(data); + if (DataTypes.ReadNextBool(data)) + DataTypes.ReadNextFloat(data); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/PiercingWeaponComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/PiercingWeaponComponent.cs index 08646c66..904044ef 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/PiercingWeaponComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/PiercingWeaponComponent.cs @@ -12,21 +12,21 @@ public class PiercingWeaponComponent(DataTypes dataTypes, ItemPalette itemPalett public override void Parse(Queue data) { - DealsKnockback = dataTypes.ReadNextBool(data); - Dismounts = dataTypes.ReadNextBool(data); + DealsKnockback = DataTypes.ReadNextBool(data); + Dismounts = DataTypes.ReadNextBool(data); ReadOptionalSoundEventHolder(data); ReadOptionalSoundEventHolder(data); } private void ReadOptionalSoundEventHolder(Queue data) { - if (!dataTypes.ReadNextBool(data)) return; - var holderId = dataTypes.ReadNextVarInt(data); + if (!DataTypes.ReadNextBool(data)) return; + var holderId = DataTypes.ReadNextVarInt(data); if (holderId == 0) { - dataTypes.ReadNextString(data); - if (dataTypes.ReadNextBool(data)) - dataTypes.ReadNextFloat(data); + DataTypes.ReadNextString(data); + if (DataTypes.ReadNextBool(data)) + DataTypes.ReadNextFloat(data); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/RegistryEitherHolderComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/RegistryEitherHolderComponent.cs index bba3d3c7..6d786f8c 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/RegistryEitherHolderComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/RegistryEitherHolderComponent.cs @@ -18,11 +18,11 @@ public class RegistryEitherHolderComponent(DataTypes dataTypes, ItemPalette item public override void Parse(Queue data) { - IsHolder = dataTypes.ReadNextBool(data); + IsHolder = DataTypes.ReadNextBool(data); if (IsHolder) - HolderId = dataTypes.ReadNextVarInt(data); + HolderId = DataTypes.ReadNextVarInt(data); else - ResourceKey = dataTypes.ReadNextString(data); + ResourceKey = DataTypes.ReadNextString(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/SwingAnimationComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/SwingAnimationComponent.cs index 7980f9f6..3ce47920 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/SwingAnimationComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/SwingAnimationComponent.cs @@ -12,8 +12,8 @@ public class SwingAnimationComponent(DataTypes dataTypes, ItemPalette itemPalett public override void Parse(Queue data) { - AnimationType = dataTypes.ReadNextVarInt(data); - Duration = dataTypes.ReadNextVarInt(data); + AnimationType = DataTypes.ReadNextVarInt(data); + Duration = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/UseEffectsComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/UseEffectsComponent.cs index 053e7d58..a4b72a9f 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/UseEffectsComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_11/UseEffectsComponent.cs @@ -13,9 +13,9 @@ public class UseEffectsComponent(DataTypes dataTypes, ItemPalette itemPalette, S public override void Parse(Queue data) { - CanSprint = dataTypes.ReadNextBool(data); - InteractVibrations = dataTypes.ReadNextBool(data); - SpeedMultiplier = dataTypes.ReadNextFloat(data); + CanSprint = DataTypes.ReadNextBool(data); + InteractVibrations = DataTypes.ReadNextBool(data); + SpeedMultiplier = DataTypes.ReadNextFloat(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/ConsumableComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/ConsumableComponent.cs index cd85f621..ac3c34ea 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/ConsumableComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/ConsumableComponent.cs @@ -17,15 +17,15 @@ public class ConsumableComponent(DataTypes dataTypes, ItemPalette itemPalette, S public override void Parse(Queue data) { - ConsumeSeconds = dataTypes.ReadNextFloat(data); - Animation = dataTypes.ReadNextVarInt(data); - Sound = (SoundEventSubComponent)subComponentRegistry.ParseSubComponent(SubComponents.SoundEvent, data); - HasConsumeParticles = dataTypes.ReadNextBool(data); + ConsumeSeconds = DataTypes.ReadNextFloat(data); + Animation = DataTypes.ReadNextVarInt(data); + Sound = (SoundEventSubComponent)SubComponentRegistry.ParseSubComponent(SubComponents.SoundEvent, data); + HasConsumeParticles = DataTypes.ReadNextBool(data); - var effectCount = dataTypes.ReadNextVarInt(data); + var effectCount = DataTypes.ReadNextVarInt(data); for (var i = 0; i < effectCount; i++) { - var effectTypeId = dataTypes.ReadNextVarInt(data); + var effectTypeId = DataTypes.ReadNextVarInt(data); var effectData = ReadConsumeEffectPayload(effectTypeId, data); Effects.Add(new ConsumeEffectData(effectTypeId, effectData)); } @@ -37,11 +37,11 @@ public class ConsumableComponent(DataTypes dataTypes, ItemPalette itemPalette, S switch (effectTypeId) { case 0: // apply_effects: List + probability(float) - var effectCount = dataTypes.ReadNextVarInt(data); + var effectCount = DataTypes.ReadNextVarInt(data); payload.AddRange(DataTypes.GetVarInt(effectCount)); for (var i = 0; i < effectCount; i++) payload.AddRange(ReadMobEffectInstance(data)); - payload.AddRange(DataTypes.GetFloat(dataTypes.ReadNextFloat(data))); + payload.AddRange(DataTypes.GetFloat(DataTypes.ReadNextFloat(data))); break; case 1: // remove_effects: HolderSet payload.AddRange(ReadHolderSet(data)); @@ -49,10 +49,10 @@ public class ConsumableComponent(DataTypes dataTypes, ItemPalette itemPalette, S case 2: // clear_all_effects: empty break; case 3: // teleport_randomly: float diameter - payload.AddRange(DataTypes.GetFloat(dataTypes.ReadNextFloat(data))); + payload.AddRange(DataTypes.GetFloat(DataTypes.ReadNextFloat(data))); break; case 4: // play_sound: Holder - var sound = (SoundEventSubComponent)subComponentRegistry.ParseSubComponent(SubComponents.SoundEvent, data); + var sound = (SoundEventSubComponent)SubComponentRegistry.ParseSubComponent(SubComponents.SoundEvent, data); payload.AddRange(sound.Serialize()); break; } @@ -62,7 +62,7 @@ public class ConsumableComponent(DataTypes dataTypes, ItemPalette itemPalette, S private byte[] ReadMobEffectInstance(Queue data) { var result = new List(); - var effectId = dataTypes.ReadNextVarInt(data); + var effectId = DataTypes.ReadNextVarInt(data); result.AddRange(DataTypes.GetVarInt(effectId)); result.AddRange(ReadMobEffectDetails(data)); return result.ToArray(); @@ -71,17 +71,17 @@ public class ConsumableComponent(DataTypes dataTypes, ItemPalette itemPalette, S private byte[] ReadMobEffectDetails(Queue data) { var result = new List(); - var amplifier = dataTypes.ReadNextVarInt(data); + var amplifier = DataTypes.ReadNextVarInt(data); result.AddRange(DataTypes.GetVarInt(amplifier)); - var duration = dataTypes.ReadNextVarInt(data); + var duration = DataTypes.ReadNextVarInt(data); result.AddRange(DataTypes.GetVarInt(duration)); - var ambient = dataTypes.ReadNextBool(data); + var ambient = DataTypes.ReadNextBool(data); result.AddRange(DataTypes.GetBool(ambient)); - var showParticles = dataTypes.ReadNextBool(data); + var showParticles = DataTypes.ReadNextBool(data); result.AddRange(DataTypes.GetBool(showParticles)); - var showIcon = dataTypes.ReadNextBool(data); + var showIcon = DataTypes.ReadNextBool(data); result.AddRange(DataTypes.GetBool(showIcon)); - var hasHiddenEffect = dataTypes.ReadNextBool(data); + var hasHiddenEffect = DataTypes.ReadNextBool(data); result.AddRange(DataTypes.GetBool(hasHiddenEffect)); if (hasHiddenEffect) result.AddRange(ReadMobEffectDetails(data)); @@ -91,18 +91,18 @@ public class ConsumableComponent(DataTypes dataTypes, ItemPalette itemPalette, S private byte[] ReadHolderSet(Queue data) { var result = new List(); - var type = dataTypes.ReadNextVarInt(data); + var type = DataTypes.ReadNextVarInt(data); result.AddRange(DataTypes.GetVarInt(type)); if (type == 0) { - var tagName = dataTypes.ReadNextString(data); + var tagName = DataTypes.ReadNextString(data); result.AddRange(DataTypes.GetString(tagName)); } else { for (var i = 0; i < type - 1; i++) { - var id = dataTypes.ReadNextVarInt(data); + var id = DataTypes.ReadNextVarInt(data); result.AddRange(DataTypes.GetVarInt(id)); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/DamageResistantComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/DamageResistantComponent.cs index 25592d2f..cc5867bb 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/DamageResistantComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/DamageResistantComponent.cs @@ -11,7 +11,7 @@ public class DamageResistantComponent(DataTypes dataTypes, ItemPalette itemPalet public override void Parse(Queue data) { - Types = dataTypes.ReadNextString(data); + Types = DataTypes.ReadNextString(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/DeathProtectionComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/DeathProtectionComponent.cs index 36c59690..5b5cc011 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/DeathProtectionComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/DeathProtectionComponent.cs @@ -13,10 +13,10 @@ public class DeathProtectionComponent(DataTypes dataTypes, ItemPalette itemPalet public override void Parse(Queue data) { - var effectCount = dataTypes.ReadNextVarInt(data); + var effectCount = DataTypes.ReadNextVarInt(data); for (var i = 0; i < effectCount; i++) { - var effectTypeId = dataTypes.ReadNextVarInt(data); + var effectTypeId = DataTypes.ReadNextVarInt(data); var effectData = ReadConsumeEffectPayload(effectTypeId, data); DeathEffects.Add(new ConsumeEffectData(effectTypeId, effectData)); } @@ -28,11 +28,11 @@ public class DeathProtectionComponent(DataTypes dataTypes, ItemPalette itemPalet switch (effectTypeId) { case 0: // apply_effects - var effectCount = dataTypes.ReadNextVarInt(data); + var effectCount = DataTypes.ReadNextVarInt(data); payload.AddRange(DataTypes.GetVarInt(effectCount)); for (var i = 0; i < effectCount; i++) payload.AddRange(ReadMobEffectInstance(data)); - payload.AddRange(DataTypes.GetFloat(dataTypes.ReadNextFloat(data))); + payload.AddRange(DataTypes.GetFloat(DataTypes.ReadNextFloat(data))); break; case 1: // remove_effects payload.AddRange(ReadHolderSet(data)); @@ -40,10 +40,10 @@ public class DeathProtectionComponent(DataTypes dataTypes, ItemPalette itemPalet case 2: // clear_all_effects break; case 3: // teleport_randomly - payload.AddRange(DataTypes.GetFloat(dataTypes.ReadNextFloat(data))); + payload.AddRange(DataTypes.GetFloat(DataTypes.ReadNextFloat(data))); break; case 4: // play_sound - var sound = (SoundEventSubComponent)subComponentRegistry.ParseSubComponent(SubComponents.SoundEvent, data); + var sound = (SoundEventSubComponent)SubComponentRegistry.ParseSubComponent(SubComponents.SoundEvent, data); payload.AddRange(sound.Serialize()); break; } @@ -53,7 +53,7 @@ public class DeathProtectionComponent(DataTypes dataTypes, ItemPalette itemPalet private byte[] ReadMobEffectInstance(Queue data) { var result = new List(); - result.AddRange(DataTypes.GetVarInt(dataTypes.ReadNextVarInt(data))); + result.AddRange(DataTypes.GetVarInt(DataTypes.ReadNextVarInt(data))); result.AddRange(ReadMobEffectDetails(data)); return result.ToArray(); } @@ -61,12 +61,12 @@ public class DeathProtectionComponent(DataTypes dataTypes, ItemPalette itemPalet private byte[] ReadMobEffectDetails(Queue data) { var result = new List(); - result.AddRange(DataTypes.GetVarInt(dataTypes.ReadNextVarInt(data))); - result.AddRange(DataTypes.GetVarInt(dataTypes.ReadNextVarInt(data))); - result.AddRange(DataTypes.GetBool(dataTypes.ReadNextBool(data))); - result.AddRange(DataTypes.GetBool(dataTypes.ReadNextBool(data))); - result.AddRange(DataTypes.GetBool(dataTypes.ReadNextBool(data))); - var hasHidden = dataTypes.ReadNextBool(data); + result.AddRange(DataTypes.GetVarInt(DataTypes.ReadNextVarInt(data))); + result.AddRange(DataTypes.GetVarInt(DataTypes.ReadNextVarInt(data))); + result.AddRange(DataTypes.GetBool(DataTypes.ReadNextBool(data))); + result.AddRange(DataTypes.GetBool(DataTypes.ReadNextBool(data))); + result.AddRange(DataTypes.GetBool(DataTypes.ReadNextBool(data))); + var hasHidden = DataTypes.ReadNextBool(data); result.AddRange(DataTypes.GetBool(hasHidden)); if (hasHidden) result.AddRange(ReadMobEffectDetails(data)); @@ -76,16 +76,16 @@ public class DeathProtectionComponent(DataTypes dataTypes, ItemPalette itemPalet private byte[] ReadHolderSet(Queue data) { var result = new List(); - var type = dataTypes.ReadNextVarInt(data); + var type = DataTypes.ReadNextVarInt(data); result.AddRange(DataTypes.GetVarInt(type)); if (type == 0) { - result.AddRange(DataTypes.GetString(dataTypes.ReadNextString(data))); + result.AddRange(DataTypes.GetString(DataTypes.ReadNextString(data))); } else { for (var i = 0; i < type - 1; i++) - result.AddRange(DataTypes.GetVarInt(dataTypes.ReadNextVarInt(data))); + result.AddRange(DataTypes.GetVarInt(DataTypes.ReadNextVarInt(data))); } return result.ToArray(); } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/EnchantableComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/EnchantableComponent.cs index 4ef63563..f522dbd9 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/EnchantableComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/EnchantableComponent.cs @@ -11,7 +11,7 @@ public class EnchantableComponent(DataTypes dataTypes, ItemPalette itemPalette, public override void Parse(Queue data) { - Value = dataTypes.ReadNextVarInt(data); + Value = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/EquippableComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/EquippableComponent.cs index a71e5197..46191449 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/EquippableComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/EquippableComponent.cs @@ -25,36 +25,36 @@ public class EquippableComponent(DataTypes dataTypes, ItemPalette itemPalette, S public override void Parse(Queue data) { - Slot = dataTypes.ReadNextVarInt(data); - EquipSound = (SoundEventSubComponent)subComponentRegistry.ParseSubComponent(SubComponents.SoundEvent, data); + Slot = DataTypes.ReadNextVarInt(data); + EquipSound = (SoundEventSubComponent)SubComponentRegistry.ParseSubComponent(SubComponents.SoundEvent, data); - HasModel = dataTypes.ReadNextBool(data); + HasModel = DataTypes.ReadNextBool(data); if (HasModel) - Model = dataTypes.ReadNextString(data); + Model = DataTypes.ReadNextString(data); - HasCameraOverlay = dataTypes.ReadNextBool(data); + HasCameraOverlay = DataTypes.ReadNextBool(data); if (HasCameraOverlay) - CameraOverlay = dataTypes.ReadNextString(data); + CameraOverlay = DataTypes.ReadNextString(data); - HasAllowedEntities = dataTypes.ReadNextBool(data); + HasAllowedEntities = DataTypes.ReadNextBool(data); if (HasAllowedEntities) { - AllowedEntitiesType = dataTypes.ReadNextVarInt(data); + AllowedEntitiesType = DataTypes.ReadNextVarInt(data); if (AllowedEntitiesType == 0) { - AllowedEntitiesTag = dataTypes.ReadNextString(data); + AllowedEntitiesTag = DataTypes.ReadNextString(data); } else { AllowedEntitiesIds = new List(); for (var i = 0; i < AllowedEntitiesType - 1; i++) - AllowedEntitiesIds.Add(dataTypes.ReadNextVarInt(data)); + AllowedEntitiesIds.Add(DataTypes.ReadNextVarInt(data)); } } - Dispensable = dataTypes.ReadNextBool(data); - Swappable = dataTypes.ReadNextBool(data); - DamageOnHurt = dataTypes.ReadNextBool(data); + Dispensable = DataTypes.ReadNextBool(data); + Swappable = DataTypes.ReadNextBool(data); + DamageOnHurt = DataTypes.ReadNextBool(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/FoodComponent1212.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/FoodComponent1212.cs index 1832234d..65c58d53 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/FoodComponent1212.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/FoodComponent1212.cs @@ -13,9 +13,9 @@ public class FoodComponent1212(DataTypes dataTypes, ItemPalette itemPalette, Sub public override void Parse(Queue data) { - Nutrition = dataTypes.ReadNextVarInt(data); - Saturation = dataTypes.ReadNextFloat(data); - CanAlwaysEat = dataTypes.ReadNextBool(data); + Nutrition = DataTypes.ReadNextVarInt(data); + Saturation = DataTypes.ReadNextFloat(data); + CanAlwaysEat = DataTypes.ReadNextBool(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/ItemModelComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/ItemModelComponent.cs index 65cdac8c..97915e66 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/ItemModelComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/ItemModelComponent.cs @@ -11,7 +11,7 @@ public class ItemModelComponent(DataTypes dataTypes, ItemPalette itemPalette, Su public override void Parse(Queue data) { - Identifier = dataTypes.ReadNextString(data); + Identifier = DataTypes.ReadNextString(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/RepairableComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/RepairableComponent.cs index dcdc36ff..481c58a3 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/RepairableComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/RepairableComponent.cs @@ -13,16 +13,16 @@ public class RepairableComponent(DataTypes dataTypes, ItemPalette itemPalette, S public override void Parse(Queue data) { - Type = dataTypes.ReadNextVarInt(data); + Type = DataTypes.ReadNextVarInt(data); if (Type == 0) { - TagName = dataTypes.ReadNextString(data); + TagName = DataTypes.ReadNextString(data); } else { ItemIds = new List(); for (var i = 0; i < Type - 1; i++) - ItemIds.Add(dataTypes.ReadNextVarInt(data)); + ItemIds.Add(DataTypes.ReadNextVarInt(data)); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/TooltipStyleComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/TooltipStyleComponent.cs index aed0af34..ac25df8f 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/TooltipStyleComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/TooltipStyleComponent.cs @@ -11,7 +11,7 @@ public class TooltipStyleComponent(DataTypes dataTypes, ItemPalette itemPalette, public override void Parse(Queue data) { - Identifier = dataTypes.ReadNextString(data); + Identifier = DataTypes.ReadNextString(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/UseCooldownComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/UseCooldownComponent.cs index 620deb1e..217c56ce 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/UseCooldownComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/UseCooldownComponent.cs @@ -13,10 +13,10 @@ public class UseCooldownComponent(DataTypes dataTypes, ItemPalette itemPalette, public override void Parse(Queue data) { - Seconds = dataTypes.ReadNextFloat(data); - HasCooldownGroup = dataTypes.ReadNextBool(data); + Seconds = DataTypes.ReadNextFloat(data); + HasCooldownGroup = DataTypes.ReadNextBool(data); if (HasCooldownGroup) - CooldownGroup = dataTypes.ReadNextString(data); + CooldownGroup = DataTypes.ReadNextString(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/UseRemainderComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/UseRemainderComponent.cs index ead551aa..da371a95 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/UseRemainderComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_2/UseRemainderComponent.cs @@ -12,13 +12,13 @@ public class UseRemainderComponent(DataTypes dataTypes, ItemPalette itemPalette, public override void Parse(Queue data) { - ConvertInto = dataTypes.ReadNextItemSlot(data, ItemPalette); + ConvertInto = DataTypes.ReadNextItemSlot(data, ItemPalette); } public override Queue Serialize() { var data = new List(); - data.AddRange(dataTypes.GetItemSlot(ConvertInto, ItemPalette)); + data.AddRange(DataTypes.GetItemSlot(ConvertInto, ItemPalette)); return new Queue(data); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/BlocksAttacksComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/BlocksAttacksComponent.cs index f756e9a2..030133c7 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/BlocksAttacksComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/BlocksAttacksComponent.cs @@ -16,63 +16,63 @@ public class BlocksAttacksComponent(DataTypes dataTypes, ItemPalette itemPalette public override void Parse(Queue data) { - BlockDelaySeconds = dataTypes.ReadNextFloat(data); - DisableCooldownScale = dataTypes.ReadNextFloat(data); + BlockDelaySeconds = DataTypes.ReadNextFloat(data); + DisableCooldownScale = DataTypes.ReadNextFloat(data); - var reductionCount = dataTypes.ReadNextVarInt(data); + var reductionCount = DataTypes.ReadNextVarInt(data); for (var i = 0; i < reductionCount; i++) { - var horizontalBlockingAngle = dataTypes.ReadNextFloat(data); + var horizontalBlockingAngle = DataTypes.ReadNextFloat(data); - var hasTypeFilter = dataTypes.ReadNextBool(data); + var hasTypeFilter = DataTypes.ReadNextBool(data); if (hasTypeFilter) ReadHolderSet(data); - var baseDmg = dataTypes.ReadNextFloat(data); - var factor = dataTypes.ReadNextFloat(data); + var baseDmg = DataTypes.ReadNextFloat(data); + var factor = DataTypes.ReadNextFloat(data); } - ItemDamageThreshold = dataTypes.ReadNextFloat(data); - ItemDamageBase = dataTypes.ReadNextFloat(data); - ItemDamageFactor = dataTypes.ReadNextFloat(data); + ItemDamageThreshold = DataTypes.ReadNextFloat(data); + ItemDamageBase = DataTypes.ReadNextFloat(data); + ItemDamageFactor = DataTypes.ReadNextFloat(data); - var hasBypassedBy = dataTypes.ReadNextBool(data); + var hasBypassedBy = DataTypes.ReadNextBool(data); if (hasBypassedBy) - dataTypes.ReadNextString(data); // TagKey as ResourceLocation + DataTypes.ReadNextString(data); // TagKey as ResourceLocation - var hasBlockSound = dataTypes.ReadNextBool(data); + var hasBlockSound = DataTypes.ReadNextBool(data); if (hasBlockSound) ReadSoundEventHolder(data); - var hasDisableSound = dataTypes.ReadNextBool(data); + var hasDisableSound = DataTypes.ReadNextBool(data); if (hasDisableSound) ReadSoundEventHolder(data); } private void ReadHolderSet(Queue data) { - var sizeOrTag = dataTypes.ReadNextVarInt(data); + var sizeOrTag = DataTypes.ReadNextVarInt(data); if (sizeOrTag == 0) { - dataTypes.ReadNextString(data); // Tag ResourceLocation + DataTypes.ReadNextString(data); // Tag ResourceLocation } else { var count = sizeOrTag - 1; for (var i = 0; i < count; i++) - dataTypes.ReadNextVarInt(data); // Holder registry ids + DataTypes.ReadNextVarInt(data); // Holder registry ids } } private void ReadSoundEventHolder(Queue data) { - var holderId = dataTypes.ReadNextVarInt(data); + var holderId = DataTypes.ReadNextVarInt(data); if (holderId == 0) { - dataTypes.ReadNextString(data); // ResourceLocation - var hasFixedRange = dataTypes.ReadNextBool(data); + DataTypes.ReadNextString(data); // ResourceLocation + var hasFixedRange = DataTypes.ReadNextBool(data); if (hasFixedRange) - dataTypes.ReadNextFloat(data); + DataTypes.ReadNextFloat(data); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/EitherHolderComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/EitherHolderComponent.cs index 4319693f..352e5f3e 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/EitherHolderComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/EitherHolderComponent.cs @@ -13,10 +13,10 @@ public class EitherHolderComponent(DataTypes dataTypes, ItemPalette itemPalette, public override void Parse(Queue data) { - IsHolder = dataTypes.ReadNextBool(data); + IsHolder = DataTypes.ReadNextBool(data); if (IsHolder) { - HolderId = dataTypes.ReadNextVarInt(data); + HolderId = DataTypes.ReadNextVarInt(data); // For simple entity variants, holderId > 0 means registry ref (id = holderId - 1) // holderId == 0 means inline data; for most variants the inline is just the variant fields // We skip inline data since MCC doesn't use variant details @@ -30,7 +30,7 @@ public class EitherHolderComponent(DataTypes dataTypes, ItemPalette itemPalette, } else { - ResourceKey = dataTypes.ReadNextString(data); + ResourceKey = DataTypes.ReadNextString(data); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/EnchantmentsComponent1215.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/EnchantmentsComponent1215.cs index 4ade9885..1c228658 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/EnchantmentsComponent1215.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/EnchantmentsComponent1215.cs @@ -15,12 +15,12 @@ public class EnchantmentsComponent1215(DataTypes dataTypes, ItemPalette itemPale { public override void Parse(Queue data) { - NumberOfEnchantments = dataTypes.ReadNextVarInt(data); + NumberOfEnchantments = DataTypes.ReadNextVarInt(data); for (var i = 0; i < NumberOfEnchantments; i++) { - var registryId = dataTypes.ReadNextVarInt(data); - var level = dataTypes.ReadNextVarInt(data); + var registryId = DataTypes.ReadNextVarInt(data); + var level = DataTypes.ReadNextVarInt(data); Enchantments.Add(new Enchantment(EnchantmentMapping.GetEnchantmentByRegistryId1206(registryId), level)); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/InstrumentComponent1215.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/InstrumentComponent1215.cs index bedbde20..e8780324 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/InstrumentComponent1215.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/InstrumentComponent1215.cs @@ -10,29 +10,29 @@ public class InstrumentComponent1215(DataTypes dataTypes, ItemPalette itemPalett public override void Parse(Queue data) { // EitherHolder: Bool + (Holder OR ResourceLocation) - var isHolder = dataTypes.ReadNextBool(data); + var isHolder = DataTypes.ReadNextBool(data); if (isHolder) { - var holderId = dataTypes.ReadNextVarInt(data); + var holderId = DataTypes.ReadNextVarInt(data); if (holderId == 0) { // Inline Instrument: SoundEvent holder + VarInt useDuration + Float range + Component description - var soundHolderId = dataTypes.ReadNextVarInt(data); + var soundHolderId = DataTypes.ReadNextVarInt(data); if (soundHolderId == 0) { - dataTypes.ReadNextString(data); // ResourceLocation - var hasFixedRange = dataTypes.ReadNextBool(data); + DataTypes.ReadNextString(data); // ResourceLocation + var hasFixedRange = DataTypes.ReadNextBool(data); if (hasFixedRange) - dataTypes.ReadNextFloat(data); + DataTypes.ReadNextFloat(data); } - dataTypes.ReadNextVarInt(data); // useDuration - dataTypes.ReadNextFloat(data); // range - dataTypes.ReadNextString(data); // description (Component as JSON string) + DataTypes.ReadNextVarInt(data); // useDuration + DataTypes.ReadNextFloat(data); // range + DataTypes.ReadNextString(data); // description (Component as JSON string) } } else { - dataTypes.ReadNextString(data); // ResourceLocation key + DataTypes.ReadNextString(data); // ResourceLocation key } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/PaintingVariantHolderComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/PaintingVariantHolderComponent.cs index a67bef25..0065441a 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/PaintingVariantHolderComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/PaintingVariantHolderComponent.cs @@ -10,21 +10,21 @@ public class PaintingVariantHolderComponent(DataTypes dataTypes, ItemPalette ite public override void Parse(Queue data) { // Holder: VarInt discriminator - var holderId = dataTypes.ReadNextVarInt(data); + var holderId = DataTypes.ReadNextVarInt(data); if (holderId == 0) { // Inline PaintingVariant: VarInt width + VarInt height + ResourceLocation assetId - dataTypes.ReadNextVarInt(data); // width - dataTypes.ReadNextVarInt(data); // height - dataTypes.ReadNextString(data); // assetId + DataTypes.ReadNextVarInt(data); // width + DataTypes.ReadNextVarInt(data); // height + DataTypes.ReadNextString(data); // assetId // Optional title - if (dataTypes.ReadNextBool(data)) - dataTypes.ReadNextString(data); + if (DataTypes.ReadNextBool(data)) + DataTypes.ReadNextString(data); // Optional author - if (dataTypes.ReadNextBool(data)) - dataTypes.ReadNextString(data); + if (DataTypes.ReadNextBool(data)) + DataTypes.ReadNextString(data); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/PotionDurationScaleComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/PotionDurationScaleComponent.cs index d0fac894..88354b2c 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/PotionDurationScaleComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/PotionDurationScaleComponent.cs @@ -11,7 +11,7 @@ public class PotionDurationScaleComponent(DataTypes dataTypes, ItemPalette itemP public override void Parse(Queue data) { - Scale = dataTypes.ReadNextFloat(data); + Scale = DataTypes.ReadNextFloat(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/ProvidesBannerPatternsComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/ProvidesBannerPatternsComponent.cs index 0b0db7f7..cc2356e1 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/ProvidesBannerPatternsComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/ProvidesBannerPatternsComponent.cs @@ -11,7 +11,7 @@ public class ProvidesBannerPatternsComponent(DataTypes dataTypes, ItemPalette it public override void Parse(Queue data) { - TagKey = dataTypes.ReadNextString(data); // ResourceLocation + TagKey = DataTypes.ReadNextString(data); // ResourceLocation } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/ProvidesTrimMaterialComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/ProvidesTrimMaterialComponent.cs index fde8db41..a8e5725a 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/ProvidesTrimMaterialComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/ProvidesTrimMaterialComponent.cs @@ -10,28 +10,28 @@ public class ProvidesTrimMaterialComponent(DataTypes dataTypes, ItemPalette item public override void Parse(Queue data) { // EitherHolder: Bool + (Holder OR ResourceLocation) - var isHolder = dataTypes.ReadNextBool(data); + var isHolder = DataTypes.ReadNextBool(data); if (isHolder) { - var holderId = dataTypes.ReadNextVarInt(data); + var holderId = DataTypes.ReadNextVarInt(data); if (holderId == 0) { // Inline TrimMaterial: MaterialAssetGroup + Component description // MaterialAssetGroup: string + map - dataTypes.ReadNextString(data); // base asset suffix - var overrideCount = dataTypes.ReadNextVarInt(data); + DataTypes.ReadNextString(data); // base asset suffix + var overrideCount = DataTypes.ReadNextVarInt(data); for (var i = 0; i < overrideCount; i++) { - dataTypes.ReadNextString(data); // ResourceKey - dataTypes.ReadNextString(data); // override suffix + DataTypes.ReadNextString(data); // ResourceKey + DataTypes.ReadNextString(data); // override suffix } // description Component - dataTypes.ReadNextString(data); + DataTypes.ReadNextString(data); } } else { - dataTypes.ReadNextString(data); // ResourceLocation key + DataTypes.ReadNextString(data); // ResourceLocation key } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/SoundEventHolderComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/SoundEventHolderComponent.cs index 849f3018..8fe14f7d 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/SoundEventHolderComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/SoundEventHolderComponent.cs @@ -14,13 +14,13 @@ public class SoundEventHolderComponent(DataTypes dataTypes, ItemPalette itemPale public override void Parse(Queue data) { - HolderId = dataTypes.ReadNextVarInt(data); + HolderId = DataTypes.ReadNextVarInt(data); if (HolderId == 0) { - SoundLocation = dataTypes.ReadNextString(data); - HasFixedRange = dataTypes.ReadNextBool(data); + SoundLocation = DataTypes.ReadNextString(data); + HasFixedRange = DataTypes.ReadNextBool(data); if (HasFixedRange) - FixedRange = dataTypes.ReadNextFloat(data); + FixedRange = DataTypes.ReadNextFloat(data); } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/TooltipDisplayComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/TooltipDisplayComponent.cs index 9611e3d5..859b3cbc 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/TooltipDisplayComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/TooltipDisplayComponent.cs @@ -12,10 +12,10 @@ public class TooltipDisplayComponent(DataTypes dataTypes, ItemPalette itemPalett public override void Parse(Queue data) { - HideTooltip = dataTypes.ReadNextBool(data); - var count = dataTypes.ReadNextVarInt(data); + HideTooltip = DataTypes.ReadNextBool(data); + var count = DataTypes.ReadNextVarInt(data); for (var i = 0; i < count; i++) - HiddenComponentIds.Add(dataTypes.ReadNextVarInt(data)); + HiddenComponentIds.Add(DataTypes.ReadNextVarInt(data)); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/VarIntComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/VarIntComponent.cs index 086b14cd..38eebf96 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/VarIntComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/VarIntComponent.cs @@ -11,7 +11,7 @@ public class VarIntComponent(DataTypes dataTypes, ItemPalette itemPalette, SubCo public override void Parse(Queue data) { - Value = dataTypes.ReadNextVarInt(data); + Value = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/WeaponComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/WeaponComponent.cs index 64c513eb..f831e82b 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/WeaponComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_21_5/WeaponComponent.cs @@ -12,8 +12,8 @@ public class WeaponComponent(DataTypes dataTypes, ItemPalette itemPalette, SubCo public override void Parse(Queue data) { - ItemDamagePerAttack = dataTypes.ReadNextVarInt(data); - DisableBlockingForSeconds = dataTypes.ReadNextFloat(data); + ItemDamagePerAttack = DataTypes.ReadNextVarInt(data); + DisableBlockingForSeconds = DataTypes.ReadNextFloat(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/AttributeSubComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/AttributeSubComponent.cs index a29374e1..897d41b8 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/AttributeSubComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/AttributeSubComponent.cs @@ -15,12 +15,12 @@ public class AttributeSubComponent(DataTypes dataTypes, SubComponentRegistry sub protected override void Parse(Queue data) { - TypeId = dataTypes.ReadNextVarInt(data); - Uuid = dataTypes.ReadNextUUID(data); - Name = dataTypes.ReadNextString(data); - Value = dataTypes.ReadNextDouble(data); - Operation = dataTypes.ReadNextVarInt(data); - Slot = dataTypes.ReadNextVarInt(data); + TypeId = DataTypes.ReadNextVarInt(data); + Uuid = DataTypes.ReadNextUUID(data); + Name = DataTypes.ReadNextString(data); + Value = DataTypes.ReadNextDouble(data); + Operation = DataTypes.ReadNextVarInt(data); + Slot = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockPredicateSubcomponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockPredicateSubcomponent.cs index 05e0d6d2..d66eb47c 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockPredicateSubcomponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockPredicateSubcomponent.cs @@ -15,25 +15,25 @@ public class BlockPredicateSubcomponent(DataTypes dataTypes, SubComponentRegistr protected override void Parse(Queue data) { - HasBlocks = dataTypes.ReadNextBool(data); + HasBlocks = DataTypes.ReadNextBool(data); if (HasBlocks) - BlockSet = (BlockSetSubcomponent)subComponentRegistry.ParseSubComponent(SubComponents.BlockSet, data); + BlockSet = (BlockSetSubcomponent)SubComponentRegistry.ParseSubComponent(SubComponents.BlockSet, data); - HasProperities = dataTypes.ReadNextBool(data); + HasProperities = DataTypes.ReadNextBool(data); if (HasProperities) { Properties = new(); - var numberOfProperties = dataTypes.ReadNextVarInt(data); + var numberOfProperties = DataTypes.ReadNextVarInt(data); for (var i = 0; i < numberOfProperties; i++) - Properties.Add((PropertySubComponent)subComponentRegistry.ParseSubComponent(SubComponents.Property, data)); + Properties.Add((PropertySubComponent)SubComponentRegistry.ParseSubComponent(SubComponents.Property, data)); } - HasNbt = dataTypes.ReadNextBool(data); + HasNbt = DataTypes.ReadNextBool(data); if (HasNbt) - Nbt = dataTypes.ReadNextNbt(data); + Nbt = DataTypes.ReadNextNbt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockSetSubcomponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockSetSubcomponent.cs index 4f6e01a7..70f2b78c 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockSetSubcomponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/BlockSetSubcomponent.cs @@ -15,14 +15,14 @@ public class BlockSetSubcomponent(DataTypes dataTypes, SubComponentRegistry subC Type = DataTypes.ReadNextVarInt(data); if (Type == 0) - TagName = dataTypes.ReadNextString(data); + TagName = DataTypes.ReadNextString(data); if (Type == 0) return; BlockIds = []; for (var i = 0; i < Type - 1; i++) - BlockIds.Add(dataTypes.ReadNextVarInt(data)); + BlockIds.Add(DataTypes.ReadNextVarInt(data)); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/DetailsSubComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/DetailsSubComponent.cs index 7394e13d..ac6b28c9 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/DetailsSubComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/DetailsSubComponent.cs @@ -16,15 +16,15 @@ public class DetailsSubComponent(DataTypes dataTypes, SubComponentRegistry subCo protected override void Parse(Queue data) { - Amplifier = dataTypes.ReadNextVarInt(data); - Duration = dataTypes.ReadNextVarInt(data); - Ambient = dataTypes.ReadNextBool(data); - ShowParticles = dataTypes.ReadNextBool(data); - ShowIcon = dataTypes.ReadNextBool(data); - HasHiddenEffects = dataTypes.ReadNextBool(data); + Amplifier = DataTypes.ReadNextVarInt(data); + Duration = DataTypes.ReadNextVarInt(data); + Ambient = DataTypes.ReadNextBool(data); + ShowParticles = DataTypes.ReadNextBool(data); + ShowIcon = DataTypes.ReadNextBool(data); + HasHiddenEffects = DataTypes.ReadNextBool(data); if(HasHiddenEffects) - Detail = (DetailsSubComponent)subComponentRegistry.ParseSubComponent(SubComponents.Details, data); + Detail = (DetailsSubComponent)SubComponentRegistry.ParseSubComponent(SubComponents.Details, data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/EffectSubComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/EffectSubComponent.cs index a676cfca..8b6795ec 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/EffectSubComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/EffectSubComponent.cs @@ -11,8 +11,8 @@ public class EffectSubComponent(DataTypes dataTypes, SubComponentRegistry subCom protected override void Parse(Queue data) { - TypeId = (PotionEffectSubComponent)subComponentRegistry.ParseSubComponent(SubComponents.PotionEffect, data); - Probability = dataTypes.ReadNextFloat(data); + TypeId = (PotionEffectSubComponent)SubComponentRegistry.ParseSubComponent(SubComponents.PotionEffect, data); + Probability = DataTypes.ReadNextFloat(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/FireworkExplosionSubComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/FireworkExplosionSubComponent.cs index e4c67cc7..37fec5b7 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/FireworkExplosionSubComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/FireworkExplosionSubComponent.cs @@ -16,19 +16,19 @@ public class FireworkExplosionSubComponent(DataTypes dataTypes, SubComponentRegi protected override void Parse(Queue data) { - Shape = dataTypes.ReadNextVarInt(data); - NumberOfColors = dataTypes.ReadNextVarInt(data); + Shape = DataTypes.ReadNextVarInt(data); + NumberOfColors = DataTypes.ReadNextVarInt(data); for (var i = 0; i < NumberOfColors; i++) - Colors.Add(dataTypes.ReadNextInt(data)); + Colors.Add(DataTypes.ReadNextInt(data)); - NumberOfFadeColors = dataTypes.ReadNextVarInt(data); + NumberOfFadeColors = DataTypes.ReadNextVarInt(data); for (var i = 0; i < NumberOfFadeColors; i++) - FadeColors.Add(dataTypes.ReadNextInt(data)); + FadeColors.Add(DataTypes.ReadNextInt(data)); - HasTrail = dataTypes.ReadNextBool(data); - HasTwinkle = dataTypes.ReadNextBool(data); + HasTrail = DataTypes.ReadNextBool(data); + HasTwinkle = DataTypes.ReadNextBool(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PotionEffectSubComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PotionEffectSubComponent.cs index 13cc55f9..c627f726 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PotionEffectSubComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PotionEffectSubComponent.cs @@ -11,8 +11,8 @@ public class PotionEffectSubComponent(DataTypes dataTypes, SubComponentRegistry protected override void Parse(Queue data) { - TypeId = dataTypes.ReadNextVarInt(data); - Details = (DetailsSubComponent)subComponentRegistry.ParseSubComponent(SubComponents.Details, data); + TypeId = DataTypes.ReadNextVarInt(data); + Details = (DetailsSubComponent)SubComponentRegistry.ParseSubComponent(SubComponents.Details, data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PropertySubComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PropertySubComponent.cs index d35de380..af83fc08 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PropertySubComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PropertySubComponent.cs @@ -14,17 +14,17 @@ public class PropertySubComponent(DataTypes dataTypes, SubComponentRegistry subC protected override void Parse(Queue data) { - Name = dataTypes.ReadNextString(data); - IsExactMatch = dataTypes.ReadNextBool(data); + Name = DataTypes.ReadNextString(data); + IsExactMatch = DataTypes.ReadNextBool(data); if (IsExactMatch) { - ExactValue = dataTypes.ReadNextString(data); + ExactValue = DataTypes.ReadNextString(data); } else { - MinValue = dataTypes.ReadNextBool(data) ? dataTypes.ReadNextString(data) : null; - MaxValue = dataTypes.ReadNextBool(data) ? dataTypes.ReadNextString(data) : null; + MinValue = DataTypes.ReadNextBool(data) ? DataTypes.ReadNextString(data) : null; + MaxValue = DataTypes.ReadNextBool(data) ? DataTypes.ReadNextString(data) : null; } } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/RuleSubComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/RuleSubComponent.cs index ca8807b5..6cf163fd 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/RuleSubComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/RuleSubComponent.cs @@ -14,16 +14,16 @@ public class RuleSubComponent(DataTypes dataTypes, SubComponentRegistry subCompo protected override void Parse(Queue data) { - Blocks = (BlockSetSubcomponent)subComponentRegistry.ParseSubComponent(SubComponents.BlockSet, data); - HasSpeed = dataTypes.ReadNextBool(data); + Blocks = (BlockSetSubcomponent)SubComponentRegistry.ParseSubComponent(SubComponents.BlockSet, data); + HasSpeed = DataTypes.ReadNextBool(data); if(HasSpeed) - Speed = dataTypes.ReadNextFloat(data); + Speed = DataTypes.ReadNextFloat(data); - HasCorrectDropForBlocks = dataTypes.ReadNextBool(data); + HasCorrectDropForBlocks = DataTypes.ReadNextBool(data); if(HasCorrectDropForBlocks) - CorrectDropForBlocks = dataTypes.ReadNextBool(data); + CorrectDropForBlocks = DataTypes.ReadNextBool(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_21/AttributeSubComponent121.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_21/AttributeSubComponent121.cs index 6357e47f..46b70970 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_21/AttributeSubComponent121.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_21/AttributeSubComponent121.cs @@ -14,11 +14,11 @@ public class AttributeSubComponent121(DataTypes dataTypes, SubComponentRegistry protected override void Parse(Queue data) { - TypeId = dataTypes.ReadNextVarInt(data); - ResourceLocation = dataTypes.ReadNextString(data); - Value = dataTypes.ReadNextDouble(data); - Operation = dataTypes.ReadNextVarInt(data); - Slot = dataTypes.ReadNextVarInt(data); + TypeId = DataTypes.ReadNextVarInt(data); + ResourceLocation = DataTypes.ReadNextString(data); + Value = DataTypes.ReadNextDouble(data); + Operation = DataTypes.ReadNextVarInt(data); + Slot = DataTypes.ReadNextVarInt(data); } public override Queue Serialize() diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_21/SoundEventSubComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_21/SoundEventSubComponent.cs index cfa0f833..cb10dcee 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_21/SoundEventSubComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_21/SoundEventSubComponent.cs @@ -13,15 +13,15 @@ public class SoundEventSubComponent(DataTypes dataTypes, SubComponentRegistry su protected override void Parse(Queue data) { - Type = dataTypes.ReadNextVarInt(data); + Type = DataTypes.ReadNextVarInt(data); if (Type != 0) return; - SoundName = dataTypes.ReadNextString(data); - HasFixedRange = dataTypes.ReadNextBool(data); + SoundName = DataTypes.ReadNextString(data); + HasFixedRange = DataTypes.ReadNextBool(data); if (HasFixedRange) - FixedRange = dataTypes.ReadNextFloat(data); + FixedRange = DataTypes.ReadNextFloat(data); } public override Queue Serialize() From 81b756292e5b073da5dac9e7a6b96b92b2c2c6a8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Mar 2026 01:25:50 +0000 Subject: [PATCH 11/13] Fix all compilation warnings (CS9107, CS8600, CS8604, CS8618, CS0168, CS0169, CS0649) - Fix CS9107: Replace lowercase primary constructor parameter refs with PascalCase base class properties in 90+ StructuredComponent files - Fix CS8618: Add null! initializers for late-initialized properties - Fix CS8600: Use nullable out parameters in World.cs, ChatParser.cs - Fix CS8604: Add null guard in Compiler.cs, fix null-conditional in McClient.cs - Fix CS0168: Replace unused variable with discard in DataTypes.cs - Fix CS0169: Remove unused motionY field from McClient.cs - Fix CS0649: Remove never-assigned steps field, simplify ClientIsMoving() - Initialize client/handler with null! to avoid CS8618 cascade Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com> Agent-Logs-Url: https://github.com/milutinke/Minecraft-Console-Client/sessions/7fcee1b2-21e2-4457-b01b-5e0a1f07752f --- MinecraftClient/Mapping/World.cs | 2 +- MinecraftClient/McClient.cs | 10 ++++------ MinecraftClient/Protocol/Handlers/DataTypes.cs | 2 +- .../Components/1_20_6/BundleContentsComponent.cs | 4 ++-- .../Components/1_20_6/ChargedProjectilesComponent.cs | 4 ++-- .../Components/1_20_6/ContainerComponent.cs | 2 +- .../Subcomponents/1_20_6/EffectSubComponent.cs | 2 +- .../Subcomponents/1_20_6/PotionEffectSubComponent.cs | 2 +- .../Subcomponents/1_20_6/RuleSubComponent.cs | 2 +- MinecraftClient/Protocol/Message/ChatParser.cs | 6 +++--- .../Scripting/DynamicRun/Builder/Compiler.cs | 2 ++ 11 files changed, 19 insertions(+), 19 deletions(-) diff --git a/MinecraftClient/Mapping/World.cs b/MinecraftClient/Mapping/World.cs index 6c31c8de..66290a40 100644 --- a/MinecraftClient/Mapping/World.cs +++ b/MinecraftClient/Mapping/World.cs @@ -317,7 +317,7 @@ namespace MinecraftClient.Mapping public static void SetDimension(string name) { // Try to get the dimension using the name as is - if (dimensionList.TryGetValue(name, out Dimension dimension)) + if (dimensionList.TryGetValue(name, out Dimension? dimension)) { curDimension = dimension; return; // Dimension found diff --git a/MinecraftClient/McClient.cs b/MinecraftClient/McClient.cs index 96762e74..a9fccdba 100644 --- a/MinecraftClient/McClient.cs +++ b/MinecraftClient/McClient.cs @@ -61,14 +61,12 @@ namespace MinecraftClient private readonly Lock locationLock = new(); private bool locationReceived = false; private readonly World world = new(); - private Queue? steps; private Queue? path; private Location location; private float? _yaw; // Used for calculation ONLY!!! Doesn't reflect the client yaw private float? _pitch; // Used for calculation ONLY!!! Doesn't reflect the client pitch private float playerYaw; private float playerPitch; - private double motionY; private readonly PlayerPhysics playerPhysics = new(); private readonly MovementInput physicsInput = new(); private bool physicsInitialized = false; @@ -156,8 +154,8 @@ namespace MinecraftClient public void SetCookie(string key, byte[] data) => Cookies[key] = data; public void DeleteCookie(string key) => Cookies.Remove(key, out var data); - TcpClient client; - IMinecraftCom handler; + TcpClient client = null!; + IMinecraftCom handler = null!; SessionToken _sessionToken; CancellationTokenSource? cmdprompt = null; Tuple? timeoutdetector = null; @@ -213,7 +211,7 @@ namespace MinecraftClient scope.SetTag("MCC Build", Program.BuildInfo is null ? "Debug" : Program.BuildInfo); if (forgeInfo is not null) - scope.SetTag("Forge Version", forgeInfo?.Version.ToString()); + scope.SetTag("Forge Version", forgeInfo.Version.ToString()); scope.Contexts["Server Information"] = new { @@ -2782,7 +2780,7 @@ namespace MinecraftClient /// true if a movement is currently handled public bool ClientIsMoving() { - return terrainAndMovementsEnabled && locationReceived && ((steps is not null && steps.Count > 0) || (path is not null && path.Count > 0)); + return terrainAndMovementsEnabled && locationReceived && path is not null && path.Count > 0; } /// diff --git a/MinecraftClient/Protocol/Handlers/DataTypes.cs b/MinecraftClient/Protocol/Handlers/DataTypes.cs index 94b1f3ff..82e17ae1 100644 --- a/MinecraftClient/Protocol/Handlers/DataTypes.cs +++ b/MinecraftClient/Protocol/Handlers/DataTypes.cs @@ -973,7 +973,7 @@ namespace MinecraftClient.Protocol.Handlers return data; } - catch(Exception ex) + catch (Exception) { return new Dictionary(); } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BundleContentsComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BundleContentsComponent.cs index 4ff4c4ff..753a621b 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BundleContentsComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BundleContentsComponent.cs @@ -16,7 +16,7 @@ public class BundleContentsComponent(DataTypes dataTypes, ItemPalette itemPalett for (var i = 0; i < count; i++) { - var item = DataTypes.ReadNextItemSlot(data, itemPalette); + var item = DataTypes.ReadNextItemSlot(data, ItemPalette); if (item is not null) Items.Add(item); } @@ -28,7 +28,7 @@ public class BundleContentsComponent(DataTypes dataTypes, ItemPalette itemPalett data.AddRange(DataTypes.GetVarInt(Items.Count)); foreach (var item in Items) - data.AddRange(DataTypes.GetItemSlot(item, itemPalette)); + data.AddRange(DataTypes.GetItemSlot(item, ItemPalette)); return new Queue(data); } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ChargedProjectilesComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ChargedProjectilesComponent.cs index 06b5904e..55e597a3 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ChargedProjectilesComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ChargedProjectilesComponent.cs @@ -16,7 +16,7 @@ public class ChargedProjectilesComponent(DataTypes dataTypes, ItemPalette itemPa for (var i = 0; i < count; i++) { - var item = DataTypes.ReadNextItemSlot(data, itemPalette); + var item = DataTypes.ReadNextItemSlot(data, ItemPalette); if (item is not null) Items.Add(item); } @@ -28,7 +28,7 @@ public class ChargedProjectilesComponent(DataTypes dataTypes, ItemPalette itemPa data.AddRange(DataTypes.GetVarInt(Items.Count)); foreach (var item in Items) - data.AddRange(DataTypes.GetItemSlot(item, itemPalette)); + data.AddRange(DataTypes.GetItemSlot(item, ItemPalette)); 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 61428b36..f198952a 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ContainerComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ContainerComponent.cs @@ -22,7 +22,7 @@ public class ContainerComponent(DataTypes dataTypes, ItemPalette itemPalette, Su var data = new List(); data.AddRange(DataTypes.GetVarInt(Items.Count)); foreach (var item in Items) - data.AddRange(DataTypes.GetItemSlot(item, itemPalette)); + data.AddRange(DataTypes.GetItemSlot(item, ItemPalette)); return new Queue(data); } diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/EffectSubComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/EffectSubComponent.cs index 8b6795ec..250cbd6f 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/EffectSubComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/EffectSubComponent.cs @@ -6,7 +6,7 @@ namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Components.Subc public class EffectSubComponent(DataTypes dataTypes, SubComponentRegistry subComponentRegistry) : SubComponent(dataTypes, subComponentRegistry) { - public PotionEffectSubComponent TypeId { get; set; } + public PotionEffectSubComponent TypeId { get; set; } = null!; public float Probability { get; set; } protected override void Parse(Queue data) diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PotionEffectSubComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PotionEffectSubComponent.cs index c627f726..d667c5b3 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PotionEffectSubComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/PotionEffectSubComponent.cs @@ -7,7 +7,7 @@ namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Components.Subc public class PotionEffectSubComponent(DataTypes dataTypes, SubComponentRegistry subComponentRegistry) : SubComponent(dataTypes, subComponentRegistry) { public int TypeId { get; set; } - public DetailsSubComponent Details { get; set; } + public DetailsSubComponent Details { get; set; } = null!; protected override void Parse(Queue data) { diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/RuleSubComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/RuleSubComponent.cs index 6cf163fd..1356ceef 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/RuleSubComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/Subcomponents/1_20_6/RuleSubComponent.cs @@ -6,7 +6,7 @@ namespace MinecraftClient.Protocol.Handlers.StructuredComponents.Components.Subc public class RuleSubComponent(DataTypes dataTypes, SubComponentRegistry subComponentRegistry) : SubComponent(dataTypes, subComponentRegistry) { - public BlockSetSubcomponent Blocks { get; set; } + public BlockSetSubcomponent Blocks { get; set; } = null!; public bool HasSpeed { get; set; } public float Speed { get; set; } public bool HasCorrectDropForBlocks { get; set; } diff --git a/MinecraftClient/Protocol/Message/ChatParser.cs b/MinecraftClient/Protocol/Message/ChatParser.cs index 610a2d7e..28311400 100644 --- a/MinecraftClient/Protocol/Message/ChatParser.cs +++ b/MinecraftClient/Protocol/Message/ChatParser.cs @@ -545,11 +545,11 @@ namespace MinecraftClient.Protocol.Message break; case "translate": { - if (nbt.TryGetValue("translate", out object translate)) + if (nbt.TryGetValue("translate", out object? translate)) { var translateKey = (string)translate; List translateString = new(); - if (nbt.TryGetValue("with", out object withComponent)) + if (nbt.TryGetValue("with", out object? withComponent)) { var withs = (object[])withComponent; for (var i = 0; i < withs.Length; i++) @@ -574,7 +574,7 @@ namespace MinecraftClient.Protocol.Message break; case "color": { - if (nbt.TryGetValue("color", out object color)) + if (nbt.TryGetValue("color", out object? color)) { colorCode = Color2tag((string)color); } diff --git a/MinecraftClient/Scripting/DynamicRun/Builder/Compiler.cs b/MinecraftClient/Scripting/DynamicRun/Builder/Compiler.cs index c941aa19..9cc1df13 100644 --- a/MinecraftClient/Scripting/DynamicRun/Builder/Compiler.cs +++ b/MinecraftClient/Scripting/DynamicRun/Builder/Compiler.cs @@ -82,6 +82,8 @@ namespace MinecraftClient.Scripting.DynamicRun.Builder { // Create a temporary file to copy the executable to. var executablePath = Environment.ProcessPath; + if (executablePath is null) + throw new InvalidOperationException("Cannot determine the process path for self-contained scripting extraction."); var tempPath = Path.Combine(Path.GetTempPath(), "mcc-scripting"); Directory.CreateDirectory(tempPath); From 654a16907bec7ab9a7902fbbf9257f0136a429a7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 24 Mar 2026 01:31:17 +0000 Subject: [PATCH 12/13] 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> --- MinecraftClient/ChatBots/AutoCraft.cs | 4 +- MinecraftClient/ColorHelper.cs | 2 +- .../CommandHandler/SuggestionTooltip.cs | 9 +-- MinecraftClient/Inventory/EnchantmentData.cs | 2 +- MinecraftClient/Inventory/ItemMovingHelper.cs | 20 +------ MinecraftClient/Inventory/VillagerInfo.cs | 2 +- MinecraftClient/Inventory/VillagerTrade.cs | 38 ++++--------- MinecraftClient/Mapping/MapIcon.cs | 12 ++-- MinecraftClient/Mapping/Movement.cs | 22 +------- .../Protocol/Handlers/DataTypes.cs | 13 +---- .../Protocol/Handlers/Forge/ForgeInfo.cs | 11 +--- .../Handlers/Packet/s2c/DeclareCommands.cs | 55 +++++-------------- .../Protocol/Handlers/Protocol18Forge.cs | 27 ++------- .../Protocol/Handlers/Protocol18Terrain.cs | 20 ++----- .../1_20_6/BannerPatternsComponent.cs | 2 +- .../Protocol/Message/LastSeenMessageList.cs | 21 ++----- MinecraftClient/Protocol/MojangAPI.cs | 24 ++------ MinecraftClient/Protocol/ProxiedWebRequest.cs | 15 +---- 18 files changed, 68 insertions(+), 231 deletions(-) diff --git a/MinecraftClient/ChatBots/AutoCraft.cs b/MinecraftClient/ChatBots/AutoCraft.cs index bc8bf957..e0156941 100644 --- a/MinecraftClient/ChatBots/AutoCraft.cs +++ b/MinecraftClient/ChatBots/AutoCraft.cs @@ -123,7 +123,7 @@ namespace MinecraftClient.ChatBots public enum OnFailConfig { abort, wait } - public class RecipeConfig + public record RecipeConfig { public string Name = "Recipe Name"; @@ -241,7 +241,7 @@ namespace MinecraftClient.ChatBots /// /// Represent a crafting recipe /// - private class Recipe + private record Recipe { /// /// The results item of this recipe diff --git a/MinecraftClient/ColorHelper.cs b/MinecraftClient/ColorHelper.cs index fe91a780..54559d58 100644 --- a/MinecraftClient/ColorHelper.cs +++ b/MinecraftClient/ColorHelper.cs @@ -163,7 +163,7 @@ namespace MinecraftClient } } - public class ColorRGBA + public record struct ColorRGBA { public byte R { get; set; } public byte G { get; set; } diff --git a/MinecraftClient/CommandHandler/SuggestionTooltip.cs b/MinecraftClient/CommandHandler/SuggestionTooltip.cs index c235f061..330c63ed 100644 --- a/MinecraftClient/CommandHandler/SuggestionTooltip.cs +++ b/MinecraftClient/CommandHandler/SuggestionTooltip.cs @@ -2,13 +2,8 @@ namespace MinecraftClient.CommandHandler { - internal class SuggestionTooltip : IMessage + internal class SuggestionTooltip(string tooltip) : IMessage { - public SuggestionTooltip(string tooltip) - { - String = tooltip; - } - - public string String { get; set; } + public string String { get; set; } = tooltip; } } diff --git a/MinecraftClient/Inventory/EnchantmentData.cs b/MinecraftClient/Inventory/EnchantmentData.cs index 427fe012..55571d0c 100644 --- a/MinecraftClient/Inventory/EnchantmentData.cs +++ b/MinecraftClient/Inventory/EnchantmentData.cs @@ -1,6 +1,6 @@ namespace MinecraftClient.Inventory { - public class EnchantmentData + public record EnchantmentData { public Enchantments TopEnchantment { get; set; } public Enchantments MiddleEnchantment { get; set; } diff --git a/MinecraftClient/Inventory/ItemMovingHelper.cs b/MinecraftClient/Inventory/ItemMovingHelper.cs index 48623ee0..16d7d4de 100644 --- a/MinecraftClient/Inventory/ItemMovingHelper.cs +++ b/MinecraftClient/Inventory/ItemMovingHelper.cs @@ -7,24 +7,10 @@ namespace MinecraftClient.Inventory /// /// Class that contains useful methods to move item around in a container /// - public class ItemMovingHelper + public class ItemMovingHelper(Container c, McClient mc) { - private readonly Container c; - private readonly McClient mc; - - /// - /// Create a helper that contains useful methods to move item around in container - /// - /// Source container to use. All method will use this container for handling first slot parameter - /// McClient handler. Needed for sending WindowAction packet to the server - /// - /// If you are using ChatBot API and cannot have direct access to McClient handler, use as second parameter - /// - public ItemMovingHelper(Container c, McClient mc) - { - this.c = c; - this.mc = mc; - } + private readonly Container c = c; + private readonly McClient mc = mc; /// /// Move an item fron source to dest. Source should contain an item and dest slot should be empty diff --git a/MinecraftClient/Inventory/VillagerInfo.cs b/MinecraftClient/Inventory/VillagerInfo.cs index c93781e8..426cd112 100644 --- a/MinecraftClient/Inventory/VillagerInfo.cs +++ b/MinecraftClient/Inventory/VillagerInfo.cs @@ -3,7 +3,7 @@ /// /// Properties of a villager /// - public class VillagerInfo + public record VillagerInfo { public int Level { get; set; } public int Experience { get; set; } diff --git a/MinecraftClient/Inventory/VillagerTrade.cs b/MinecraftClient/Inventory/VillagerTrade.cs index 70246cab..46cd13e9 100644 --- a/MinecraftClient/Inventory/VillagerTrade.cs +++ b/MinecraftClient/Inventory/VillagerTrade.cs @@ -3,31 +3,15 @@ /// /// Represents a trade of a villager /// - public class VillagerTrade - { - public Item InputItem1; - public Item OutputItem; - public Item? InputItem2; - public bool TradeDisabled; - public int NumberOfTradeUses; - public int MaximumNumberOfTradeUses; - public int Xp; - public int SpecialPrice; - public float PriceMultiplier; - public int Demand; - - public VillagerTrade(Item inputItem1, Item outputItem, Item? inputItem2, bool tradeDisabled, int numberOfTradeUses, int maximumNumberOfTradeUses, int xp, int specialPrice, float priceMultiplier, int demand) - { - InputItem1 = inputItem1; - OutputItem = outputItem; - InputItem2 = inputItem2; - TradeDisabled = tradeDisabled; - NumberOfTradeUses = numberOfTradeUses; - MaximumNumberOfTradeUses = maximumNumberOfTradeUses; - Xp = xp; - SpecialPrice = specialPrice; - PriceMultiplier = priceMultiplier; - Demand = demand; - } - } + public record VillagerTrade( + Item InputItem1, + Item OutputItem, + Item? InputItem2, + bool TradeDisabled, + int NumberOfTradeUses, + int MaximumNumberOfTradeUses, + int Xp, + int SpecialPrice, + float PriceMultiplier, + int Demand); } diff --git a/MinecraftClient/Mapping/MapIcon.cs b/MinecraftClient/Mapping/MapIcon.cs index 3862b8db..e525f1a9 100644 --- a/MinecraftClient/Mapping/MapIcon.cs +++ b/MinecraftClient/Mapping/MapIcon.cs @@ -1,11 +1,11 @@ namespace MinecraftClient.Mapping { - public class MapIcon + public record MapIcon { - public MapIconType Type { set; get; } - public byte X { set; get; } - public byte Z { set; get; } - public byte Direction { set; get; } - public string? DisplayName { set; get; } = null; + public MapIconType Type { get; set; } + public byte X { get; set; } + public byte Z { get; set; } + public byte Direction { get; set; } + public string? DisplayName { get; set; } = null; } } diff --git a/MinecraftClient/Mapping/Movement.cs b/MinecraftClient/Mapping/Movement.cs index 06009966..6786dbee 100644 --- a/MinecraftClient/Mapping/Movement.cs +++ b/MinecraftClient/Mapping/Movement.cs @@ -306,27 +306,9 @@ namespace MinecraftClient.Mapping /// /// Represents a location and its attributes /// - public class Node + public record Node(int GScore, int HScore, Location Location) { - // Distance to start - public int GScore; - - // Distance to Goal - public int HScore; - - public int FScore - { - get { return HScore + GScore; } - } - - public Location Location; - - public Node(int gScore, int hScore, Location loc) - { - this.GScore = gScore; - this.HScore = hScore; - Location = loc; - } + public int FScore => HScore + GScore; } // List which contains all nodes in form of a Binary Heap diff --git a/MinecraftClient/Protocol/Handlers/DataTypes.cs b/MinecraftClient/Protocol/Handlers/DataTypes.cs index 82e17ae1..2f4c59ea 100644 --- a/MinecraftClient/Protocol/Handlers/DataTypes.cs +++ b/MinecraftClient/Protocol/Handlers/DataTypes.cs @@ -15,21 +15,12 @@ namespace MinecraftClient.Protocol.Handlers /// /// Handle data types encoding / decoding /// - public class DataTypes + public class DataTypes(int protocol) { /// /// Protocol version for adjusting data types /// - private readonly int protocolversion; - - /// - /// Initialize a new DataTypes instance - /// - /// Protocol version - public DataTypes(int protocol) - { - protocolversion = protocol; - } + private readonly int protocolversion = protocol; /// /// Protocol version used to adjust wire encodings. diff --git a/MinecraftClient/Protocol/Handlers/Forge/ForgeInfo.cs b/MinecraftClient/Protocol/Handlers/Forge/ForgeInfo.cs index bbe2110e..7baca1ba 100755 --- a/MinecraftClient/Protocol/Handlers/Forge/ForgeInfo.cs +++ b/MinecraftClient/Protocol/Handlers/Forge/ForgeInfo.cs @@ -11,17 +11,8 @@ namespace MinecraftClient.Protocol.Handlers.Forge /// /// Represents an individual forge mod. /// - public class ForgeMod + public record ForgeMod(string ModID, string Version) { - public ForgeMod(String ModID, String Version) - { - this.ModID = ModID; - this.Version = Version; - } - - public readonly String ModID; - public readonly String Version; - public override string ToString() { return ModID + " v" + Version; diff --git a/MinecraftClient/Protocol/Handlers/Packet/s2c/DeclareCommands.cs b/MinecraftClient/Protocol/Handlers/Packet/s2c/DeclareCommands.cs index b4e58cc2..57f1bb92 100644 --- a/MinecraftClient/Protocol/Handlers/Packet/s2c/DeclareCommands.cs +++ b/MinecraftClient/Protocol/Handlers/Packet/s2c/DeclareCommands.cs @@ -729,54 +729,25 @@ namespace MinecraftClient.Protocol.Handlers.packet.s2c ForgeEnum } - private sealed class CommandNode + private sealed record CommandNode( + byte Flags, + int[] Children, + int RedirectNode = -1, + string? Name = null, + CommandArgumentDescriptor? Argument = null, + string? SuggestionsType = null, + int ParserId = -1) { - public byte Flags { get; } - public int[] Children { get; } - public int RedirectNode { get; } - public string? Name { get; } - public CommandArgumentDescriptor? Argument { get; } - public string? SuggestionsType { get; } - public int ParserId { get; } - public CommandNodeKind Kind => (CommandNodeKind)(Flags & NodeTypeMask); public bool IsExecutable => (Flags & NodeExecutableFlag) != 0; public bool IsRestricted => (Flags & NodeRestrictedFlag) != 0; - - public CommandNode( - byte flags, - int[] children, - int redirectNode = -1, - string? name = null, - CommandArgumentDescriptor? argument = null, - string? suggestionsType = null, - int parserId = -1) - { - Flags = flags; - Children = children; - RedirectNode = redirectNode; - Name = name; - Argument = argument; - SuggestionsType = suggestionsType; - ParserId = parserId; - } } - private readonly struct CommandArgumentDescriptor - { - public string Name { get; } - public ArgumentConsumption Consumption { get; } - public int TokenCount { get; } - public bool IsSigned { get; } - - public CommandArgumentDescriptor(string name, ArgumentConsumption consumption, int tokenCount = 1, bool isSigned = false) - { - Name = name; - Consumption = consumption; - TokenCount = tokenCount; - IsSigned = isSigned; - } - } + private readonly record struct CommandArgumentDescriptor( + string Name, + ArgumentConsumption Consumption, + int TokenCount = 1, + bool IsSigned = false); private readonly struct ArgumentTypeLayout { diff --git a/MinecraftClient/Protocol/Handlers/Protocol18Forge.cs b/MinecraftClient/Protocol/Handlers/Protocol18Forge.cs index 3dbe753e..7359d200 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18Forge.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18Forge.cs @@ -12,32 +12,17 @@ namespace MinecraftClient.Protocol.Handlers /// /// Handler for the Minecraft Forge protocol /// - class Protocol18Forge + class Protocol18Forge(ForgeInfo? forgeInfo, int protocolVersion, DataTypes dataTypes, Protocol18Handler protocol18, IMinecraftComHandler mcHandler) { - private readonly int protocolversion; - private readonly DataTypes dataTypes; - private readonly Protocol18Handler protocol18; - private readonly IMinecraftComHandler mcHandler; + private readonly int protocolversion = protocolVersion; + private readonly DataTypes dataTypes = dataTypes; + private readonly Protocol18Handler protocol18 = protocol18; + private readonly IMinecraftComHandler mcHandler = mcHandler; - private readonly ForgeInfo? forgeInfo; + private readonly ForgeInfo? forgeInfo = forgeInfo; private FMLHandshakeClientState fmlHandshakeState = FMLHandshakeClientState.START; private bool ForgeEnabled() { return forgeInfo is not null; } - /// - /// Initialize a new Forge protocol handler - /// - /// Forge Server Information - /// Minecraft protocol version - /// Minecraft data types handler - public Protocol18Forge(ForgeInfo? forgeInfo, int protocolVersion, DataTypes dataTypes, Protocol18Handler protocol18, IMinecraftComHandler mcHandler) - { - this.forgeInfo = forgeInfo; - protocolversion = protocolVersion; - this.dataTypes = dataTypes; - this.protocol18 = protocol18; - this.mcHandler = mcHandler; - } - /// /// Get Forge-Tagged server address /// diff --git a/MinecraftClient/Protocol/Handlers/Protocol18Terrain.cs b/MinecraftClient/Protocol/Handlers/Protocol18Terrain.cs index 33ea43af..9bd29e87 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18Terrain.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18Terrain.cs @@ -12,23 +12,11 @@ namespace MinecraftClient.Protocol.Handlers /// /// Terrain Decoding handler for Protocol18 /// - class Protocol18Terrain + class Protocol18Terrain(int protocolVersion, DataTypes dataTypes, IMinecraftComHandler handler) { - private readonly int protocolversion; - private readonly DataTypes dataTypes; - private readonly IMinecraftComHandler handler; - - /// - /// Initialize a new Terrain Decoder - /// - /// Minecraft Protocol Version - /// Minecraft Protocol Data Types - public Protocol18Terrain(int protocolVersion, DataTypes dataTypes, IMinecraftComHandler handler) - { - protocolversion = protocolVersion; - this.dataTypes = dataTypes; - this.handler = handler; - } + private readonly int protocolversion = protocolVersion; + private readonly DataTypes dataTypes = dataTypes; + private readonly IMinecraftComHandler handler = handler; /// /// Reading the "Block states" field: consists of 4096 entries, representing all the blocks in the chunk section. diff --git a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BannerPatternsComponent.cs b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BannerPatternsComponent.cs index 6a69bc79..497dd330 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BannerPatternsComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/BannerPatternsComponent.cs @@ -59,7 +59,7 @@ public class BannerPatternsComponent(DataTypes dataTypes, ItemPalette itemPalett } } -public class BannerLayer +public record BannerLayer { public int PatternType { get; set; } public string? AssetId { get; set; } = null!; diff --git a/MinecraftClient/Protocol/Message/LastSeenMessageList.cs b/MinecraftClient/Protocol/Message/LastSeenMessageList.cs index 852095dc..f6603845 100644 --- a/MinecraftClient/Protocol/Message/LastSeenMessageList.cs +++ b/MinecraftClient/Protocol/Message/LastSeenMessageList.cs @@ -8,17 +8,12 @@ namespace MinecraftClient.Protocol.Message /// /// A list of messages a client has seen. /// - public class LastSeenMessageList + public class LastSeenMessageList(AcknowledgedMessage[] list) { public static readonly LastSeenMessageList EMPTY = new(Array.Empty()); public static readonly int MAX_ENTRIES = 5; - public AcknowledgedMessage[] entries; - - public LastSeenMessageList(AcknowledgedMessage[] list) - { - entries = list; - } + public AcknowledgedMessage[] entries = list; public void WriteForSign(List 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. /// - 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; } } diff --git a/MinecraftClient/Protocol/MojangAPI.cs b/MinecraftClient/Protocol/MojangAPI.cs index ab1c32bb..b05e6a71 100644 --- a/MinecraftClient/Protocol/MojangAPI.cs +++ b/MinecraftClient/Protocol/MojangAPI.cs @@ -19,19 +19,7 @@ namespace MinecraftClient.Protocol /// Information about a players Skin. /// Empty string if not available. /// - public class SkinInfo - { - public readonly string SkinUrl; - public readonly string CapeUrl; - public readonly string SkinModel; - - public SkinInfo(string skinUrl = "", string capeUrl = "", string skinModel = "") - { - SkinUrl = skinUrl; - CapeUrl = capeUrl; - SkinModel = skinModel; - } - } + public record SkinInfo(string SkinUrl = "", string CapeUrl = "", string SkinModel = ""); /// /// Status of the single Mojang services @@ -254,14 +242,14 @@ namespace MinecraftClient.Protocol // Can apparently be missing, if no custom skin is set. if (textureObj.ContainsKey("SKIN")) { - return new SkinInfo(skinUrl: textureObj["SKIN"]!["url"] is not null ? textureObj["SKIN"]!["url"]!.GetStringValue() : string.Empty, - capeUrl: textureObj.ContainsKey("CAPE") ? textureObj["CAPE"]!["url"]!.GetStringValue() : string.Empty, - skinModel: textureObj["SKIN"]!["metadata"] is not null ? "Alex" : "Steve"); + return new SkinInfo(SkinUrl: textureObj["SKIN"]!["url"] is not null ? textureObj["SKIN"]!["url"]!.GetStringValue() : string.Empty, + CapeUrl: textureObj.ContainsKey("CAPE") ? textureObj["CAPE"]!["url"]!.GetStringValue() : string.Empty, + SkinModel: textureObj["SKIN"]!["metadata"] is not null ? "Alex" : "Steve"); } else { - return new SkinInfo(capeUrl: textureObj.ContainsKey("CAPE") ? textureObj["CAPE"]!["url"]!.GetStringValue() : string.Empty, - skinModel: DefaultModelAlex(uuid) ? "Alex" : "Steve"); + return new SkinInfo(CapeUrl: textureObj.ContainsKey("CAPE") ? textureObj["CAPE"]!["url"]!.GetStringValue() : string.Empty, + SkinModel: DefaultModelAlex(uuid) ? "Alex" : "Steve"); } } diff --git a/MinecraftClient/Protocol/ProxiedWebRequest.cs b/MinecraftClient/Protocol/ProxiedWebRequest.cs index 16724b71..220ac319 100644 --- a/MinecraftClient/Protocol/ProxiedWebRequest.cs +++ b/MinecraftClient/Protocol/ProxiedWebRequest.cs @@ -202,21 +202,8 @@ namespace MinecraftClient.Protocol /// /// Basic HTTP response object. /// - public class Response + public record Response(int StatusCode, string Body, NameValueCollection Headers, NameValueCollection Cookies) { - public int StatusCode; - public string Body; - public NameValueCollection Headers; - public NameValueCollection Cookies; - - public Response(int statusCode, string body, NameValueCollection headers, NameValueCollection cookies) - { - StatusCode = statusCode; - Body = body; - Headers = headers; - Cookies = cookies; - } - public static Response Empty() => new(204, "", new NameValueCollection(), new NameValueCollection()); From f64757edea4ee07709966f3bc93bc5f417834b30 Mon Sep 17 00:00:00 2001 From: Anon Date: Tue, 24 Mar 2026 15:39:50 +0100 Subject: [PATCH 13/13] Fixed inventory crashing on 1.13-1.13.2 --- .../Protocol/Handlers/DataTypes.cs | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/MinecraftClient/Protocol/Handlers/DataTypes.cs b/MinecraftClient/Protocol/Handlers/DataTypes.cs index 2f4c59ea..0edf3010 100644 --- a/MinecraftClient/Protocol/Handlers/DataTypes.cs +++ b/MinecraftClient/Protocol/Handlers/DataTypes.cs @@ -452,7 +452,7 @@ namespace MinecraftClient.Protocol.Handlers item.Components = strcturedComponentsToAdd; return item; - case >= Protocol18Handler.MC_1_13_Version: + case >= Protocol18Handler.MC_1_13_2_Version: { var itemPresent = ReadNextBool(cache); @@ -469,6 +469,18 @@ namespace MinecraftClient.Protocol.Handlers nbt = ReadNextNbt(cache); return new Item(type, itemCount, nbt); } + case >= Protocol18Handler.MC_1_13_Version: + { + itemId = ReadNextShort(cache); + + if (itemId == -1) + return null; + + var type = itemPalette.FromId(itemId); + itemCount = ReadNextByte(cache); + nbt = ReadNextNbt(cache); + return new Item(type, itemCount, nbt); + } default: { itemId = ReadNextShort(cache); @@ -1745,7 +1757,7 @@ namespace MinecraftClient.Protocol.Handlers } } } - else if (protocolversion > Protocol18Handler.MC_1_13_Version) + else if (protocolversion >= Protocol18Handler.MC_1_13_2_Version) { if (item is null || item.IsEmpty) slotData.AddRange(GetBool(false)); @@ -1757,6 +1769,17 @@ namespace MinecraftClient.Protocol.Handlers slotData.AddRange(GetNbt(item.NBT)); } } + else if (protocolversion >= Protocol18Handler.MC_1_13_Version) + { + if (item is null || item.IsEmpty) + slotData.AddRange(GetShort(-1)); + else + { + slotData.AddRange(GetShort((short)itemPalette.ToId(item.Type))); + slotData.Add((byte)item.Count); + slotData.AddRange(GetNbt(item.NBT)); + } + } else { if (item is null || item.IsEmpty) @@ -1765,7 +1788,8 @@ namespace MinecraftClient.Protocol.Handlers { slotData.AddRange(GetShort((short)(itemPalette.ToId(item.Type) >> 16))); slotData.Add((byte)item.Count); - slotData.Add((byte)item.Data); + // Legacy (<1.13) item slot wire format uses a SHORT for item damage/data. + slotData.AddRange(GetShort((short)item.Data)); slotData.AddRange(GetNbt(item.NBT)); } }