Как удалить все пользовательские вводы, кроме одной команды в конкретном канале? - PullRequest
0 голосов
/ 17 ноября 2018

Я работал над бот-диссонансом и каналом проверки. Я хочу, чтобы пользователи вводили только команду /verify: каждое сообщение или команда, кроме /verify, которые они вводят, должно удаляться автоматически. Как я могу это сделать?
Текущий код:

if (command === "verify") {
  if (message.channel.id !== "ChannelID") return;
  let role = message.guild.roles.find(rol => rol.name === 'Member')

  const reactmessage = await message.channel.send('React with ? to verify yourself!');
  await reactmessage.react('?');
  const filter = (reaction, user) => reaction.emoji.name === '?' && !user.bot;
  const collector = reactmessage.createReactionCollector(filter, {
    time: 15000
  });
  collector.on('collect', async reaction => {
    const user = reaction.users.last();
    const guild = reaction.message.guild;
    const member = guild.member(user) || await guild.fetchMember(user);

    member.addRole(role);
    message.channel.send(`Verification Complete.. ${member.displayName}. You have got access to server. `)

  });
  message.delete();
}

1 Ответ

0 голосов
/ 17 ноября 2018

Вы можете добавить чек вверху вашего client.on('message') слушателя:

client.on('message', message => {
  let verified = !!message.member.roles.find(role => role.name == 'Member');
  // ... command parsing ect...
  if (!verified && command == 'verify') {...}
  else if (verified) {
    // other commands...
  }
});
...