Discord.js bot 不会为新成员分配角色

时间:2021-02-06 14:22:29

标签: javascript node.js discord.js

出于某种原因,我使用 Node.js 和 Discord.js 编写的机器人在成员加入时不会为其分配角色。有人可以帮忙吗?

bot.on("guildMemberAdd", function (member) {
    member.guild.channels
        .find("name", "general")
        .send(
            member.toString() +
                " Welcome to the server. All your base are belong to us."
        );
    member.add(member.guild.roles.find("name", "Honorable Member"));
});

我尝试了 member.addmember.addRole,但我所做的一切似乎都没有任何效果。我什至没有收到任何类型的错误消息,代码似乎没有执行。

1 个答案:

答案 0 :(得分:-1)

如何确定您拥有的 discord.js 版本:

在当前目录(与您的 bot.js 文件相同的文件夹)中打开命令提示符。 然后在该类型 npm list discord.js 中,它将返回类似于以下内容的内容: example of npm list command

它将以 11 或 12 开头,这就是您如何判断您的 discord.js 是版本 11 还是版本 12。

如何解决 discord.js v11 上的问题:

由于您可能使用的是 discord.js v11,我将举例说明如何修复它:

member.addRole(member.guild.roles.find("name", "Honorable Member").id);

如果您使用的是 discord.js v12:

您需要使用现代技术来实现这一点。

const roleToAdd = member.guild.roles.cache.find(r => r.name === "Honorable Member");
member.roles.add(roleToAdd);