【问题标题】:Give a Role to the message author - Discord.js给消息作者一个角色 - Discord.js
【发布时间】:2021-02-06 21:27:39
【问题描述】:

我开始制作命令,消息作者在输入命令后应该获得角色。但我总是收到“无法读取未定义的‘添加’属性”的错误。

代码:

case 'ticket':
                if(!message.channel.id === "757221433335218216") return;
                if (message.channel.id === "757221433335218216"){
                    var randomRole = Math.random()
                    const person = message.author
                   var roleCreator = message.guild.roles.create({
                    data: {
                        name: randomRole.toLocaleString(),
                        color: "#ff0000",
                        permissions: 0
                    }
                }).then(role => {
                    person.roles.add(roleCreator)
                });
                break;

【问题讨论】:

    标签: javascript node.js discord discord.js bots


    【解决方案1】:
    1. 要使用 .add(),您需要 GuildMember 而不是用户
    2. 要添加角色,您应该传递角色而不是角色创建者。
    case 'ticket':
                    if(!message.channel.id === "757221433335218216") return;
                    if (message.channel.id === "757221433335218216"){
                        var randomRole = Math.random()
                        const person = message.member //<< Here, get the author as an GuildMember instead of getting author as an User
                       var roleCreator = message.guild.roles.create({
                        data: {
                            name: randomRole.toLocaleString(),
                            color: "#ff0000",
                            permissions: 0
                        }
                    }).then(role => {
                        person.roles.add(role) // <<Here, passing role instead of roleceator
                    });
                    break;
    

    【讨论】:

    • HereGuildMember 的文档。您可以看到列出的roles 属性。
    猜你喜欢
    • 2020-08-06
    • 2021-08-05
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 2021-05-20
    • 2021-02-24
    • 2019-11-17
    • 2021-05-12
    相关资源
    最近更新 更多