minetest-chat-filter/init.lua

218 lines
4.2 KiB
Lua
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

local function verify_message_from_filter(message)
local allow_msg = true
local filter = {
--English
"fuck",
"bitch",
"shit",
"shitstorm",
"shitstain",
"dick",
"cock",
"nigger",
"faggot",
"gay",
"whore",
"incel",
"cuck",
"fucker",
"motherfucker",
"retard",
"penis",
"vagina",
"vag",
"penile",
"autistic",
"autist",
"pussy",
"masturbate",
"sex",
"intercourse",
"asshole",
"asswhipe",
"cocksucker",
"bitchass",
"titties",
"tits",
"boobs",
"breast",
"breasts",
"degenerate",
"bastard",
--Russian
"сука",
"блять",
"бля",
"мля",
"блин",
"твою мать",
"твою же мать",
"дибил",
"аут",
"аутист",
"манда",
"ебать",
"ебало закрой",
"заебал",
"отвали",
"заткнись",
"мудак",
"хуй",
"охуел?",
"это пиздец",
"пизда",
"сволочь",
"жопа",
"гавно",
"лох",
"гандон",
"ублюдок",
"срать",
"мне насрать",
"мне похуй",
"черт",
"трахнуть",
"трахнул",
"дегенерат",
"хрен",
"хуй",
"дерьмо",
"пошел к чорту",
"мне плевать",
"херня",
"хрень",
"один хрен",
"ни хрена",
"ну его нахрен",
"иди нахер",
"нахрен",
"пошёл",
"нахер",
"нахрен",
--German
"arschloch",
"arsch",
"schwanz",
"wichser",
"schlampe",
"hurre",
"fick dich",
"mutterficker",
"hurensohn",
"mastubiren",
"scheide",
"geschlechtsverkehr",
"fotze",
"missgeburt",
"missgeburt",
"vollidiot",
"brüste",
"titten",
"scheiße"
}
--Verify if message contains any of the following disallowed words
for k,v in pairs(filter) do
local disallowed_word = v
local to_verify = string.lower(message)
if string.match(to_verify, disallowed_word) then
allow_msg = false
break
end
end
--return boolean
return allow_msg
end
minetest.register_chatcommand("me", {
func = function(name, param)
local player = minetest.get_player_by_name(name)
local message = param:match("^(%S+)%s(.+)$")
if not player then
return true
elseif not message then
return true, "Only works by putting a message inside"
end
local msg = "* "..name.." "..message
local allow_message = verify_message_from_filter(message)
if allow_message == true then
--Add modified chat message
minetest.chat_send_all(msg)
elseif allow_message == false then
minetest.chat_send_player(name, minetest.colorize("#000000" ,"**You had a curse word in the sentense it didn't get send sorry!"))
return true
end
return true
end
})
minetest.register_chatcommand("msg", {
params = "<name> <message>",
description = "Send a private message",
privs = {shout=true},
func = function(name, param)
local sendto, message = param:match("^(%S+)%s(.+)$")
if not sendto then
return false, "Invalid usage, see /help msg."
end
if not minetest.get_player_by_name(sendto) then
return false, "The player " .. sendto
.. " is not online."
end
local allow_message = verify_message_from_filter(message)
if allow_message == true then
minetest.chat_send_player(sendto, "PM from " .. name .. ": "
.. message)
return true, "Message sent."
elseif allow_message == false then
minetest.chat_send_player(name, minetest.colorize("#000000" ,"**You had a curse word in the sentense it didn't get send sorry!"))
return true
end
end,
})
minetest.register_on_chat_message(function(name, message)
local allow_message = verify_message_from_filter(message)
if allow_message == true then
minetest.chat_send_all("<"..name.."> "..message)
elseif allow_message == false then
minetest.chat_send_player(name, minetest.colorize("#000000" ,"**You had a bad word in the sentense it didn't get send sorry!"))
return true
end
return true
end)