Sistema de censura de termos proibidos
parent
f142aa1b70
commit
0a4942b5f2
15
README.md
15
README.md
|
@ -9,16 +9,5 @@ COMANDOS
|
|||
|
||||
/gestor | Abre o painel do gestor administrativo
|
||||
|
||||
/serializar <arquivo/nome> <largura> <altura> | Salva uma estrutura no diretorio de estruturas
|
||||
(toma a posicao do jogador como a menos em x, y e z)
|
||||
|
||||
/deserializar <arquivo/nome> <largura> <altura> | Cria uma estrutura do diretorio de estruturas
|
||||
(toma a posicao do jogador como a menos em x, y e z)
|
||||
|
||||
ESTRUTURAS
|
||||
|
||||
Estruturas ficam salvas na pasta `diretório_do_mundo/gestor/estruturas` e são compostas por dois arquivos `.mts` e `.meta`
|
||||
|
||||
ALERTA DE CRASH
|
||||
|
||||
Configurar funcionamento a partir do painel em jogo
|
||||
DADOS
|
||||
O banco de termos proibidos fica armazenada no diretorio do mundo e subdiretorio ´gestor/censura/bad_words_list´ portanto sendo possivel repassar a lista de termos para outro servidor substituindo esse arquivo.
|
||||
|
|
1
init.lua
1
init.lua
|
@ -35,5 +35,6 @@ dofile(modpath.."/recursos/desligar.lua")
|
|||
dofile(modpath.."/recursos/conf.lua")
|
||||
dofile(modpath.."/recursos/moderadores.lua")
|
||||
dofile(modpath.."/recursos/penalidades.lua")
|
||||
dofile(modpath.."/recursos/censura.lua")
|
||||
dofile(modpath.."/recursos/alerta_de_crash.lua")
|
||||
notificar("OK")
|
||||
|
|
|
@ -0,0 +1,117 @@
|
|||
--[[
|
||||
Mod Gestor para Minetest
|
||||
Gestor v2.0 Copyright (C) 2018 BrunoMine (https://github.com/BrunoMine)
|
||||
|
||||
Recebeste uma cópia da GNU Lesser General
|
||||
Public License junto com esse software,
|
||||
se não, veja em <http://www.gnu.org/licenses/>.
|
||||
|
||||
Recurso para censurar palavras no chat publico
|
||||
]]
|
||||
|
||||
|
||||
-- Lista de termos proibidos
|
||||
if gestor.bd.verif("censura", "bad_words_list") == false then
|
||||
gestor.bd.salvar("censura", "bad_words_list", {})
|
||||
end
|
||||
|
||||
-- Variavel de controle
|
||||
local censurar = minetest.settings:get_bool("gestor_censurar_termos_proibidos", false) or false
|
||||
|
||||
-- Tabelas de uso
|
||||
local bad_words = {}
|
||||
local update_tb_bad_words = function()
|
||||
bad_words = gestor.bd.pegar("censura", "bad_words_list")
|
||||
end
|
||||
update_tb_bad_words()
|
||||
|
||||
-- Controle de acessos
|
||||
local acessos = {}
|
||||
minetest.register_on_joinplayer(function(player)
|
||||
acessos[player:get_player_name()] = {}
|
||||
end)
|
||||
minetest.register_on_leaveplayer(function(player)
|
||||
acessos[player:get_player_name()] = nil
|
||||
end)
|
||||
|
||||
-- Registrar aba 'desligar'
|
||||
gestor.registrar_aba("censura", {
|
||||
titulo = "Termos Proibidos",
|
||||
get_formspec = function(name)
|
||||
|
||||
-- Gera string dos moderadores listados
|
||||
local bad_words_string = ""
|
||||
for _,bad_word in pairs(gestor.bd.pegar("censura", "bad_words_list")) do
|
||||
if bad_words_string ~= "" then bad_words_string = bad_words_string .. "," end
|
||||
bad_words_string = bad_words_string .. bad_word
|
||||
end
|
||||
|
||||
local formspec = "label[3.5,1;Termos Proibidos]"
|
||||
.."label[9,1;Lista de Termos Proibidos]"
|
||||
.."textlist[9,1.5;4.5,3;bad_words_list;"..bad_words_string.."]"
|
||||
.."field[3.8,2.3;5,1;new_word;Termo;]"
|
||||
.."button[3.5,2.9;5,1;add_word;Adicionar Termo]"
|
||||
.."button[3.5,3.8;5,1;rem_word;Remover Termo]"
|
||||
|
||||
.."checkbox[3.5,4.6;bad_words_status;Censurar Termos Proibidos;"..tostring(minetest.settings:get("gestor_censurar_termos_proibidos", false)).."]"
|
||||
|
||||
return formspec
|
||||
end,
|
||||
on_receive_fields = function(player, fields)
|
||||
local name = player:get_player_name()
|
||||
|
||||
-- Selecionar item
|
||||
if fields.bad_words_list and table.maxn(gestor.bd.pegar("censura", "bad_words_list")) > 0 then
|
||||
local n = string.split(fields.bad_words_list, ":")
|
||||
acessos[name].escolha = tonumber(n[2]) or 1
|
||||
gestor.menu_principal(name)
|
||||
|
||||
-- Adicionar moderador
|
||||
elseif fields.add_word and string.lower(fields.new_word) ~= "" then
|
||||
local bad_words_list = gestor.bd.pegar("censura", "bad_words_list")
|
||||
table.insert(bad_words_list, string.lower(fields.new_word))
|
||||
gestor.bd.salvar("censura", "bad_words_list", bad_words_list)
|
||||
update_tb_bad_words()
|
||||
gestor.menu_principal(name)
|
||||
|
||||
-- Remover moderador
|
||||
elseif fields.rem_word and acessos[name].escolha then
|
||||
local bad_words_list = gestor.bd.pegar("censura", "bad_words_list")
|
||||
table.remove(bad_words_list, acessos[name].escolha)
|
||||
gestor.bd.salvar("censura", "bad_words_list", bad_words_list)
|
||||
update_tb_bad_words()
|
||||
gestor.menu_principal(name)
|
||||
|
||||
-- Interditar
|
||||
elseif fields.bad_words_status then
|
||||
minetest.settings:set("gestor_censurar_termos_proibidos", fields.bad_words_status)
|
||||
minetest.settings:write()
|
||||
censurar = minetest.settings:get_bool("gestor_censurar_termos_proibidos", false)
|
||||
|
||||
-- Sair
|
||||
elseif fields.exit then
|
||||
acessos[name].escolha = nil
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-- Impedir jogadores silenciados de falaram no chat e restaura o priv de fala se estiver acabado o periodo de penalidade
|
||||
minetest.register_on_chat_message(function(name, message)
|
||||
|
||||
if censurar == false then return end
|
||||
|
||||
-- Deixa todas as palavras no minusculo
|
||||
local m = string.lower(message)
|
||||
|
||||
-- Tenta encontrar cada um dos termos os termos
|
||||
for _,w in ipairs(bad_words) do
|
||||
-- Varre a mensagem em busca do termo
|
||||
if string.match(m, w) then
|
||||
-- Caso encontrar, notifica o jogador
|
||||
minetest.chat_send_player(name, "Proibido usar o termo "..minetest.colorize("#FF0000", m))
|
||||
return true
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
|
|
@ -77,6 +77,7 @@ gestor.registrar_aba("moderadores", {
|
|||
-- Interditar
|
||||
elseif fields.interditar then
|
||||
minetest.settings:set("gestor_interditado", fields.interditar)
|
||||
minetest.settings:write()
|
||||
gestor.interditar_servidor()
|
||||
|
||||
-- Redefir mensagem de interdição
|
||||
|
@ -91,7 +92,7 @@ gestor.registrar_aba("moderadores", {
|
|||
|
||||
|
||||
-- Interditar_servidor
|
||||
gestor.interditado = minetest.settings:get_bool("gestor_interditado", false)
|
||||
gestor.interditado = minetest.settings:get_bool("gestor_interditado", false) or false
|
||||
gestor.interditar_servidor = function()
|
||||
-- Altera variavel global de controle
|
||||
gestor.interditado = true
|
||||
|
|
|
@ -67,6 +67,8 @@ for _,name in ipairs(tempos_penas) do
|
|||
tempos_penas_list_string = tempos_penas_list_string .. name
|
||||
end
|
||||
|
||||
-- Termos proibidos
|
||||
|
||||
|
||||
-- Registrar aba 'diretrizes'
|
||||
gestor.registrar_aba("penalidades", {
|
||||
|
|
Loading…
Reference in New Issue