Discord.js client.addMemberToRole 不工作

Discord.js client.addMemberToRole not working

所以,我正在编写一个 Discord 机器人程序,我想让它做的一件事是在给定条件的情况下为成员分配角色。在查看文档后,特别是 here,我认为 bot.addMemberToRole 是一个很好用的命令。但是,当我 运行 它时,我收到了这个错误信息:

类型错误: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 命令在我的机器人中工作得很好。任何帮助将不胜感激。

您使用的是旧版本的文档,因此该功能已不存在。他们真的应该摆脱那些。您正在寻找 GuildMember.addRole(Role or String).

要将成员添加到角色,您需要一个 GuildMember 和一个 Role 对象(或角色名称)。假设您有 User 对象和 Guild 对象(您的机器人有一个 guilds/servers 的列表,它已加入并且大多数事件都会有它们关联的公会),您可以使用 [=12= 获取 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');
});