【问题标题】:Verification Bot not adding roles验证机器人不添加角色
【发布时间】:2019-09-23 00:40:35
【问题描述】:

我不断被抛出“client.guilds.get(...).member(...).roles.add is not a function”,我尝试了很多线程来改变行,但没有一个真正解决我遇到的问题。

我尝试将 message.author 更改为 message.member,但它似乎不起作用并且给了我更多错误。

client.on('message', (message) => {
    if (message.author.bot || !message.author.token || message.channel.type !== `dm`) return
    if (message.content !== (verifymsg.replace('{token}', message.author.token))) return
    message.channel.send({
        embed: {
            color: Math.floor(Math.random() * (0xFFFFFF + 1)),
            description: completemsg,
            timestamp: new Date(),
            footer: {
                text: `Verification Success`
            }
        }
    })
    client.guilds.get(config.guild).member(message.author).roles.add(config.role) // ensure this is a string in the config ("")
        .then(console.log(`TOKEN: ${message.author.token} :: Role ${config.role} added to member ${message.author.id}`))
        .catch(console.error)
})

用户应该在用给他们说的行进行验证后获得一个角色“成员”。

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    正如错误所说,GuildMember.roles.add() 不是函数。 GuildMember.roles 返回一个 Collection,add() 不是 Collection 或 Map 的方法(Collection extends Map)。

    你应该使用GuildMember.addRole()。

    client.guilds.get(config.guild).member(message.author).addRole(config.role)
    

    【讨论】:

    • 乐于助人!如果您的问题得到解决,您可以通过点击左侧的复选标记来接受此答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    • 2017-11-08
    • 2021-09-03
    • 2019-02-01
    • 2019-02-02
    • 2020-12-15
    相关资源
    最近更新 更多