diff --git a/HellionChat/PayloadHandler.cs b/HellionChat/PayloadHandler.cs index 46be55b..82143d8 100644 --- a/HellionChat/PayloadHandler.cs +++ b/HellionChat/PayloadHandler.cs @@ -263,13 +263,15 @@ internal sealed class PayloadHandler // Eureka, Bozja and Occult need special handling as tells work different if (!Sheets.IsInForay()) { - // §6.9: single SetPendingMessage call; v1.5.6 used incremental Chat += writes - var builder = $"/tell {player.PlayerName}"; - if (world.Value.IsPublic) - builder += $"@{world.Value.Name}"; - - builder += " "; - _inputBar.SetPendingMessage(builder); + // §6.9: single SetPendingMessage call; v1.5.6 used incremental Chat += writes. + // XC-8: shares the /tell builder with the native detours. IsPublic (not + // IsNullOrEmpty) is resolved HERE — a private/null world must NOT leak @World. + _inputBar.SetPendingMessage( + GameFunctions.Chat.BuildTellCommand( + player.PlayerName, + world.Value.IsPublic ? world.Value.Name.ToString() : null + ) + ); } else if (validContentId) {