Discord.js v12.2.0 |根据反应添加角色

Posted

技术标签:

【中文标题】Discord.js v12.2.0 |根据反应添加角色【英文标题】:Discord.js v12.2.0 | Add role based on reaction 【发布时间】:2020-08-30 10:50:05 【问题描述】:

我正在使用反应制作一个具有自动角色系统的机器人。 这是我当前相关代码的缩短版本:

client.on("messageReactionAdd", (reaction, user) => 
  if(!user || user.bot || !reaction.message.channel.guild) 
    return;
  
  const msg = reaction.message;
  const role = msg.channel.guild.roles.cache.find(role => role.name == "Verified");
  // I would like to add the role to the user here.
);

我只想知道如何使用user 对象向用户添加角色。 我已经尝试过reaction.message.channel.guild.member(user).addRole(role);,但我认为 v12.2.0 不推荐使用它,因为它只会生成错误...).addRole() is not a function。 任何帮助表示赞赏!

【问题讨论】:

【参考方案1】:

由于 discord.js v12 addRole() 已被替换为 roles.add() 所以它确实不是一个函数。

reaction.message.guild.member(user).roles.add(role);

【讨论】:

以上是关于Discord.js v12.2.0 |根据反应添加角色的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 为 ReactionRole 添加一次反应收集器

如何根据 Discord.js 中的反应编辑消息(创建列表和切换页面)

discord.js V12中根据反应赋予角色时出错

v12 不会删除机器人的反应,但 v13 会删除机器人的反应 (discord.js)

从特定消息中删除特定用户反应 - Discord.js

有没有办法对使用 discord.js 发送的每条消息做出反应