Discord.js Назначьте роль на основе определенной реакции на сообщение

#javascript #discord #discord.js #roles

#javascript #Discord #discord.js #роли

Вопрос:

Я хочу, чтобы это было так, если участник выполняет определенную реакцию на определенное сообщение. это даст им роль. я знаю, как добавить роль

 let role6 = member.guild.roles.cache.find(role => role.name == "Member");
if(!role6) return;
user.roles.add(role6);
  

но я не уверен, кто должен заставить ее запускаться :white_check_mark: реакция на определенное сообщение в канале. есть идеи?

Ответ №1:

Вы можете использовать messageReactionAdd событие, которое будет выдавать, когда кто-то реагирует на сообщение.

 client.on('messageReactionAdd', (reaction, user) => {
 if (reaction.message.id !== 'Message ID') return;
 const role6 = member.guild.roles.cache.find((role) => role.name == 'Member');
 if (!role6) return;
 reaction.guild.member(user).roles.add(role6);
});
  

Комментарии:

1. сообщение об ошибке = Сообщение не определено — что мне делать?

2. Ах, извините, это была ошибка с моей стороны. Заменить message на reaction.message

3. ну ладно, ура. есть ли способ отредактировать его, чтобы он добавлял роль только для определенной реакции?

4. Если это эмодзи в Юникоде, например ✅, вы можете использовать if (reaction.emoji.name === ✅) . Если это пользовательский смайлик, вы можете использовать if (reaction.emoji.id === 'Emoji ID')