From 3ccaa9eb5a75c68c96a452455c75df64f1e7df06 Mon Sep 17 00:00:00 2001 From: tintinhamans <5984296+tintinhamans@users.noreply.github.com> Date: Sat, 29 Aug 2026 00:54:37 +0200 Subject: [PATCH] fix(chat): exempt lobby host announcements from rate limiting Signed-off-by: tintinhamans <5984296+tintinhamans@users.noreply.github.com> --- .../Controllers/WebSocket/WebSocketController.cs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/GenOnlineService/Controllers/WebSocket/WebSocketController.cs b/GenOnlineService/Controllers/WebSocket/WebSocketController.cs index 726bdb0..2f30ed1 100644 --- a/GenOnlineService/Controllers/WebSocket/WebSocketController.cs +++ b/GenOnlineService/Controllers/WebSocket/WebSocketController.cs @@ -858,17 +858,18 @@ private async Task ProcessWSMessage(UserWebSocketInstance sourceWS, UserSession if (chatMessage != null) { - if (!sourceUserData.TryConsumeChatMessage()) - { - QueueChatRateLimited(sourceUserSession, sourceUserData, "lobby"); - return; - } - // get lobby Lobby? playerLobby = _lobbyManager.GetLobby(sourceUserSession.currentLobbyID); if (playerLobby != null) { + bool isHostAnnouncement = chatMessage.announcement && playerLobby.Owner == sourceUserSession.m_UserID; + if (!isHostAnnouncement && !sourceUserData.TryConsumeChatMessage()) + { + QueueChatRateLimited(sourceUserSession, sourceUserData, "lobby"); + return; + } + // response WebSocketMessage_LobbyChatMessageOutbound outboundMsg = new WebSocketMessage_LobbyChatMessageOutbound(); outboundMsg.msg_id = (int)EWebSocketMessageID.LOBBY_CHAT_FROM_SERVER;