From 85fe6b451b262f46d51c6456624dc2a341f54f7d Mon Sep 17 00:00:00 2001 From: Anon Date: Wed, 17 Jun 2026 11:27:23 +0200 Subject: [PATCH] fix: handle null/empty profile name in ProfileComponent serialization Prevents NullReferenceException crash when receiving player head items with an empty or absent profile name. The Minecraft protocol permits empty names in the profile component; the serialization path now falls back to an empty string instead of throwing. --- .../Components/1_20_6/ProfileComponent.cs | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) 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 ff98f5de..23cc92bf 100644 --- a/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ProfileComponent.cs +++ b/MinecraftClient/Protocol/Handlers/StructuredComponents/Components/1_20_6/ProfileComponent.cs @@ -112,12 +112,7 @@ public class ProfileComponent(DataTypes dataTypes, ItemPalette itemPalette, SubC data.AddRange(DataTypes.GetBool(HasName)); if (HasName) - { - if (string.IsNullOrEmpty(Name)) - throw new NullReferenceException("Can't serialize the ProfileComponent because the Name is null/empty!"); - - data.AddRange(DataTypes.GetString(Name)); - } + data.AddRange(DataTypes.GetString(Name ?? "")); data.AddRange(DataTypes.GetBool(HasUniqueId)); if (HasUniqueId) @@ -140,22 +135,14 @@ public class ProfileComponent(DataTypes dataTypes, ItemPalette itemPalette, SubC if (!HasUniqueId) throw new NullReferenceException("Can't serialize the ProfileComponent because a full profile requires a UUID!"); - if (!HasName || string.IsNullOrEmpty(Name)) - throw new NullReferenceException("Can't serialize the ProfileComponent because a full profile requires a name!"); - data.AddRange(DataTypes.GetUUID(Uuid)); - data.AddRange(DataTypes.GetString(Name)); + data.AddRange(DataTypes.GetString(Name ?? "")); } else { data.AddRange(DataTypes.GetBool(HasName)); if (HasName) - { - if (string.IsNullOrEmpty(Name)) - throw new NullReferenceException("Can't serialize the ProfileComponent because HasName is true, but the Name is null/empty!"); - - data.AddRange(DataTypes.GetString(Name)); - } + data.AddRange(DataTypes.GetString(Name ?? "")); data.AddRange(DataTypes.GetBool(HasUniqueId)); if (HasUniqueId)