【问题标题】:Add role command Discord,js添加角色命令 Discord,js
【发布时间】:2021-06-21 02:48:40
【问题描述】:

我正在尝试使用 Discord.js 执行“添加角色”命令。这是我的代码,但机器人没有添加角色。

if (message.content === config.prefix + 'addrole') {
    const targetUser = message.mentions.users.first()
    if (!targetUser) {
      message.reply('Please specify someone to give a role to.')
      return
    }
    const { guild } = message
    const role = guild.roles.cache.find((role) => {
      return role.name === roleName
    })

    if (!role) {
      message.reply(`There is no role with the name "${roleName}"`)
      return
    }

    const member = guild.members.cache.get(targetUser.id)
    member.roles.add(role)

    message.reply(`That user now has the "${roleName}" role`)
}

有人可以帮我吗(我在控制台中没有收到任何错误)?

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    member_addrole 已经返回了一个成员对象,所以你可以这样做

    if (message.content == config.prefix + 'addrole') {
        let member_addrole = message.mentions.users.first();
        let remind_role = message.guild.roles.cache.find(mR => mR.name === "Remind ME");
        if (!member_addrole) return message.reply('no member provided');
    
        member_addrole.roles.add(remind_role);
    }
    

    【讨论】:

    • 这对我不起作用。我也尝试过另一个角色,但我不工作。你知道另一种方法吗?
    • 我用新代码编辑了问题。同样使用该代码也不起作用。如果您有 Discord,请通过Tomm#1946 与我联系,因为我们可以进行更轻松的沟通。
    【解决方案2】:

    没有看到完整的代码,成员没有定义,我假设你的意思是 member_addrole。

    但是,您还应该使用消息中的公会。

    看看最后一行,这不是您添加角色的方式,请查看我在下面放置的示例。

    您还应该添加检查以确保提及用户并找到该角色,以免您的机器人崩溃。

    最后,你应该在某种调试器中运行它,这样你就可以看到你的代码在哪里遇到了异常。

    let member_addrole = message.mentions.users.first();
    let remind_role = message.guild.roles.cache.find(mR => mR.name === "Remind ME");
    await message.guild.members.cache.get(member_addrole.id).roles.add(remind_role);
    

    【讨论】:

    • 我无法评论其他人的帖子,但 @EJBEAN 的答案不起作用(至少在我的 discord.js 版本中),因为 member_addrole.roles 未定义
    • 我尝试使用您的代码,但没有成功。可能是角色的位置有问题……
    • @fclinton 添加了一个修复程序,请确保您在消息中提及某人,否则它将返回 undefined
    • 我在频道的留言是;addrole @user。显然我在控制台中没有收到任何错误,因为我提到了一个用户。也许我必须使用另一个功能......
    • 我用新代码编辑了问题。同样使用该代码也不起作用。如果您有 Discord,请通过 Tomm#1946 与我联系,因为我们可以进行更轻松的沟通。
    猜你喜欢
    • 2021-09-04
    • 2020-12-25
    • 2020-12-30
    • 2021-07-06
    • 2020-02-11
    • 2021-11-29
    • 2020-02-22
    • 2021-04-29
    • 2020-09-26
    相关资源
    最近更新 更多