【问题标题】:Discord.js bot doesn't assign roles to new membersDiscord.js 机器人不会为新成员分配角色
【发布时间】:2021-05-10 15:49:14
【问题描述】:

由于某种原因,我使用 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 我都试过了,我做的任何事情似乎都没有任何效果。我什至没有收到任何类型的错误消息,代码似乎没有执行。

【问题讨论】:

标签: javascript node.js discord.js


【解决方案1】:

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

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

它将以 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);

【讨论】:

  • 我使用的是 11.6.4 版本,尝试了这两个选项,但都没有改变。当一个人加入服务器时,机器人根本不做任何事情,即使使用 console.log 命令也不做
  • 我最终设法修复了它,我必须在 Discord 应用程序门户中启用一些设置,然后您的代码才为我工作。谢谢!
猜你喜欢
  • 2021-02-20
  • 2020-12-21
  • 2021-01-06
  • 2021-07-25
  • 1970-01-01
  • 2021-03-14
  • 2022-01-18
  • 2021-10-28
  • 2019-07-03
相关资源
最近更新 更多