From 13cf75262ad1c284c90e68bedbbcb8b909ffee7c Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Tue, 26 Jul 2022 02:16:05 -0500 Subject: [PATCH] Optional profanity filter --- scripts/client/label.js | 4 ++++ scripts/client/nametag.js | 4 ++++ scripts/server/discord.js | 2 ++ scripts/shared/utilities.js | 9 ++++++--- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/scripts/client/label.js b/scripts/client/label.js index 0bcf32bb..8c1c8884 100644 --- a/scripts/client/label.js +++ b/scripts/client/label.js @@ -187,6 +187,10 @@ function renderPropertyEntranceLabel(name, position, locked, isBusiness, price, screenPosition.y -= propertyLabelNameOffset; text = name || " "; + if (profanityFilterEnabled) { + text = replaceProfanityInMessage(text); + } + size = propertyLabelNameFont.measure(text, game.width, 0.0, 0.0, propertyLabelNameFont.size, true, true); propertyLabelNameFont.render(text, [screenPosition.x - size[0] / 2, screenPosition.y - size[1] / 2], game.width, 0.0, 0.0, propertyLabelNameFont.size, (isBusiness) ? toColour(0, 153, 255, 255) : toColour(17, 204, 17, 255), false, true, false, true); } diff --git a/scripts/client/nametag.js b/scripts/client/nametag.js index 4dcf53ba..b9d7788d 100644 --- a/scripts/client/nametag.js +++ b/scripts/client/nametag.js @@ -44,6 +44,10 @@ function loadPausedStatusFont() { // =========================================================================== function updatePlayerNameTag(clientName, characterName, colour, paused, ping) { + if (profanityFilterEnabled) { + characterName = replaceProfanityInMessage(characterName); + } + playerNames[clientName] = characterName; playerColours[clientName] = colour; playerPaused[clientName] = paused; diff --git a/scripts/server/discord.js b/scripts/server/discord.js index 266e3a70..ce0a1566 100644 --- a/scripts/server/discord.js +++ b/scripts/server/discord.js @@ -110,6 +110,7 @@ function messageDiscordChatChannel(messageString) { } messageString = removeColoursInMessage(messageString); + messageString = replaceProfanityInMessage(messageString); triggerDiscordWebHook(messageString, getServerId(), AGRP_DISCORD_WEBHOOK_LOG); } @@ -129,6 +130,7 @@ function messageDiscordEventChannel(messageString) { } messageString = removeColoursInMessage(messageString); + messageString = replaceProfanityInMessage(messageString); triggerDiscordWebHook(messageString, getServerId(), AGRP_DISCORD_WEBHOOK_LOG); } diff --git a/scripts/shared/utilities.js b/scripts/shared/utilities.js index 163d2268..b617b6be 100644 --- a/scripts/shared/utilities.js +++ b/scripts/shared/utilities.js @@ -1098,6 +1098,8 @@ let serverEmoji = [ [":water_buffalo:", "🐃"], [":neutral_face:", "😐"], [":clock1230:", "🕧"], + [":think:", "🤔"], + [":thinking:", "🤔"], [":P", "😛"], [":)", "🙂"], [":D", "😃"], @@ -1105,6 +1107,7 @@ let serverEmoji = [ [":O", "😮"], [":(", "â˜šī¸"], [":|", "😐"], + ["XD", "😆"], ]; // =========================================================================== @@ -3014,9 +3017,9 @@ function removeColoursInMessage(messageText) { */ function replaceProfanityInMessage(messageString) { for (let i in profanityFilterWords) { - while (messageString.indexOf(profanityFilterWords[i]) != -1) { - messageString = messageString.replace(profanityFilterWords[i], fillStringWithCharacter("*", profanityFilterWords[i].length)); - } + let find = profanityFilterWords[i]; + let re = new RegExp(find, 'gi'); + messageString = messageString.replace(re, fillStringWithCharacter('*', find.length - 1)); } return messageString; }