Plugin Flood Chat - GroupChat Block - Limitador de texto enviado

:star_struck: Olá a todos, eu voltei a usar openfire para facilitar um sistema que ando a desenvolver, mas deparei-me que não existia plugins que fizessem a proteção que eu precisava para impedir utilizadores enviarem milhares de mensagens seguidas, então resolvi criar um plugin simples que pode ser configurado no ficheiro (config.properties) dentro da pasta do plugin, eu por norma meti 3 mensagens por segundo a pessoa leva um aviso e as restantes são bloqueadas durante uns segundos, se a pessoa continuar a repetir os floods fica bloqueada durante 10 segundos, ainda não sei se vou implantar novas regras.

Aproveitei e também implantei um limitador de texto de mensagens, é bom ter no cliente mas também é bom que tenha no servidor, então fiz com que mensagens acima de 1000 carateres não são enviadas e o utilizador recebe uma informação.
Tudo pode ser ativado ou desativado, alterar os valores em config.properties.

claro que cada um que usar pode usar como quiser e configurar, as mensagens de aviso são recebidas por iq, exemplo:

exemplo

depois no cliente podem receber e utilizarem como querem o aviso…. assim como o aviso de limite de mensagens, basta testarem e verem os logs do cliente nos iqs.

Não sou muito profissional e claro com uma ajuda daqui e dali o plugin está a funcionar, sei que falta uns ficheiros para seguir as normas do openfire mas é 100% funcional, como vi que muita gente procura decidi partilhar.

PS: Quando as mensagens são bloqueadas não são guardadas nas bases de dados enquanto o tempo de bloqueio não terminar, os pacotes são rejeitados, já no limite de mensagem o pacote é completamente rejeitado também.

Esta é a primeira versão que funciona na ultima versão do openfire 5.1.1, penso depois adicionar uma página de configurações na consola com base de dados para uma persistencia melhor.

Se quiserem me sugerir ideias agradeço porque o projecto que estou a desenvolver tem muitas outras funcionalidades que o openfire não suporta ou nem tem, então ando também a criar outros mini plugins para que consiga fazer o que quero por novos xmls…

fica aqui o download para quem quiser usar e testar.
Deixem as vossas dúvidas, ideias e até novas funcionalidades futuras….

Nota importante:
Podem editar o ficheiro config.properties sem reiniciar o servidor, ele em poucos segundos reconhece as novas configurações.
Podem verificar todo o código fonte, é simples, basta abrirem com editor java ou vscode, podem modificar se quiserem.

Download:

chatprotector.jar (15.8 KB)

Já fiz mais actualizações ao plugin para meu uso caso alguem pretenda alguma funcionalidade extra nesta primeira versão ou algo extra fale comigo.
A minha versão já fiz várias mudanças na forma como openfire lida com comandos, algumas coisas poderiam ser postas nas próximas versões, coisas que dão muito jeito, ou até mesmo uma forma de criar funcionalidades mesmo dentro da página da consola…. tipo scripts em que ele converte em java… eu estou a fazer algo parecido para não estar sempre a compilar, estou a criar um fireopenjsfire dentro da página da administração…
Agora que aprendi a criar plugins nunca foi tão fácil aplicar novas funcionalidades, até as salas fiz alterações.