Javascript 角色位置:Discord.js

Javascript 角色位置:Discord.js,javascript,discord,discord.js,Javascript,Discord,Discord.js,我试图通过我的机器人在我的服务器中按一定顺序创建角色,但每次我运行命令时,角色位置都是错误的 代码: 理论上这应该是正确的,但我不确定到底发生了什么 任何帮助都将不胜感激。有趣的是,考虑到角色是如何索引的,它给出了输出。请注意,角色是基于@everyone角色编制索引的,要使您的所有者角色高于管理员角色,必须具有更高的职位编号。令人心烦的是,我似乎找不到任何描述这种行为的东西,但测试确实提供了这种行为 将Owner设置为3,Admin设置为2,Mod设置为1应该会得到您想要的结果 。。。Mo

我试图通过我的机器人在我的服务器中按一定顺序创建角色,但每次我运行命令时,角色位置都是错误的

代码:

理论上这应该是正确的,但我不确定到底发生了什么


任何帮助都将不胜感激。

有趣的是,考虑到角色是如何索引的,它给出了输出。请注意,角色是基于
@everyone
角色编制索引的,要使您的所有者角色高于管理员角色,必须具有更高的职位编号。令人心烦的是,我似乎找不到任何描述这种行为的东西,但测试确实提供了这种行为

将Owner设置为3,Admin设置为2,Mod设置为1应该会得到您想要的结果


。。。Mod以您当前的位置值结束于Owner之上,这仍然是非常奇怪的,但我猜这就是它。有趣的是,考虑到角色是如何索引的,它给出了该输出。请注意,角色是基于
@everyone
角色编制索引的,要使您的所有者角色高于管理员角色,必须具有更高的职位编号。令人心烦的是,我似乎找不到任何描述这种行为的东西,但测试确实提供了这种行为

将Owner设置为3,Admin设置为2,Mod设置为1应该会得到您想要的结果


。。。Mod以您当前的位置值结束于Owner之上,这仍然很奇怪,但我猜它就是这样。

似乎角色创建方法及其位置数据属性以一种奇怪的方式被索引,并且它的索引为2,以便一个角色高于另一个角色

代码:

结果:


这对我来说仍然很困惑,但事实就是如此。

似乎角色创建方法及其位置数据属性以一种奇怪的方式进行索引,并且如果角色高于另一个角色,则其索引为2

代码:

结果:


这仍然让我很困惑,但事实就是如此。

所以我尝试了你的建议,但仍然混淆了角色定位。请看这里:[尝试]。然后我想到了你所说的所有者的位置索引更高,所以我想把所有设置为2,所以mod:1,admin:3,owner:5,这确实给了我想要的结果。请看这里:[尝试)即使成功,它仍然显示我和错误。
DiscordAPIError:缺少权限
DiscordAPIError:在RequestHandler.execute上缺少权限(C:\Users\Familia\OneDrive\Documents\Other Stuff\Visual Studio code\Discord Bots\Testing\My Own Projects\Riven\node\U modules\Discord.js\src\rest\RequestHandler.js:154:13)位于async RequestHandler.push(C:\Users\Familia\OneDrive\Documents\Other Stuff\visualstudio code\Discord Bots\Testing\My Own Projects\Riven\node\u modules\Discord.js\src\rest\RequestHandler.js:39:14){方法:'patch',路径:'/guilds/763488896892796938/roles',代码:50013,httpStatus:400}
但它仍然会生成角色。但刷新控制台后,不会触发错误。因此我尝试了您的建议,但仍然混淆了角色位置。请参阅此处:[尝试].然后我想到了你所说的所有者的位置索引更高,所以我想把所有设置都设置为2,所以mod:1,admin:3,owner:5,这确实给了我想要的结果。请看这里:[尝试]即使成功了,它仍然显示了我和错误。
DiscordAPIError:Missing Permissions
DiscordAPIError:Missing Permissions at RequestHandler.execute(C:\Users\Familia\OneDrive\Documents\Other Stuff\visualstudio code\Discord Bots\Testing\My Own Projects\Riven\node\u modules\Discord.js\src\rest\RequestHandler.js:154:13)在async RequestHandler.push(C:\Users\Familia\OneDrive\Documents\Other Stuff\Visual Studio code\Discord Bots\Testing\My Own Projects\Riven\node\u modules\Discord.js\src\rest\RequestHandler.js:39:14){方法:'patch',路径:'/guilds/763488896892796938/roles',代码:50013,httpStatus:400}
但它仍会生成角色。但刷新控制台后不会触发错误。
client.on("message", message => {
    if(message.content.startsWith(prefix + "createrole")){
        message.guild.roles.create({
            data: {
                name: "Owner",
                color: "BLUE",
                position: 1
            }
        })
        .then(role => console.log(red(`Role created`)))
        .catch(err => console.log(err))
        message.guild.roles.create({
            data: {
                name: "Admin",
                color: "BLUE",
                position: 2
            }
        })
        .then(role => console.log(red(`Role created`)))
        .catch(err => console.log(err))
        message.guild.roles.create({
            data: {
                name: "Mod",
                color: "BLUE",
                position: 3
            }
        })
        .then(role => console.log(red(`Role created`)))
        .catch(err => console.log(err))
    }
})
 if(message.content.startsWith(prefix + "createrole")){
        message.guild.roles.create({
            data: {
                name: "Owner",
                color: "BLUE",
                position: 5
            }
        })
        .then(role => console.log(red(`Role created`)))
        .catch(err => console.log(err))
        message.guild.roles.create({
            data: {
                name: "Admin",
                color: "BLUE",
                position: 3
            }
        })
        .then(role => console.log(red(`Role created`)))
        .catch(err => console.log(err))
        message.guild.roles.create({
            data: {
                name: "Mod",
                color: "BLUE",
                position: 1
            }
        })
        .then(role => console.log(red(`Role created`)))
        .catch(err => console.log(err))
        
    }