gpt4 book ai didi

javascript - Discord.js client.addMemberToRole 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 15:47:23 24 4
gpt4 key购买 nike

所以,我正在编写一个 Discord 机器人,我希望它做的一件事就是在给定条件的情况下为成员分配 Angular 色。查阅文档后,具体是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。

我不知道为什么它不起作用。我完全遵循了文档,我传递给它的成员和 Angular 色变量是正确的类型,并且其他 Discord.js 命令在我的机器人中运行得很好。任何帮助将不胜感激。

最佳答案

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

要将成员添加到 Angular 色,您需要一个 GuildMember 和一个 Role 对象(或 Angular 色的名称)。假设您有 User 对象和 Guild 对象(您的机器人有其加入的行会/服务器的列表,并且大多数事件都有与其关联的行会),您可以使用 Guild.fetchMember(User) 获取 GuildMember 。从那里,您可以使用基于字符串或对象的 addRole 版本在 GuildMember 上添加 Angular 色。

下面是一个示例,说明如何在接收到来自用户的消息后执行此操作,这非常简单,因为该消息具有与其关联的 GuildMember。

const Discord = require('discord.js'); 
const bot = new Discord.Client();

bot.on('message', (message) => {
const guildMember = message.member;
guildMember.addRole('bot-added-role');
});

关于javascript - Discord.js client.addMemberToRole 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43447199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com