Não sei se já notaram mas em todos os netplays que usam o servidor do netplay plus o sistema de banir usuários não funciona, ou seja, tu bane e o jogador ainda consegue jogar.
Fiz uma correção bem simples para isso voltar a funcionar, para aplica-la ao teu servidor preciso que siga os passos:
1º - Crie um arquivo dentro da pasta Scripts, dentro da pasta raiz do servidor, chamado banlist.lua. Adicione o seguinte código nele:
2º - Abra o script startup.lua, também encontrado dentro da pasta Scripts. Acima de:
Adicione o seguinte código:
3º - No mesmo script, dentro da função OnCMD, acima de:
Adicione:
4º - Ainda no script startup.lua, adicione dentro da função StartUp o seguinte código:
Nota: O servidor armazena todos os usuários banidos na memória até que seja reiniciado, só então os ips passam para a lista. Isso significa que quando se bane um usuário é necessário que se reinicie o servidor.
Fiz uma correção bem simples para isso voltar a funcionar, para aplica-la ao teu servidor preciso que siga os passos:
1º - Crie um arquivo dentro da pasta Scripts, dentro da pasta raiz do servidor, chamado banlist.lua. Adicione o seguinte código nele:
- Código:
--
-- Correção do sistema de banimento do servidor.
--
-- Autor: Paulo Soreto
-- Data: 08/03/2017
-- Versão: 1.0
--
BanList = {}
-- Carrega a lista de ips banidos.
function BanList.load()
BanList._list = {}
for line in io.lines('./_IPBans.dat') do
BanList._list[line] = true
end
end
-- Verifica se o ip está contido na lista dos banidos.
function BanList.contains(ip)
return BanList._list[ip] ~= nil
end
2º - Abra o script startup.lua, também encontrado dentro da pasta Scripts. Acima de:
- Código:
dofile( "./Scripts/functions.lua" )
Adicione o seguinte código:
- Código:
require 'Scripts.banlist'
3º - No mesmo script, dentro da função OnCMD, acima de:
- Código:
do process(cmd,data) end
Adicione:
- Código:
-- Verifica se o usuário está banido, caso esteja encerra a conexão.
if BanList.contains(user.ip) then
NP():CloseSocket(user.ip)
end
4º - Ainda no script startup.lua, adicione dentro da função StartUp o seguinte código:
- Código:
BanList.load()
Nota: O servidor armazena todos os usuários banidos na memória até que seja reiniciado, só então os ips passam para a lista. Isso significa que quando se bane um usuário é necessário que se reinicie o servidor.