From 8c0797f50109ed329c8d89104d3247e29c5cc875 Mon Sep 17 00:00:00 2001 From: Timo Smit Date: Thu, 7 Feb 2019 19:09:43 +0100 Subject: [PATCH] Improved censor (refs #87) * can now correctly be disabled * made some extra punishments available --- config/wolfadmin.toml | 6 +++- luascripts/wolfadmin/admin/censor.lua | 32 +++++++++++++++++--- luascripts/wolfadmin/commands/client/say.lua | 4 +-- luascripts/wolfadmin/util/settings.lua | 12 ++++++-- 4 files changed, 45 insertions(+), 9 deletions(-) diff --git a/config/wolfadmin.toml b/config/wolfadmin.toml index b823e8c..c0f74cf 100644 --- a/config/wolfadmin.toml +++ b/config/wolfadmin.toml @@ -40,8 +40,12 @@ interval = 30 [censor] file = "censor.toml" -mode = 1 +enabled = 1 mute = 60 +burn = 1 +slap = 0 +kill = 0 +gib = 0 kick = 1 [game] diff --git a/luascripts/wolfadmin/admin/censor.lua b/luascripts/wolfadmin/admin/censor.lua index 90bdb52..7714f82 100644 --- a/luascripts/wolfadmin/admin/censor.lua +++ b/luascripts/wolfadmin/admin/censor.lua @@ -15,12 +15,12 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . -local auth = wolfa_requireModule("auth.auth") - local admin = wolfa_requireModule("admin.admin") local mutes = wolfa_requireModule("admin.mutes") local history = wolfa_requireModule("admin.history") +local auth = wolfa_requireModule("auth.auth") + local players = wolfa_requireModule("players.players") local events = wolfa_requireModule("util.events") @@ -56,6 +56,30 @@ function censor.filterMessage(...) end function censor.punishClient(clientId) + if settings.get("g_censorBurn") ~= 0 then + admin.burnPlayer(clientId) + + et.trap_SendConsoleCommand(et.EXEC_APPEND, "cchat -1 \"^dburn: ^7"..players.getName(clientId).." ^9burnt his tongue.\";") + end + + if settings.get("g_censorSlap") ~= 0 then + admin.slapPlayer(clientId, 20) + + et.trap_SendConsoleCommand(et.EXEC_APPEND, "cchat -1 \"^dslap: ^7"..players.getName(clientId).." ^9was slapped for his foul language.\";") + end + + if settings.get("g_censorKill") ~= 0 and settings.get("g_censorGib") == 0 then + admin.killPlayer(clientId) + + et.trap_SendConsoleCommand(et.EXEC_APPEND, "cchat -1 \"^dkill: ^7"..players.getName(clientId).." ^9stumbled over his words.\";") + end + + if settings.get("g_censorGib") ~= 0 then + admin.gibPlayer(clientId) + + et.trap_SendConsoleCommand(et.EXEC_APPEND, "cchat -1 \"^dgib: ^7"..players.getName(clientId).." ^9should not have said that.\";") + end + if settings.get("g_censorMute") > 0 then mutes.add(clientId, -1337, players.MUTE_CHAT + players.MUTE_VOICE, settings.get("g_censorMute"), "censor") @@ -114,7 +138,7 @@ function censor.clear() end function censor.onClientConnectAttempt(clientId, firstTime, isBot) - if auth.isPlayerAllowed(clientId, auth.PERM_NOCENSOR) then + if settings.get("g_censor") == 0 or auth.isPlayerAllowed(clientId, auth.PERM_NOCENSOR) then return end @@ -136,7 +160,7 @@ function censor.onClientConnectAttempt(clientId, firstTime, isBot) end function censor.onClientNameChange(clientId, oldName, newName) - if auth.isPlayerAllowed(clientId, auth.PERM_NOCENSOR) then + if settings.get("g_censor") == 0 or auth.isPlayerAllowed(clientId, auth.PERM_NOCENSOR) then return end diff --git a/luascripts/wolfadmin/commands/client/say.lua b/luascripts/wolfadmin/commands/client/say.lua index c79763a..610ae79 100644 --- a/luascripts/wolfadmin/commands/client/say.lua +++ b/luascripts/wolfadmin/commands/client/say.lua @@ -44,10 +44,10 @@ function commandSay(clientId, command, ...) return true end - if not auth.isPlayerAllowed(clientId, auth.PERM_NOCENSOR) then + if settings.get("g_censor") ~= 0 and not auth.isPlayerAllowed(clientId, auth.PERM_NOCENSOR) then local censored, message = censor.filterMessage(...) - if censored and settings.get("g_censorMode") ~= 0 then + if censored then censor.punishClient(clientId) et.G_Say(clientId, util.getChatFromCommand(command), message) diff --git a/luascripts/wolfadmin/util/settings.lua b/luascripts/wolfadmin/util/settings.lua index 528c593..89f6619 100644 --- a/luascripts/wolfadmin/util/settings.lua +++ b/luascripts/wolfadmin/util/settings.lua @@ -30,8 +30,12 @@ local data = { ["g_fileCombis"] = "combis.toml", ["g_fileSprees"] = "sprees.toml", ["g_playerHistory"] = 1, - ["g_censorMode"] = 1, + ["g_censor"] = 1, ["g_censorMute"] = 60, + ["g_censorBurn"] = 1, + ["g_censorSlap"] = 0, + ["g_censorKill"] = 0, + ["g_censorGib"] = 0, ["g_censorKick"] = 1, ["g_combiMessages"] = 3, ["g_combiSounds"] = 3, @@ -101,8 +105,12 @@ local cfgStructure = { }, ["censor"] = { ["file"] = "g_fileCensor", - ["mode"] = "g_censorMode", + ["enabled"] = "g_censor", ["mute"] = "g_censorMute", + ["burn"] = "g_censorBurn", + ["slap"] = "g_censorSlap", + ["kill"] = "g_censorKill", + ["gib"] = "g_censorGib", ["kick"] = "g_censorKick" }, ["game"] = {