Armazenamento Flexível com MessageSweep

O que é o MessageSweep?

O MessageSweep é uma classe projetada para coletar mensagens em um canal do Discord, aplicando filtros personalizados e realizando ações específicas quando as mensagens são coletadas ou o tempo de coleta expira.

Recursos Principais

Exemplos de Uso

Uso Básico do MessageSweep

Veja como você pode usar a classe MessageSweep para coletar mensagens e executar ações:


const { MessageSweep } = require('./MessageSweep');
const channel = bot.channels.cache.get('ID_DO_CANAL');

// Definindo o filtro e as funções de coleta e término
const sweep = new MessageSweep({
  channel: channel,
  filter: (message) => message.content.includes('procurado'),
  time: 10000, // Tempo de coleta: 10 segundos
  onCollect: (message) => console.log(`Mensagem coletada: ${message.content}`),
  onEnd: (collected) => console.log(`${collected.size} mensagens coletadas!`)
});

// Iniciando a coleta de mensagens
sweep.start();
      

Tratamento de Erros

O MessageSweep trata erros caso o canal não seja fornecido ou outras exceções aconteçam:


try {
  const invalidSweep = new MessageSweep({ channel: null }); // Canal inválido
} catch (error) {
  console.error(error.message); // Exibe mensagem de erro: "O canal precisa ser especificado."
}

try {
  const sweep = new MessageSweep({
    channel: channel,
    filter: (message) => message.content === 'erro', // Filtro de erro
    time: 5000,
    onCollect: (message) => console.log(message.content)
  });
  sweep.start();
} catch (error) {
  console.error(error.message); // Exibe mensagens de erro apropriadas
}
      

Trabalhando com Funções

Ao usar o MessageSweep, você pode associar funções para lidar com mensagens coletadas e o término da coleta. Essas funções são executadas dinamicamente durante o processo.


const sweep = new MessageSweep({
  channel: channel,
  filter: (message) => message.content.includes('tarefa'),
  time: 10000,
  onCollect: (message) => console.log(`Mensagem de tarefa coletada: ${message.content}`),
  onEnd: (collected) => console.log(`${collected.size} mensagens de tarefa coletadas!`)
});

// Iniciando a coleta de mensagens
sweep.start();