diff --git a/OpenRA.Game/Network/UnitOrders.cs b/OpenRA.Game/Network/UnitOrders.cs index 6a3fa4b1c5..2e506bc31f 100644 --- a/OpenRA.Game/Network/UnitOrders.cs +++ b/OpenRA.Game/Network/UnitOrders.cs @@ -53,7 +53,8 @@ namespace OpenRA.Network case "DisableChatEntry": { // Order must originate from the server - if (clientId != 0) + // Don't disable chat in replays + if (clientId != 0 || (world != null && world.IsReplay)) break; // Server may send MaxValue to indicate that it is disabled until further notice diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameChatLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameChatLogic.cs index 54eafa8b7d..7af512209e 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameChatLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameChatLogic.cs @@ -312,7 +312,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic public override void Tick() { var chatWasEnabled = chatEnabled; - chatEnabled = Game.RunTime >= TextNotificationsManager.ChatDisabledUntil && TextNotificationsManager.ChatDisabledUntil != uint.MaxValue; + chatEnabled = world.IsReplay || (Game.RunTime >= TextNotificationsManager.ChatDisabledUntil && TextNotificationsManager.ChatDisabledUntil != uint.MaxValue); if (chatEnabled && !chatWasEnabled) { diff --git a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs index a90a47a2b9..a8f835a0cc 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Lobby/LobbyLogic.cs @@ -548,7 +548,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic panel = PanelType.Players; var chatWasEnabled = chatEnabled; - chatEnabled = Game.RunTime >= TextNotificationsManager.ChatDisabledUntil && TextNotificationsManager.ChatDisabledUntil != uint.MaxValue; + chatEnabled = worldRenderer.World.IsReplay || (Game.RunTime >= TextNotificationsManager.ChatDisabledUntil && TextNotificationsManager.ChatDisabledUntil != uint.MaxValue); if (chatEnabled && !chatWasEnabled) {