Как настроить диссонанс бота, пытаясь пнуть больше, чем бот должен в пределах определенной роли? - PullRequest
0 голосов
/ 24 апреля 2020

Я пытался закодировать ролевой бот по определенной причине c, он работает очень хорошо, как и должен, но когда я попытался откорректировать ответное сообщение для успешного удара, я заметил, что он пытался ударить точно количество участников, которые находятся на сервере (даже если он этого не сделал), он ответил 7 раз с 7 участниками, и 6 раз с 6 участниками, в то время как только один пользователь с предопределенной ролью.

if(!message.member.roles.some(r=>["Admin", "Moderator"].includes(r.name)) )
    return message.reply("You are not allowed to use this command.");
  console.log('rolekick');

  message.guild.members.forEach(member => {
    if (member.roles.find(role => role.name === 'IDLE')) member.kick()
      message.reply(`${member.user.tag} has been kicked by ${message.author.tag} because: IDLE`);

  });
}

спасибо вперед!

1 Ответ

0 голосов
/ 24 апреля 2020

Ваш if блок в forEach l oop неверен, вам нужно открыть фигурную скобку сразу после условия if и закрыть ее после message.reply().

  message.guild.members.forEach(member => {
    if (member.roles.find(role => role.name === 'IDLE')) {
      member.kick();
      message.reply(`${member.user.tag} has been kicked by ${message.author.tag} because: IDLE`);
    }
  });

В противном случае if применяется только к следующей инструкции (member.kick()), а второе утверждение применяется ко всем элементам.

...