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