Discord.js client.addMemberToRole 不工作
Posted
技术标签:
【中文标题】Discord.js client.addMemberToRole 不工作【英文标题】:Discord.js client.addMemberToRole not working 【发布时间】:2017-09-12 19:38:43 【问题描述】:所以,我正在编写一个 Discord 机器人,我希望它做的一件事是在特定条件下为成员分配角色。在查看文档后,特别是 here,我认为 bot.addMemberToRole 将是一个很好的使用命令。但是,当我运行它时,我收到了以下错误消息:
TypeError: bot.addMemberToRole 不是函数
我感到困惑是可以理解的,因为文档清楚地表明这是一个函数。我尝试过 bot.addMemberToRole(member, role);、addMemberToRole(member, role); 和其他几个迭代。这是我最近的尝试:
const Discord = require('discord.js');
const bot = new Discord.Client();
bot.addMemberToRole(member, role, function(err)
if(err)
console.log(err);
);
我也这样做了:
bot.addMemberToRole(member, role);
两者都给出了与上面相同的 TypeError。
我不知道为什么它不起作用。我完全遵循了文档,传递给它的成员和角色变量是正确的类型,并且其他 Discord.js 命令在我的机器人中工作得很好。任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:您使用的是旧版本的文档,因此该功能不再存在。他们真的应该摆脱那些。你正在寻找GuildMember.addRole(Role or String)
。
要将成员添加到角色,您需要 GuildMember 和 Role 对象(或角色的名称)。假设你有 User 对象和 Guild 对象(你的 bot 有一个它加入的公会/服务器的列表,并且大多数事件都有与之关联的公会),你可以使用 Guild.fetchMember(User)
获取 GuildMember。从那里,您可以使用基于字符串或对象的 addRole 版本在 GuildMember 上添加角色。
这是一个示例,说明如何在收到来自用户的消息时执行此操作,这非常简单,因为该消息具有与之关联的 GuildMember。
const Discord = require('discord.js');
const bot = new Discord.Client();
bot.on('message', (message) =>
const guildMember = message.member;
guildMember.addRole('bot-added-role');
);
【讨论】:
非常感谢您的帮助!以上是关于Discord.js client.addMemberToRole 不工作的主要内容,如果未能解决你的问题,请参考以下文章
Discord 错误错误 Discord.js 中的无效令牌
Discord 仅识别 discord.js 中的“ping”命令
错误“const Discord = require(discord.js) ^ ReferenceError: discord is not defined”
(Discord 机器人)当用户加入 Discord 服务器(discord.js)时,如何发送欢迎消息?