使用discord.js创建角色

时间:2020-04-15 17:45:59

标签: javascript discord.js

我正在尝试使用discord API创建一个机器人,以使其能够创建角色并为其添加人员。我不确定为什么我的代码无法正常工作。

async function role(message){
    try {
        let guild = client.guild.get(236824834066219009);
        guild.roles.create({
            data:{
            name:"asd",
            color:"grey",
        },
        reason:"asd",
    })
        let role = message.guild.roles.find(r => r.name === "asd");
        let user = 236824834066219009;
        await user.addrole(role).catch(console.error);
    } catch (error) {
        console.log(error);
    }
}

1 个答案:

答案 0 :(得分:0)

您的代码无法正常运行的原因是因为discord.js v12版本以来发生了很多更改。

您不能再在.find()上使用roles,而必须先访问其cache,因此需要用let role = message.guild.roles.find(r => r.name === "asd");替换let role = message.guild.roles.cache.find(r => r.name === "asd");

您也无法使用addrole()添加角色,需要使用roles.add(),因此需要将user.addrole(role)替换为user.roles.add(role)

您也可以不必查找role来提高代码效率,只需使用.then()即可将角色添加到user中,您也可以通过与guild一起用作函数中的参数,如下所示:

async function role(message, user, guild){
    try {
        guild.roles.create({
            data:{
            name:"asd",
            color:"grey",
        },
        reason:"asd",
    }).then((role) => user.roles.add(role)).catch(console.error);
    } catch (error) {
        console.log(error);
    }
}