client.on("roleCreate", role => {
const channel = role.guild.channels.cache.find(ch => ch.name === "welcome");
const embed = new Discord.MessageEmbed()
.setColor("DEFAULT")
.setDescription(`A new role has been created\nPermissions List: ${role.permissions}`)
channel.send(embed)
});
我正在尝试 Discord.JS 文档中的不同事件,但是,当我遇到 roleCreate
事件时,我尝试了它,当我创建一个新 Angular 色时,它起作用了。但是对于role.permissions
;我不太清楚为什么我会得到 [object Object]
。我怎么可能解决这个问题?
Discord.JS:v12.2.0
最佳答案
那是因为 role.permissions
是一个对象:
https://discord.js.org/#/docs/main/stable/class/Permissions
使用.toArray()
方法结合join()
:
client.on("roleCreate", role => {
const channel = role.guild.channels.cache.find(ch => ch.name === "welcome");
const perms = role.permissions.toArray().join("\n");
const embed = new Discord.MessageEmbed()
.setColor("DEFAULT")
.setDescription(`A new role has been created\nPermissions List:\n${perms}`)
channel.send(embed)
});
将其从 CREATE_INSTANT_INVITE
获取到 Create Instant Invite
const perms = role.permissions.toArray().map(e => {
const words = e.split("_").map(x => x[0] + x.slice(1).toLowerCase());
return words.join(" ");
}).join("\n");
关于javascript - Discord.JS 角色创建事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62745205/