2018-07-18 11:53:24 -07:00
--[[
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 edi ç ã o de diretrizes do servidor
] ]
2018-11-12 13:03:08 -08:00
-- Tradutor de texto
local S = gestor.S
2018-07-18 11:53:24 -07:00
-- Lista de configurações alteraveis
local lista_configs = {
-- Nome do servidor
{
2018-11-12 13:03:08 -08:00
name = S ( " Nome do Servidor " ) ,
2018-07-18 11:53:24 -07:00
format = " string " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Esse nome vai ser exibido na lista de servidores publicos " ) ,
2018-07-18 11:53:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " server_name " )
2018-07-18 11:53:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " server_name " , value )
2018-07-18 11:53:24 -07:00
end ,
} ,
-- Descritivo do servidor
{
2018-11-12 13:03:08 -08:00
name = S ( " Descritivo do Servidor " ) ,
2018-07-18 11:53:24 -07:00
format = " string " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Esse texto descritivo do servidor vai ser exibido na lista de servidores publicos " ) ,
2018-07-18 11:53:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " server_description " )
2018-07-18 11:53:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " server_description " , value )
2018-07-18 11:53:24 -07:00
end ,
} ,
-- Website do servidor
{
2018-11-12 13:03:08 -08:00
name = S ( " Website do Servidor " ) ,
2018-07-18 11:53:24 -07:00
format = " string " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Precisar ser o URL do website do servidor " ) ,
2018-07-18 11:53:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " server_url " )
2018-07-18 11:53:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " server_url " , value )
2018-07-18 11:53:24 -07:00
end ,
} ,
-- Endereço do servidor
{
2018-11-12 13:03:08 -08:00
name = S ( " Endereço do Servidor " ) ,
2018-07-18 11:53:24 -07:00
format = " string " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Endereço do servidor " ) ,
2018-07-18 11:53:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " server_address " )
2018-07-18 11:53:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " server_address " , value )
2018-07-18 11:53:24 -07:00
end ,
} ,
-- Porta do servidor
{
2018-11-12 13:03:08 -08:00
name = S ( " Porta UDP do Servidor " ) ,
2018-07-18 11:53:24 -07:00
format = " int " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Porta UDP do onde o servidor de Minetest vai operar na hospedagem " ) ,
2018-07-18 11:53:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " port " )
2018-07-18 11:53:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " port " , value )
2018-07-18 11:53:24 -07:00
end ,
} ,
2018-07-18 14:14:24 -07:00
-- Anunciar Servidor
{
2018-11-12 13:03:08 -08:00
name = S ( " Anunciar Servidor " ) ,
2018-07-18 14:14:24 -07:00
format = " bool " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Anunciar Servidor na lista de servidores " ) ,
checkbox_name = S ( " Anunciar Servidor " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " server_announce " ) or " true "
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " server_announce " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
-- Spawn Estatico
{
2018-11-12 13:03:08 -08:00
name = S ( " Spawn Estatico " ) ,
2018-07-18 14:14:24 -07:00
format = " string " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Coordenada do spawn estatico do servidor onde os jogadores vao spawnar ou respawnar apos morrer " )
.. " \n " .. S ( " Exemplo: " )
2018-07-18 14:14:24 -07:00
.. " \n 1500 45 -555 " ,
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " static_spawnpoint " ) or " "
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " static_spawnpoint " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
-- Senha do Servidor
{
2018-11-12 13:03:08 -08:00
name = S ( " Senha do Servidor " ) ,
2018-07-18 14:14:24 -07:00
format = " string " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Senha obrigatoria para novos jogadores " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " default_password " )
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " default_password " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
2018-07-18 11:53:24 -07:00
-- Vagas/Slots
{
2018-11-12 13:03:08 -08:00
name = S ( " Vagas " ) ,
2018-07-18 11:53:24 -07:00
format = " int " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Vagas para jogadores online " )
.. " \n " .. S ( " Jogadores com o privilegio server possuem vaga reservada " ) ,
2018-07-18 11:53:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " max_users " )
2018-07-18 11:53:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " max_users " , value )
2018-07-18 11:53:24 -07:00
end ,
} ,
-- PvP
{
2018-11-12 13:03:08 -08:00
name = S ( " PvP " ) ,
2018-07-18 11:53:24 -07:00
format = " bool " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Permitir que jogadores ataquem diretamente outros jogadores " ) ,
checkbox_name = S ( " Ativar PvP " ) ,
2018-07-18 11:53:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " enable_pvp " ) or " true "
2018-07-18 11:53:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " enable_pvp " , value )
2018-07-18 11:53:24 -07:00
end ,
} ,
2018-07-18 14:14:24 -07:00
-- Dano
{
2018-11-12 13:03:08 -08:00
name = S ( " Dano " ) ,
2018-07-18 14:14:24 -07:00
format = " bool " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Permitir que jogadores levem dano " ) ,
checkbox_name = S ( " Ativar Dano " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " enable_damage " ) or " true "
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " enable_damage " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
-- Modo Criativo
{
2018-11-12 13:03:08 -08:00
name = S ( " Modo Criativo " ) ,
2018-07-18 14:14:24 -07:00
format = " bool " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Permitir que jogar no modo criativo incluindo inventario criativo e itens ilimitados " ) ,
checkbox_name = S ( " Ativar Modo Criativo " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " creative_mode " ) or " true "
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " creative_mode " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
-- Distancia para ver Jogadores
{
2018-11-12 13:03:08 -08:00
name = S ( " Distancia para ver Jogadores " ) ,
2018-07-18 14:14:24 -07:00
format = " int " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Distancia minima para visualizar outros jogadores no mapa " )
.. " \n " .. S ( " Defina 0 para distancia ilimitada " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " player_transfer_distance " )
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " player_transfer_distance " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
-- Permanencia de Itens Dropados
{
2018-11-12 13:03:08 -08:00
name = S ( " Permanencia de Itens Dropados " ) ,
2018-07-18 14:14:24 -07:00
format = " int " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Tempo em segundos que um item fica dropado ate ser removido automaticamente pelo servidor " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " item_entity_ttl " ) or 900
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " item_entity_ttl " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
-- Mostrar status ao conectar
{
2018-11-12 13:03:08 -08:00
name = S ( " Mostrar status ao conectar " ) ,
2018-07-18 14:14:24 -07:00
format = " bool " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Mostrar status do servidor ao conectar " ) ,
checkbox_name = S ( " Mostrar Status " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " show_statusline_on_connect " ) or " true "
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " show_statusline_on_connect " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
-- Tempo do Ciclo dia/noite
{
2018-11-12 13:03:08 -08:00
name = S ( " Tempo do Ciclo dia/noite " ) ,
2018-07-18 14:14:24 -07:00
format = " int " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Tempo do Ciclo dia/noite " )
.. " \n " .. S ( " Equivale a um multiplicador de velocidade relacionado ao tempo do ciclo dia/noite real " )
.. " \n " .. S ( " Exemplos: " )
.. " \n " .. S ( " 72 = 20 minutos " )
.. " \n " .. S ( " 360 = 4 minutos " )
.. " \n " .. S ( " 1 = 24 horas (equivalendo a um dia real) " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " time_speed " ) or 72
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " time_speed " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
-- Limite do Mundo
{
2018-11-12 13:03:08 -08:00
name = S ( " Limite do Mundo " ) ,
2018-07-18 14:14:24 -07:00
format = " int " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Distancia do centro ate a borda do mundo " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " mapgen_limit " ) or 31000
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " mapgen_limit " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
-- Auto Salvamento
{
2018-11-12 13:03:08 -08:00
name = S ( " Auto Salvamento " ) ,
2018-07-18 14:14:24 -07:00
format = " float " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Tempo em segundos entre cada auto salvamento do mundo do servidor " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " server_map_save_interval " ) or 72
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " server_map_save_interval " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
-- Senha Obrigatoria
{
2018-11-12 13:03:08 -08:00
name = S ( " Senha Obrigatoria " ) ,
2018-07-18 14:14:24 -07:00
format = " bool " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Impede que jogadores novos se conectem ao servidor sem usar senha " ) ,
checkbox_name = S ( " Senha Obrigatoria " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " disallow_empty_password " ) or " false "
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " disallow_empty_password " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
-- Privilegios Automaticos
{
2018-11-12 13:03:08 -08:00
name = S ( " Privilegios Automaticos " ) ,
2018-07-18 14:14:24 -07:00
format = " string " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Privilegios dados automaticamente quando um novo jogador se conecta ao servidor " )
.. " \n " .. S ( " Separados por virgulas " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " default_privs " ) or " interact, shout "
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " default_privs " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
-- Privilegios Basicos
{
2018-11-12 13:03:08 -08:00
name = S ( " Privilegios Basicos " ) ,
2018-07-18 14:14:24 -07:00
format = " string " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Privilegios dados para jogadores que possuem o privilegio basic_privs " )
.. " \n " .. S ( " Separados por virgulas " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " basic_privs " ) or " interact, shout "
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " basic_privs " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
2018-07-19 17:02:58 -07:00
-- AntiFlood de Bate-Papo
2018-07-19 17:00:03 -07:00
{
2018-11-12 13:03:08 -08:00
name = S ( " AntiFlood de Bate-Papo " ) ,
2018-07-19 17:00:03 -07:00
format = " bool " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Sistema que evita que jogadores enviem mensagens em demasia no bate-papo " ) ,
checkbox_name = S ( " AntiFlood de Bate-Papo " ) ,
2018-07-19 17:00:03 -07:00
get_value = function ( )
2018-07-19 17:02:58 -07:00
return minetest.settings : get ( " gestor_sistema_antflood_chat " ) or " false "
2018-07-19 17:00:03 -07:00
end ,
set_value = function ( value )
2018-07-19 17:02:58 -07:00
minetest.settings : set ( " gestor_sistema_antflood_chat " , value )
2018-07-19 17:00:03 -07:00
end ,
} ,
2018-07-18 14:14:24 -07:00
-- AntiCheat
{
2018-11-12 13:03:08 -08:00
name = S ( " AntiCheat " ) ,
2018-07-18 14:14:24 -07:00
format = " bool " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Esse AntiCheat faz parte dos algoritimos basicos do Minetest para verificar a atividade dos jogadores " ) ,
checkbox_name = S ( " Anticheat " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
local v = minetest.settings : get ( " disable_anticheat " ) or " false "
2018-07-18 14:14:24 -07:00
-- Inverte ao exibir
if v == " false " then
return " true "
else
return " false "
end
end ,
set_value = function ( value )
-- Desinverter por exibir invertido
if value == " false " then
2018-07-18 14:48:42 -07:00
return minetest.settings : set ( " disable_anticheat " , " true " )
2018-07-18 14:14:24 -07:00
else
2018-07-18 14:48:42 -07:00
return minetest.settings : set ( " disable_anticheat " , " false " )
2018-07-18 14:14:24 -07:00
end
end ,
} ,
-- RollBack
{
2018-11-12 13:03:08 -08:00
name = S ( " RollBack " ) ,
2018-07-18 14:14:24 -07:00
format = " bool " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Sistema que armazena eventos e atividades dos jogadores afim de reconstituir atividades " ) ,
checkbox_name = S ( " RollBack " ) ,
2018-07-18 14:14:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " enable_rollback_recording " ) or " false "
2018-07-18 14:14:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " enable_rollback_recording " , value )
2018-07-18 14:14:24 -07:00
end ,
} ,
2018-07-18 11:53:24 -07:00
-- Mensagem de bem vindo
{
2018-11-12 13:03:08 -08:00
name = S ( " Mensagem de Bem Vindo " ) ,
2018-07-18 11:53:24 -07:00
format = " string " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Mensagem apresentada ao jogador quando conectar ao servidor " ) ,
2018-07-18 11:53:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " motd " )
2018-07-18 11:53:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " motd " , value )
2018-07-18 11:53:24 -07:00
end ,
} ,
-- Mensagem de crash do servidor
{
2018-11-12 13:03:08 -08:00
name = S ( " Mensagem de Crash " ) ,
2018-07-18 11:53:24 -07:00
format = " string " ,
2018-11-12 13:03:08 -08:00
desc = S ( " Mensagem exibida aos jogadores que estiverem online quando o servidor parar de funcionar inesperadamente (por erros do jogo) " ) ,
2018-07-18 11:53:24 -07:00
get_value = function ( )
2018-07-18 14:48:42 -07:00
return minetest.settings : get ( " kick_msg_crash " )
2018-07-18 11:53:24 -07:00
end ,
set_value = function ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : set ( " kick_msg_crash " , value )
2018-07-18 11:53:24 -07:00
end ,
} ,
}
-- Lista de itens do menu do shop em formato de string
local string_menu_configs = " "
for _ , d in pairs ( lista_configs ) do
if string_menu_configs ~= " " then string_menu_configs = string_menu_configs .. " , " end
string_menu_configs = string_menu_configs .. d.name
end
-- 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 'diretrizes'
gestor.registrar_aba ( " conf " , {
2018-11-12 13:03:08 -08:00
titulo = S ( " Diretrizes " ) ,
2018-07-18 11:53:24 -07:00
get_formspec = function ( name )
2018-11-12 13:03:08 -08:00
local formspec = " label[3.5,1; " .. S ( " Diretrizes " ) .. " ] "
2018-07-18 11:53:24 -07:00
.. " textlist[9,1;4.5,9.8;menu; " .. string_menu_configs .. " ] "
-- Construir formulario de acordo com item escolhido
if acessos [ name ] . escolha then
local escolha = lista_configs [ tonumber ( acessos [ name ] . escolha ) ]
-- Formspec do item escolhido
local form = " "
-- Nome
form = form .. " label[3.5,1.5; " .. escolha.name .. " ] "
-- Campo para preenchimento numero ou texto simples
if escolha.format == " int " or escolha.format == " float " or escolha.format == " string " then
form = form .. " field[3.8,2.3;5,1;config_label_1;; " .. escolha.get_value ( ) .. " ] "
-- Botao para definir configuração
2018-11-12 13:03:08 -08:00
form = form .. " button[3.5,2.8;5,1;definir; " .. S ( " Definir " ) .. " ] "
2018-07-18 11:53:24 -07:00
-- Texto de aviso
if acessos [ name ] . aviso then
form = form .. " label[3.5,3.7; " .. acessos [ name ] . aviso .. " ] "
acessos [ name ] . aviso = nil
end
-- Descritivo
2018-11-12 13:03:08 -08:00
form = form .. " textarea[3.8,4.3;5,7.7;; " .. S ( " Descritivo " ) .. " : \n " .. escolha.desc .. " ;] "
2018-07-18 11:53:24 -07:00
end
2018-07-18 14:14:24 -07:00
-- Checkbox para preenchimento
2018-07-18 11:53:24 -07:00
if escolha.format == " bool " then
2018-07-18 14:14:24 -07:00
form = form .. " checkbox[3.5,1.8;definir; " .. escolha.checkbox_name .. " ; " .. tostring ( escolha.get_value ( ) ) .. " ] "
2018-07-18 11:53:24 -07:00
-- Texto de aviso
2018-07-18 14:14:24 -07:00
if acessos [ name ] . aviso then
2018-07-18 11:53:24 -07:00
form = form .. " label[3.5,2.6; " .. acessos [ name ] . aviso .. " ] "
acessos [ name ] . aviso = nil
end
-- Descritivo
2018-11-12 13:03:08 -08:00
form = form .. " textarea[3.8,3.3;5,8.7;; " .. S ( " Descritivo " ) .. " : \n " .. escolha.desc .. " ;] "
2018-07-18 11:53:24 -07:00
end
-- Insere no formspec
formspec = formspec .. form
2018-07-18 14:14:24 -07:00
else
-- Nenhuma diretriz escolhida
2018-11-12 13:03:08 -08:00
formspec = formspec .. " textarea[3.8,1.5;5,8.7;; " .. S ( " Escolha uma diretriz para editar " )
.. " \n \n " .. S ( " Todas as diretrizes serao repassadas ao arquivo minetest.config quando o minetest for encerrado, no entanto algumas modificações ja causam efeito imediato " )
.. " \n \n " .. S ( " Cuidado ao editar algumas diretrizes pois podem causar instabilidade no servidor " ) .. " ;] "
2018-07-18 14:14:24 -07:00
2018-07-18 11:53:24 -07:00
end
return formspec
end ,
on_receive_fields = function ( player , fields )
local name = player : get_player_name ( )
-- Salva os campos editados para reexibir
acessos [ name ] . config_label_1 = fields.config_label_1
-- Escolher um item
if fields.menu then
local n = string.split ( fields.menu , " : " )
acessos [ name ] . escolha = tonumber ( n [ 2 ] ) or 1
gestor.menu_principal ( name )
-- Definir valor
elseif fields.definir then
local escolha = lista_configs [ tonumber ( acessos [ name ] . escolha ) ]
-- Valor a ser salvo
local value = fields.config_label_1
-- Verificar valor
-- Formato de numero
if escolha.format == " int " or escolha.format == " float " then
if tonumber ( value ) == nil then
2018-11-12 13:03:08 -08:00
acessos [ name ] . aviso = S ( " Precisar ser numero " )
2018-07-18 11:53:24 -07:00
gestor.menu_principal ( name )
return
else
value = tonumber ( fields.config_label_1 )
-- Arredonda para baixo caso precise ser inteiro
if escolha.format == " int " then
value = math.ceil ( value )
end
end
2018-07-18 14:14:24 -07:00
elseif escolha.format == " bool " then
value = fields.definir
2018-07-18 11:53:24 -07:00
-- Outros formatos
else
value = fields.config_label_1
end
-- Atualiza campo exibido no painel
acessos [ name ] . config_label_1 = value
-- Verificador personalizado
2018-07-18 14:14:24 -07:00
if escolha.check_value then
local check = escolha.check_value ( )
if check ~= true then
acessos [ name ] . aviso = check
gestor.menu_principal ( name )
return
end
end
-- Texto de aviso
2018-11-12 13:03:08 -08:00
acessos [ name ] . aviso = S ( " Definido " )
2018-07-18 14:14:24 -07:00
if value == " true " then
2018-11-12 13:03:08 -08:00
acessos [ name ] . aviso = S ( " Ativado " )
2018-07-18 14:14:24 -07:00
elseif value == " false " then
2018-11-12 13:03:08 -08:00
acessos [ name ] . aviso = S ( " Desativado " )
2018-07-18 11:53:24 -07:00
end
-- Configurar valor
escolha.set_value ( value )
2018-07-18 14:48:42 -07:00
minetest.settings : write ( )
2018-07-18 11:53:24 -07:00
gestor.menu_principal ( name )
end
end ,
} )