logging: another roles edgecase
This commit is contained in:
parent
6cfe1a9e62
commit
70758af75c
1 changed files with 23 additions and 8 deletions
|
@ -131,29 +131,44 @@ events.add("guildAuditLogEntryCreate", "logging", async function (entry) {
|
|||
break;
|
||||
}
|
||||
case AuditLogActions.MEMBER_ROLE_UPDATE: {
|
||||
const added = entry.after.$add != null;
|
||||
const isAdd = entry.after.$add != null;
|
||||
const isSelf = entry.user.id === entry.targetID;
|
||||
const roles = entry.after.$add ?? entry.after.$remove;
|
||||
|
||||
const added = entry.after.$add;
|
||||
const removed = entry.after.$remove;
|
||||
let roles = added ?? removed;
|
||||
|
||||
const addAndRemove = added != null && removed != null;
|
||||
if (addAndRemove) roles = [...added, ...removed];
|
||||
|
||||
const plural = roles.length > 1 ? "s" : "";
|
||||
|
||||
channel
|
||||
.createMessage({
|
||||
embeds: [
|
||||
{
|
||||
color: added ? COLOR_ADDED : COLOR_REMOVED,
|
||||
color: addAndRemove ? COLOR_CHANGED : isAdd ? COLOR_ADDED : COLOR_REMOVED,
|
||||
title: `Member Role${plural} Updated`,
|
||||
description: `<@${entry.user.id}> (${formatUsername(entry.user)}) ${added ? "added" : "removed"} ${
|
||||
roles.length > 1 ? `${roles.length} ` : ""
|
||||
}role${plural} ${added ? "to" : "from"} ${
|
||||
description: `<@${entry.user.id}> (${formatUsername(entry.user)}) ${
|
||||
addAndRemove ? "added and removed" : isAdd ? "added" : "removed"
|
||||
} ${roles.length > 1 ? `${roles.length} ` : ""}role${plural} ${added ? "to" : "from"} ${
|
||||
isSelf ? "self" : `<@${entry.targetID}> (${formatUsername(entry.target.user)})`
|
||||
}`,
|
||||
timestamp: new Date().toISOString(),
|
||||
fields: [
|
||||
{
|
||||
!addAndRemove && {
|
||||
name: `Role${plural}`,
|
||||
value: roles.map((role) => `<@&${role.id}> (${role.name})`).join("\n"),
|
||||
},
|
||||
],
|
||||
addAndRemove && {
|
||||
name: "Added",
|
||||
value: added.map((role) => `<@&${role.id}> (${role.name})`).join("\n"),
|
||||
},
|
||||
addAndRemove && {
|
||||
name: "Removed",
|
||||
value: removed.map((role) => `<@&${role.id}> (${role.name})`).join("\n"),
|
||||
},
|
||||
].filter((x) => !!x),
|
||||
footer: {
|
||||
text: `Role ID${plural}: ${roles.map((role) => role.id).join(", ")}`,
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue