【发布时间】:2021-04-07 02:59:31
【问题描述】:
我正在尝试做的是一个简单的事件记录器,它将在其中输出,例如角色是否丢失/获得了权限。所以我想到了比较两者,然后简单地将它们相减,所以它只显示一个特定的权限。相反,我得到 1 个未定义(权限丢失,检查下面的代码)而其他只是空白,因为根本没有文本(权限获得,检查下面的代码)。我已经做过了,比如公会成员失去角色或获得角色,但它的工作方式不同。
我做错了什么,我该如何从这里继续?
代码:
bot.on("roleUpdate", async (oldRole, newRole) => {
if (oldRole.permissions !== newRole.permissions) {
if (oldRole.permissions > newRole.permissions) {
//Permission lost
let oldPerms = oldRole.serialize()
let newPerms = newRole.serialize()
var permLost = Object.keys(oldPerms, newPerms).find(perm => perm[newPerms] - oldPerms)
const embed = new Discord.RichEmbed()
.setAuthor(`Role changed permissions`)
.setColor("#ffc500")
.setDescription(`**${newRole.toString()} has lost the ${permLost} permission**`)
.setFooter(`ID: ${newRole.id} ????`)
.setTimestamp()
logchannel.send(embed).catch()
} else if (oldRole.permissions < newRole.permissions) {
//Permission given
let oldPerms = oldRole.serialize()
let newPerms = newRole.serialize()
var permGained = Object.keys(oldPerms, newPerms).filter(perm => perm[newPerms] - oldPerms)
const embed2 = new Discord.RichEmbed()
.setAuthor(`Role changed permissions`)
.setColor("#ffc500")
.setDescription(`**${newRole.toString()} has been given the ${permGained} permission**`)
.setFooter(`ID: ${newRole.id} ????`)
.setTimestamp()
logchannel.send(embed2).catch()
}
}
});
【问题讨论】:
标签: discord discord.js