From 17d7014487d3d59a16bd97f174ee336826f85ae6 Mon Sep 17 00:00:00 2001 From: John Lillis Date: Sat, 8 Jul 2023 03:36:25 -0400 Subject: [PATCH] Add limit to admin chat message length Limit is 225 characters: the max chatbox message length, minus 7 for "ADMIN> ", minus 22 (max length for a player name), minus 2 (for ": "). --- [admin]/admin/admin_definitions.lua | 3 +++ [admin]/admin/client/gui/admin_main.lua | 1 + [admin]/admin/server/admin_server.lua | 3 +++ [admin]/admin2/admin_definitions.lua | 3 +++ [admin]/admin2/client/main/admin_chat.lua | 1 + [admin]/admin2/server/admin_server.lua | 3 +++ 6 files changed, 14 insertions(+) diff --git a/[admin]/admin/admin_definitions.lua b/[admin]/admin/admin_definitions.lua index 290336a4d..dbb610221 100644 --- a/[admin]/admin/admin_definitions.lua +++ b/[admin]/admin/admin_definitions.lua @@ -19,6 +19,9 @@ function enum ( args, prefix ) end end +-- MISC DEFINITIONS +ADMIN_CHAT_MAXLENGTH = 225 + -- EVENT CALLS enum diff --git a/[admin]/admin/client/gui/admin_main.lua b/[admin]/admin/client/gui/admin_main.lua index 2b0865af0..4da6ad397 100644 --- a/[admin]/admin/client/gui/admin_main.lua +++ b/[admin]/admin/client/gui/admin_main.lua @@ -333,6 +333,7 @@ y=y+B aTab1.VehicleHealth = guiCreateLabel ( 0.26, y, 0.25, 0.04, "Vehicle Heal guiGridListAddColumn ( aTab5.AdminPlayers, "Admins", 0.90 ) aTab5.AdminChatSound = guiCreateCheckBox ( 0.79, 0.86, 0.18, 0.04, "Play Sound", true, true, aTab5.Tab ) aTab5.AdminText = guiCreateEdit ( 0.03, 0.92, 0.80, 0.06, "", true, aTab5.Tab ) + guiEditSetMaxLength(aTab5.AdminText, ADMIN_CHAT_MAXLENGTH) aTab5.AdminSay = guiCreateButton ( 0.85, 0.92, 0.08, 0.06, "Say", true, aTab5.Tab ) aTab5.AdminChatHelp = guiCreateButton ( 0.94, 0.92, 0.03, 0.06, "?", true, aTab5.Tab ) diff --git a/[admin]/admin/server/admin_server.lua b/[admin]/admin/server/admin_server.lua index 66be06a8f..42787cd40 100644 --- a/[admin]/admin/server/admin_server.lua +++ b/[admin]/admin/server/admin_server.lua @@ -1631,6 +1631,9 @@ end ) addEvent ( "aAdminChat", true ) addEventHandler ( "aAdminChat", root, function ( chat ) + if #chat > ADMIN_CHAT_MAXLENGTH then + return + end if checkClient( true, source, 'aAdminChat' ) then return end for id, player in ipairs(getElementsByType("player")) do if ( aPlayers[player]["chat"] ) then diff --git a/[admin]/admin2/admin_definitions.lua b/[admin]/admin2/admin_definitions.lua index 641af358d..e6b25163d 100644 --- a/[admin]/admin2/admin_definitions.lua +++ b/[admin]/admin2/admin_definitions.lua @@ -21,6 +21,9 @@ function enum(args, prefix) end end +-- MISC DEFINITIONS +ADMIN_CHAT_MAXLENGTH = 225 + -- EVENT CALLS enum( diff --git a/[admin]/admin2/client/main/admin_chat.lua b/[admin]/admin2/client/main/admin_chat.lua index 6babedb0f..1df855694 100644 --- a/[admin]/admin2/client/main/admin_chat.lua +++ b/[admin]/admin2/client/main/admin_chat.lua @@ -23,6 +23,7 @@ function aChatTab.Create(tab) aChatTab.AdminChatSound = guiCreateCheckBox(0.81, 0.83, 0.18, 0.04, "Play Sound", aGetSetting("adminChatSound"), true, tab) aChatTab.AdminChatOutput = guiCreateCheckBox(0.81, 0.87, 0.18, 0.04, "Output", aGetSetting("adminChatOutput"), true, tab) aChatTab.AdminText = guiCreateEdit(0.01, 0.92, 0.78, 0.06, "", true, tab) + guiEditSetMaxLength(aChatTab.AdminText, ADMIN_CHAT_MAXLENGTH) aChatTab.AdminSay = guiCreateButton(0.80, 0.92, 0.19, 0.06, "Say", true, tab) addEventHandler("aClientAdminChat", root, aChatTab.onClientAdminChat) diff --git a/[admin]/admin2/server/admin_server.lua b/[admin]/admin2/server/admin_server.lua index ac88395ad..52c8a4dfe 100644 --- a/[admin]/admin2/server/admin_server.lua +++ b/[admin]/admin2/server/admin_server.lua @@ -477,6 +477,9 @@ addEventHandler( "aAdminChat", root, function(chat) + if #chat >= ADMIN_CHAT_MAXLENGTH then + return + end for id, player in ipairs(getElementsByType("player")) do if (aPlayers[player]["chat"]) then triggerClientEvent(player, "aClientAdminChat", source, chat)