[英]Create a role with Discord JS
我正在制作一個 Discord JS 機器人,它應該有一個靜音功能,可以為成員分配一個角色,這樣他們就不能發短信了。
我嘗試在整個網絡上尋找如何創建角色(甚至是 Discord JS 文檔),但無濟於事。
我已經嘗試了下面的代碼,但它不起作用(直接從https://discord.js.org/#/docs/main/stable/class/RoleManager?scrollTo=create拉出)。
guild.roles.create({
data: {
name: 'Super Cool People',
color: 'BLUE',
},
reason: 'we needed a role for Super Cool People',
})
.then(console.log)
.catch(console.error);
提前致謝!
我很確定guild
沒有在您的代碼中定義。 roles
是Guild
一個屬性,所以你需要一個Guild
類來訪問RoleManager
並創建一個Role
。
如果您的代碼在命令中執行,您可以使用message.guild
來獲取Guild
,否則,您需要手動獲取Guild
。
這是一個如何使用它的簡單示例:
client.on("message", message => {
if (message.author.bot) return false;
if (message.author.id !== message.guild.ownerID) return false;
message.guild.roles.create({
data: {
name: "Muted",
permissions: [],
color: "RED"
},
reason: "Created the mute role."
}).catch(console.log)
});
const Guild = client.guilds.cache.get("1234567890123456789");
Guild.roles.create({
data: {
name: "Muted",
permissions: [],
color: "RED"
},
reason: "Created the mute role."
}).catch(console.log)
只要您有角色管理器,您就應該根據文檔具有創建功能
所以我解決這個問題的建議是看看哪里出了問題。 我已經使用 typeScript 中的 createGuild 事件完成了它。 這將在機器人加入新公會時創建角色。
client.on('guildCreate', async guild => {
await guild.roles.create({ data: { name: 'roleName' } });
});
另請注意,您需要足夠高的權限才能實際創建角色。
ps:出現錯誤時提供錯誤會很有用(完整錯誤)
如果您嘗試執行 guild.create.roles 控制台會給您一個錯誤消息: guild <= is not defined!
您需要編寫message.guild.create.roles
而不是the guild.create.roles
,在此之后,您將獲得創建的角色。
創建角色的示例代碼,帶有“調試消息”:
message.channel.send('creating a role')
message.guild.roles.create({
data: {
name: 'Testing Role',
color: 'GREY'
},
reason: 'Stackoverflow.com - created for user14470589'
})
.then((res => {
message.channel.send(`debug result:\n${res}`)
})).catch((err => {
message.channel.send(`error:\n${err}`)
}))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.