From 1aec2525794c3ffa6dc3501f4e64bfa5d9082593 Mon Sep 17 00:00:00 2001 From: Tooze Date: Sat, 18 Jul 2026 06:44:38 -0400 Subject: [PATCH] OOPS! packet limit crash fixed --- .../main/core/game/system/communication/GlobalChat.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Server/src/main/core/game/system/communication/GlobalChat.kt b/Server/src/main/core/game/system/communication/GlobalChat.kt index 72f67d88f..1c8a0edde 100644 --- a/Server/src/main/core/game/system/communication/GlobalChat.kt +++ b/Server/src/main/core/game/system/communication/GlobalChat.kt @@ -38,13 +38,16 @@ class GlobalChat : Commands { "%u" to "", "%" to "" ) - private val COMMON_SHORTCUT_PATTERN = Regex( - "%ironman|%chat|%hcim|%uim|%/trans|%trans(?![=])|%/shad|%shad(?![=])|%/str|%str(?![=])|%/u|%u(?![=])|%" - ) + private val COMMON_SHORTCUT_PATTERN = Regex("%ironman|%chat|%hcim|%uim|%/trans|%trans(?![=])|%/shad|%shad(?![=])|%/str|%str(?![=])|%/u|%u(?![=])|%") + private const val MAX_ENCODED_MESSAGE_LENGTH = 255 fun process(sender: String, message: String, chatIcon: Int) { val msgSD = prepare(sender, message, false, chatIcon) val msgHD = prepare(sender, message, true, chatIcon) + if (msgSD.length > MAX_ENCODED_MESSAGE_LENGTH || msgHD.length > MAX_ENCODED_MESSAGE_LENGTH) { + return + } + for (player in Repository.players.filter { !getAttribute(it, ATTR_GLOBAL_MUTE, false) }) { if (player.interfaceManager.isResizable) sendMessage(player, msgHD)