RaidProtection

O que é a classe RaidProtection?

A classe RaidProtection foi projetada para proteger um servidor de ataques de "raid", monitorando atividades suspeitas e tomando medidas como banimento, kick, e remoção de roles. Ela oferece uma forma de limitar ações de usuários que excedem um número máximo de ações em um curto período de tempo.

Configurando a Classe

Para usar a classe RaidProtection, você precisa instanciá-la com seu bot, o servidor (guild), e opções adicionais como o número máximo de ações permitidas, o tipo de ação a ser tomada, e os tipos de atividades a serem monitoradas.


// Exemplo de configuração
const { RaidProtection, Bot } = require('simple-discord-lib');
const bot = new Bot("SEU_TOKEN")

bot.connect()

const guild = bot.guilds.cache.get("ID_DO_SEU_SERVIDOR")

const raidProtection = new RaidProtection(bot, guild, {
  maxActions: 5,
  timeLimit: 10000, // 10 segundos
  action: "ban", // Ação padrão para violadores
  handlers: ["ban", "kick", "channels", "roles"], // Tipos de atividades a serem monitoradas
});
    

Usando a Classe

Inicializando os Manipuladores

Quando você cria uma instância de RaidProtection, os manipuladores de ações como banimento, kick, remoção de canais e roles são configurados automaticamente, dependendo das opções fornecidas.


// O método initHandlers é chamado automaticamente ao criar a instância
// Ele configura eventos para ações como banimento, kick, e deletação de canais e roles
raidProtection.initHandlers();
      

Registrando Ações de Usuários

Use o método logAction para registrar ações feitas por um usuário. Esse método rastreia quantas ações foram feitas por um usuário em um determinado período de tempo.


// Registrando a ação de um usuário
const actionCount = raidProtection.logAction('user_id');
console.log(actionCount); // Exibindo a quantidade de ações registradas
      

Tratando Violações

Use o método handleViolation para aplicar uma ação punitiva a um usuário, como banir, kickar ou remover roles.


// Exemplo de como a violação é tratada
raidProtection.handleViolation(member, 'ban'); // Banindo um membro
      

Tratando Ações Específicas

Existem métodos específicos para lidar com ações de kick, banimento, e deletação de canais e roles, como handleKick, handleBan, handleChannelDelete, e handleRoleDelete.


// Exemplo de uso para tratar um kick
raidProtection.handleKick(member);

// Exemplo de uso para tratar um banimento
raidProtection.handleBan(user);

// Exemplo de uso para tratar a exclusão de um canal
raidProtection.handleChannelDelete(executor);

// Exemplo de uso para tratar a exclusão de uma role
raidProtection.handleRoleDelete(executor);
      

Monitorando Ações

A classe monitora as ações dos membros do servidor e executa as ações definidas quando o número máximo de ações é ultrapassado dentro do limite de tempo especificado. Cada tipo de ação, como banimento ou kick, é registrado e, caso um usuário ultrapasse o limite de ações, a ação definida é tomada.


// Iniciando a proteção contra raid
raidProtection.initHandlers(); // Os manipuladores são automaticamente configurados