当前,机器人仅侦听单个反应。如果我添加其他反应,则不会触发。
bot.once('messageReactionAdd', (reaction, user) => {
if(message.channel.id === "740513426631163945") {
if (reaction.emoji.name === "\uD83C\uDDE7") {
member.addRole("741434891157110795");
}
else if (reaction.emoji.name === "\uD83C\uDDF4") {
member.addRole("741435543723835484");
}
}
});
我正在使用Discord.js v11。
答案 0 :(得分:0)
我创建了一个名为!follow
的命令,该命令可让您将角色作用功能添加到已发送的消息中。
将响应添加到消息中时,将进行一次检查以查看是否正在跟踪该消息,然后再次进行检查以查看所添加的响应是否为您要跟踪的响应(如果不是,则将其删除)。 。然后找到添加反应的成员,并根据他们选择的反应添加特定的角色。
const prefix = '!';
const polls = new Discord.Collection();
bot.on('message', message => {
const args = message.content.slice(prefix.length).trim().split(/\s+/g);
const command = args.shift().toLowerCase();
switch (command) {
case 'follow':
if (!args[0]) return message.reply(`Please provide the ID of the message.\n**Usage:** \`${prefix}follow\``);
const msg = message.channel.messages.get(args[0]);
if (!msg) return message.reply('Could not find the specified message.');
message.delete();
polls.set(msg.id, true);
default:
message.reply(`The command \`${command}\` was not recognized.`);
}
});
bot.on('messageReactionAdd', (reaction, user) => {
if (!polls.has(reaction.message.id)) return;
if (!['?', '?'].includes(message.reaction.name)) return reaction.remove();
const member = reaction.message.channel.members.find(member => member.id === user.id);
switch (message.reaction.name) {
case '?':
member.addRole('741434891157110795');
break;
case '?':
member.addRole('741435543723835484');
break;
});