From a7d7ecdb895e602371913f6f3aae07a77cf4c3c8 Mon Sep 17 00:00:00 2001 From: Grav <75702884+Gravxd@users.noreply.github.com> Date: Mon, 29 Jan 2024 20:16:08 +0000 Subject: [PATCH 01/11] feat: custom ban deferral cards with images/customisation supported --- server/admin_server.lua | 24 +++++++++++++++++++++++- shared/util_shared.lua | 9 +++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/server/admin_server.lua b/server/admin_server.lua index 43bd9cb7..71c47440 100644 --- a/server/admin_server.lua +++ b/server/admin_server.lua @@ -946,8 +946,30 @@ Citizen.CreateThread(function() updateBan(blacklisted.banid,newBanData) -- send it off! end PrintDebugMessage("Connection of "..getName(player).." Declined, Banned for "..blacklist[bi].reason..", Ban ID: "..blacklist[bi].banid.."\n", 3) - deferrals.done(string.format( GetLocalisedText("bannedjoin"), blacklist[bi].reason, formatDateString(blacklist[bi].expire), blacklist[bi].banid)) + + local banMessageTitleColour = GetConvar("ea_banMessageTitleColour", "#354557") + local banMessageServerName = GetConvar("ea_banMessageServerName", "EasyAdmin") + local banMessageShowStaff = GetConvar("ea_banMessageShowStaff", "true") + local banMessageStaffName = blacklist[bi].banner + local banMessageFooter = GetConvar("ea_banMessageFooter", "You can appeal this by ban by visiting our discord.") + local banMessageSubHeader = GetConvar("ea_banMessageSubHeader", "You have been banned from this server.") + + if banMessageShowStaff == "false" then + banMessageStaffName = 'Server Staff' + end + + local banMessageReason = getStringUntilSuffix(blacklist[bi].reason, ", Banned by:") + -- gives us a raw ban reason with their nickname as we don't want the staff member displayed due to our new convar // "banned by:" field + + deferrals.done( + '

' .. banMessageServerName .. '


'.. banMessageSubHeader ..'


Expires: ' .. + formatDateString(blacklist[bi].expire) .. '
Banned By: ' .. banMessageStaffName .. + '
Ban Reason: ' .. banMessageReason .. + '
Ban ID: ' .. + blacklist[bi].banid .. + '

' .. banMessageFooter .. '

') return + end end end diff --git a/shared/util_shared.lua b/shared/util_shared.lua index 7ce0c618..4f5bfb79 100644 --- a/shared/util_shared.lua +++ b/shared/util_shared.lua @@ -329,6 +329,15 @@ function mergeTables(t1, t2) return t end +-- used to get raw ban reason +function getStringUntilSuffix(inputStr, suffix) + local endPos = string.find(inputStr, suffix) + if endPos then + return string.sub(inputStr, 1, endPos-1) + else + return inputStr + end +end -- terrible function to look for URLs in a string function matchURL(text_with_URLs) From da66b0d5b7e76ad1d8488fe16a1dc2670d7f479f Mon Sep 17 00:00:00 2001 From: Grav <75702884+Gravxd@users.noreply.github.com> Date: Mon, 29 Jan 2024 21:41:26 +0000 Subject: [PATCH 02/11] tweak(server/admin_server) pull server name from: sv_projectName --- server/admin_server.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/admin_server.lua b/server/admin_server.lua index 71c47440..ea6fb55c 100644 --- a/server/admin_server.lua +++ b/server/admin_server.lua @@ -948,7 +948,7 @@ Citizen.CreateThread(function() PrintDebugMessage("Connection of "..getName(player).." Declined, Banned for "..blacklist[bi].reason..", Ban ID: "..blacklist[bi].banid.."\n", 3) local banMessageTitleColour = GetConvar("ea_banMessageTitleColour", "#354557") - local banMessageServerName = GetConvar("ea_banMessageServerName", "EasyAdmin") + local banMessageServerName = GetConvar("sv_projectName", "EasyAdmin") local banMessageShowStaff = GetConvar("ea_banMessageShowStaff", "true") local banMessageStaffName = blacklist[bi].banner local banMessageFooter = GetConvar("ea_banMessageFooter", "You can appeal this by ban by visiting our discord.") From bfa5c1d7bdd3ae50869c6fd9bb97655426e3869f Mon Sep 17 00:00:00 2001 From: Grav <75702884+Gravxd@users.noreply.github.com> Date: Mon, 29 Jan 2024 22:31:15 +0000 Subject: [PATCH 03/11] tweak(server/admin_server) pull sv_projectname convar as backup --- server/admin_server.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server/admin_server.lua b/server/admin_server.lua index ea6fb55c..60ce182b 100644 --- a/server/admin_server.lua +++ b/server/admin_server.lua @@ -948,8 +948,7 @@ Citizen.CreateThread(function() PrintDebugMessage("Connection of "..getName(player).." Declined, Banned for "..blacklist[bi].reason..", Ban ID: "..blacklist[bi].banid.."\n", 3) local banMessageTitleColour = GetConvar("ea_banMessageTitleColour", "#354557") - local banMessageServerName = GetConvar("sv_projectName", "EasyAdmin") - local banMessageShowStaff = GetConvar("ea_banMessageShowStaff", "true") + local banMessageServerName = GetConvar("ea_banMessageServerName", GetConvar("sv_projectName", "EasyAdmin")) local banMessageShowStaff = GetConvar("ea_banMessageShowStaff", "true") local banMessageStaffName = blacklist[bi].banner local banMessageFooter = GetConvar("ea_banMessageFooter", "You can appeal this by ban by visiting our discord.") local banMessageSubHeader = GetConvar("ea_banMessageSubHeader", "You have been banned from this server.") From 723fea91c8fef6a8bf7de38d7a401d91162fa575 Mon Sep 17 00:00:00 2001 From: Grav <75702884+Gravxd@users.noreply.github.com> Date: Mon, 29 Jan 2024 22:32:24 +0000 Subject: [PATCH 04/11] tweak(server/admin_server) allow convar for custom watermark --- server/admin_server.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/server/admin_server.lua b/server/admin_server.lua index 60ce182b..f1091a09 100644 --- a/server/admin_server.lua +++ b/server/admin_server.lua @@ -952,7 +952,8 @@ Citizen.CreateThread(function() local banMessageStaffName = blacklist[bi].banner local banMessageFooter = GetConvar("ea_banMessageFooter", "You can appeal this by ban by visiting our discord.") local banMessageSubHeader = GetConvar("ea_banMessageSubHeader", "You have been banned from this server.") - + local banMessageWatermark = GetConvar("ea_banMessageWatermark", "https://i.imgur.com/vRFuxUN.png") + if banMessageShowStaff == "false" then banMessageStaffName = 'Server Staff' end @@ -966,7 +967,7 @@ Citizen.CreateThread(function() '
Ban Reason: ' .. banMessageReason .. '
Ban ID: ' .. blacklist[bi].banid .. - '

' .. banMessageFooter .. '

') + '

' .. banMessageFooter .. '

') return end From ff679a6fc0bd15926458db1e64ac1dbcde2ba924 Mon Sep 17 00:00:00 2001 From: Grav <75702884+Gravxd@users.noreply.github.com> Date: Tue, 30 Jan 2024 00:14:28 +0000 Subject: [PATCH 05/11] tweak(language) adding "bansuffix" tag to help extract raw bans for better usage --- language/de.json | 1 + language/en.json | 1 + language/es.json | 1 + language/fr.json | 1 + language/it.json | 1 + language/nl.json | 1 + language/pl.json | 1 + 7 files changed, 7 insertions(+) diff --git a/language/de.json b/language/de.json index 55e78aa1..b970002c 100644 --- a/language/de.json +++ b/language/de.json @@ -85,6 +85,7 @@ "kicked": "Gekickt von %s, \nGrund: %s", "banned": "Du wurdest von diesem server gebannt, \nGrund: %s, \nBann Läuft am %s ab.", "reasonadd": " ( Spielername: %s ), \nGebannt von: %s", + "bansuffix": ", \nGebannt von: ", "nongiven": "Keinen gegeben", "announcement": "Announcement", "announcementguide": "Send an announcement to all players", diff --git a/language/en.json b/language/en.json index 91035fcc..201e9721 100644 --- a/language/en.json +++ b/language/en.json @@ -84,6 +84,7 @@ "kicked": "Kicked by %s, Reason: %s", "banned": "You have been banned from this Server, Reason: %s, Ban Expires: %s", "reasonadd": " ( Nickname: %s ), Banned by: %s", + "bansuffix": ", Banned by: ", "nongiven": "None Provided", "announcement": "Announcement", "announcementguide": "Send an announcement to all players", diff --git a/language/es.json b/language/es.json index 6b989164..f9594468 100644 --- a/language/es.json +++ b/language/es.json @@ -84,6 +84,7 @@ "kicked": "Has sido kickeado por %s, Razon: %s", "banned": "Has sido baneado del servidor, Razon: %s, Expira: %s", "reasonadd": " ( El jugador: %s ), ha sido baneado por: %s", + "bansuffix": ", ha sido baneado por: ", "nongiven": "No se ha proporcionado", "announcement": "Anuncio", "announcementguide": "Send an announcement to all players", diff --git a/language/fr.json b/language/fr.json index 34705420..e41fee25 100644 --- a/language/fr.json +++ b/language/fr.json @@ -85,6 +85,7 @@ "kicked": "Éjecté par %s, Raison : %s", "banned": "Vous avez été banni du serveur, \nRaison : %s, Expiration du bannissement : %s", "reasonadd": " ( Pseudo : %s ), banni par : %s", + "bansuffix": ", banni par : ", "nongiven": "Non autorisé", "announcement": "Announcement", "announcementguide": "Send an announcement to all players", diff --git a/language/it.json b/language/it.json index ff1426bc..3241bf60 100644 --- a/language/it.json +++ b/language/it.json @@ -84,6 +84,7 @@ "kicked": "Espulso da %s, Motivo: %s", "banned": "Sei stato bandito da questo server, Motivo: %s, Il Ban Scade: %s", "reasonadd": " ( Nickname: %s ), Bandito da: %s", + "bansuffix": ", Bandito da: ", "nongiven": "Non fornito", "announcement": "Announcement", "announcementguide": "Send an announcement to all players", diff --git a/language/nl.json b/language/nl.json index d187605f..eaf7828f 100644 --- a/language/nl.json +++ b/language/nl.json @@ -85,6 +85,7 @@ "kicked": "Gekickt door %s, Reden: %s", "banned": "Je bent verbannen van deze Server, Reden: %s, Ban Vervalt: %s", "reasonadd": " ( Gebruikersnaam: %s ), Verbannen door: %s", + "bansuffix": ", Verbannen door: ", "nongiven": "Geen reden opgegeven", "announcement": "Mededeling", "announcementguide": "Stuur een mededeling naar alle spelers", diff --git a/language/pl.json b/language/pl.json index 38c9b73b..0ee84b23 100644 --- a/language/pl.json +++ b/language/pl.json @@ -84,6 +84,7 @@ "kicked": "Wyrzucony przez %s, Powód: %s", "banned": "Zostałeś zbanowany na tym serwerze, Powód: %s, Czas trwania: %s", "reasonadd": " ( Gracz: %s ), Zablokowany przez: %s", + "bansuffix": ", Zablokowany przez: ", "nongiven": "Nie podano", "announcement": "Ogłoszenie", "announcementguide": "Wyślij ogłoszenie do wszystkich graczy", From 791be4569fa0edd1d282909fb06cbf9fa992e18e Mon Sep 17 00:00:00 2001 From: Grav <75702884+Gravxd@users.noreply.github.com> Date: Tue, 30 Jan 2024 00:14:54 +0000 Subject: [PATCH 06/11] tweak(server/admin_server) extract ban reason dynamically (works with diff languages) --- server/admin_server.lua | 5 +++-- shared/util_shared.lua | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/server/admin_server.lua b/server/admin_server.lua index f1091a09..530810c3 100644 --- a/server/admin_server.lua +++ b/server/admin_server.lua @@ -948,7 +948,8 @@ Citizen.CreateThread(function() PrintDebugMessage("Connection of "..getName(player).." Declined, Banned for "..blacklist[bi].reason..", Ban ID: "..blacklist[bi].banid.."\n", 3) local banMessageTitleColour = GetConvar("ea_banMessageTitleColour", "#354557") - local banMessageServerName = GetConvar("ea_banMessageServerName", GetConvar("sv_projectName", "EasyAdmin")) local banMessageShowStaff = GetConvar("ea_banMessageShowStaff", "true") + local banMessageServerName = GetConvar("ea_banMessageServerName", GetConvar("sv_projectName", "EasyAdmin")) + local banMessageShowStaff = GetConvar("ea_banMessageShowStaff", "true") local banMessageStaffName = blacklist[bi].banner local banMessageFooter = GetConvar("ea_banMessageFooter", "You can appeal this by ban by visiting our discord.") local banMessageSubHeader = GetConvar("ea_banMessageSubHeader", "You have been banned from this server.") @@ -958,7 +959,7 @@ Citizen.CreateThread(function() banMessageStaffName = 'Server Staff' end - local banMessageReason = getStringUntilSuffix(blacklist[bi].reason, ", Banned by:") + local banMessageReason = getRawBanReason(blacklist[bi].reason, GetLocalisedText("bansuffix")) -- gives us a raw ban reason with their nickname as we don't want the staff member displayed due to our new convar // "banned by:" field deferrals.done( diff --git a/shared/util_shared.lua b/shared/util_shared.lua index 4f5bfb79..5c0d4980 100644 --- a/shared/util_shared.lua +++ b/shared/util_shared.lua @@ -330,7 +330,7 @@ function mergeTables(t1, t2) end -- used to get raw ban reason -function getStringUntilSuffix(inputStr, suffix) +function getRawBanReason(inputStr, suffix) local endPos = string.find(inputStr, suffix) if endPos then return string.sub(inputStr, 1, endPos-1) From 36d76b0795cb40d936fe3f4a84541d0a10af85d6 Mon Sep 17 00:00:00 2001 From: Grav <75702884+Gravxd@users.noreply.github.com> Date: Wed, 31 Jan 2024 00:31:16 +0000 Subject: [PATCH 07/11] tweak(server/admin_server) replace IMGUR with local data: link --- server/admin_server.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/admin_server.lua b/server/admin_server.lua index 530810c3..f632e3fc 100644 --- a/server/admin_server.lua +++ b/server/admin_server.lua @@ -953,7 +953,7 @@ Citizen.CreateThread(function() local banMessageStaffName = blacklist[bi].banner local banMessageFooter = GetConvar("ea_banMessageFooter", "You can appeal this by ban by visiting our discord.") local banMessageSubHeader = GetConvar("ea_banMessageSubHeader", "You have been banned from this server.") - local banMessageWatermark = GetConvar("ea_banMessageWatermark", "https://i.imgur.com/vRFuxUN.png") + local banMessageWatermark = GetConvar("ea_banMessageWatermark", "data:image/png;base64,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") if banMessageShowStaff == "false" then banMessageStaffName = 'Server Staff' From 5973c1313b7cc247b9595bbde38440d09e35d330 Mon Sep 17 00:00:00 2001 From: Grav <75702884+Gravxd@users.noreply.github.com> Date: Sat, 10 Feb 2024 20:06:01 +0000 Subject: [PATCH 08/11] tweak(language) remove un-needed locale in favour of regex --- language/de.json | 1 - language/en.json | 1 - language/es.json | 1 - language/fr.json | 1 - language/it.json | 1 - language/nl.json | 1 - language/pl.json | 1 - 7 files changed, 7 deletions(-) diff --git a/language/de.json b/language/de.json index b970002c..55e78aa1 100644 --- a/language/de.json +++ b/language/de.json @@ -85,7 +85,6 @@ "kicked": "Gekickt von %s, \nGrund: %s", "banned": "Du wurdest von diesem server gebannt, \nGrund: %s, \nBann Läuft am %s ab.", "reasonadd": " ( Spielername: %s ), \nGebannt von: %s", - "bansuffix": ", \nGebannt von: ", "nongiven": "Keinen gegeben", "announcement": "Announcement", "announcementguide": "Send an announcement to all players", diff --git a/language/en.json b/language/en.json index 201e9721..91035fcc 100644 --- a/language/en.json +++ b/language/en.json @@ -84,7 +84,6 @@ "kicked": "Kicked by %s, Reason: %s", "banned": "You have been banned from this Server, Reason: %s, Ban Expires: %s", "reasonadd": " ( Nickname: %s ), Banned by: %s", - "bansuffix": ", Banned by: ", "nongiven": "None Provided", "announcement": "Announcement", "announcementguide": "Send an announcement to all players", diff --git a/language/es.json b/language/es.json index f9594468..6b989164 100644 --- a/language/es.json +++ b/language/es.json @@ -84,7 +84,6 @@ "kicked": "Has sido kickeado por %s, Razon: %s", "banned": "Has sido baneado del servidor, Razon: %s, Expira: %s", "reasonadd": " ( El jugador: %s ), ha sido baneado por: %s", - "bansuffix": ", ha sido baneado por: ", "nongiven": "No se ha proporcionado", "announcement": "Anuncio", "announcementguide": "Send an announcement to all players", diff --git a/language/fr.json b/language/fr.json index e41fee25..34705420 100644 --- a/language/fr.json +++ b/language/fr.json @@ -85,7 +85,6 @@ "kicked": "Éjecté par %s, Raison : %s", "banned": "Vous avez été banni du serveur, \nRaison : %s, Expiration du bannissement : %s", "reasonadd": " ( Pseudo : %s ), banni par : %s", - "bansuffix": ", banni par : ", "nongiven": "Non autorisé", "announcement": "Announcement", "announcementguide": "Send an announcement to all players", diff --git a/language/it.json b/language/it.json index 3241bf60..ff1426bc 100644 --- a/language/it.json +++ b/language/it.json @@ -84,7 +84,6 @@ "kicked": "Espulso da %s, Motivo: %s", "banned": "Sei stato bandito da questo server, Motivo: %s, Il Ban Scade: %s", "reasonadd": " ( Nickname: %s ), Bandito da: %s", - "bansuffix": ", Bandito da: ", "nongiven": "Non fornito", "announcement": "Announcement", "announcementguide": "Send an announcement to all players", diff --git a/language/nl.json b/language/nl.json index eaf7828f..d187605f 100644 --- a/language/nl.json +++ b/language/nl.json @@ -85,7 +85,6 @@ "kicked": "Gekickt door %s, Reden: %s", "banned": "Je bent verbannen van deze Server, Reden: %s, Ban Vervalt: %s", "reasonadd": " ( Gebruikersnaam: %s ), Verbannen door: %s", - "bansuffix": ", Verbannen door: ", "nongiven": "Geen reden opgegeven", "announcement": "Mededeling", "announcementguide": "Stuur een mededeling naar alle spelers", diff --git a/language/pl.json b/language/pl.json index 0ee84b23..38c9b73b 100644 --- a/language/pl.json +++ b/language/pl.json @@ -84,7 +84,6 @@ "kicked": "Wyrzucony przez %s, Powód: %s", "banned": "Zostałeś zbanowany na tym serwerze, Powód: %s, Czas trwania: %s", "reasonadd": " ( Gracz: %s ), Zablokowany przez: %s", - "bansuffix": ", Zablokowany przez: ", "nongiven": "Nie podano", "announcement": "Ogłoszenie", "announcementguide": "Wyślij ogłoszenie do wszystkich graczy", From c792fa34828573f2b7b0714b2eedf73b2abc3b4d Mon Sep 17 00:00:00 2001 From: Grav <75702884+Gravxd@users.noreply.github.com> Date: Sat, 10 Feb 2024 20:06:18 +0000 Subject: [PATCH 09/11] tweak(server/admin_server) add regex to format ban message reason --- server/admin_server.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/admin_server.lua b/server/admin_server.lua index f632e3fc..7faed5a7 100644 --- a/server/admin_server.lua +++ b/server/admin_server.lua @@ -959,7 +959,7 @@ Citizen.CreateThread(function() banMessageStaffName = 'Server Staff' end - local banMessageReason = getRawBanReason(blacklist[bi].reason, GetLocalisedText("bansuffix")) + local banMessageReason = blacklist[bi].reason:gsub(string.format(", .*: %s", banMessageStaffName), "") -- gives us a raw ban reason with their nickname as we don't want the staff member displayed due to our new convar // "banned by:" field deferrals.done( From 01031573353dc2b75640fd2b6138a26a91a24ebc Mon Sep 17 00:00:00 2001 From: Grav <75702884+Gravxd@users.noreply.github.com> Date: Sat, 10 Feb 2024 20:07:42 +0000 Subject: [PATCH 10/11] fix(server/admin_server) set staff name AFTER regex to avoid potential conflict --- server/admin_server.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/admin_server.lua b/server/admin_server.lua index 7faed5a7..5a533db5 100644 --- a/server/admin_server.lua +++ b/server/admin_server.lua @@ -955,13 +955,13 @@ Citizen.CreateThread(function() local banMessageSubHeader = GetConvar("ea_banMessageSubHeader", "You have been banned from this server.") local banMessageWatermark = GetConvar("ea_banMessageWatermark", "data:image/png;base64,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") + local banMessageReason = blacklist[bi].reason:gsub(string.format(", .*: %s", banMessageStaffName), "") + -- gives us a raw ban reason with their nickname as we don't want the staff member displayed due to our new convar // "banned by:" field + if banMessageShowStaff == "false" then banMessageStaffName = 'Server Staff' end - local banMessageReason = blacklist[bi].reason:gsub(string.format(", .*: %s", banMessageStaffName), "") - -- gives us a raw ban reason with their nickname as we don't want the staff member displayed due to our new convar // "banned by:" field - deferrals.done( '

' .. banMessageServerName .. '


'.. banMessageSubHeader ..'


Expires: ' .. formatDateString(blacklist[bi].expire) .. '
Banned By: ' .. banMessageStaffName .. From 028f94c6b346692743c66c392d1e9fc879b1612b Mon Sep 17 00:00:00 2001 From: Grav <75702884+Gravxd@users.noreply.github.com> Date: Mon, 11 Mar 2024 11:38:36 +0000 Subject: [PATCH 11/11] tweak(shared/util_shared) remove ununsed function reference --- shared/util_shared.lua | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/shared/util_shared.lua b/shared/util_shared.lua index 5c0d4980..0dfeaa00 100644 --- a/shared/util_shared.lua +++ b/shared/util_shared.lua @@ -329,16 +329,6 @@ function mergeTables(t1, t2) return t end --- used to get raw ban reason -function getRawBanReason(inputStr, suffix) - local endPos = string.find(inputStr, suffix) - if endPos then - return string.sub(inputStr, 1, endPos-1) - else - return inputStr - end -end - -- terrible function to look for URLs in a string function matchURL(text_with_URLs)