簡體   English   中英

角色定位:Discord.js

[英]Role Positions: Discord.js

我試圖通過我的機器人按特定順序在我的服務器中創建角色,但是每次我運行命令時,角色位置都是錯誤的。

代碼:

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))
    }
})

在此處輸入圖片說明

從理論上講,這應該是有序的,但我不確定發生了什么!

任何幫助,將不勝感激。

有趣的是,它給出了輸出,考慮到角色是如何被索引的。 請注意,角色是根據@everyone角色編入索引的, @everyone您的所有者角色高於您的管理員角色,它必須具有更高的職位編號。 令人不安的是,我似乎找不到任何描述這種行為的東西,但是測試確實提供了這種行為。

將 Owner 設置為 3,Admin 設置為 2,Mod 設置為 1 應該會得到您想要的結果。

不和諧角色順序

... Mod 最終以您當前的位置值高於 Owner 仍然奇怪,但我猜這就是它。

似乎角色創建方法及其位置的數據屬性以奇怪的方式索引,並且它的索引為 2 以表示角色高於另一個角色。

代碼:

 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))
        
    }

結果:

在此處輸入圖片說明

這對我來說仍然很困惑,但事實就是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM