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;
|
break;
|
||||||
}
|
}
|
||||||
case AuditLogActions.MEMBER_ROLE_UPDATE: {
|
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 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" : "";
|
const plural = roles.length > 1 ? "s" : "";
|
||||||
|
|
||||||
channel
|
channel
|
||||||
.createMessage({
|
.createMessage({
|
||||||
embeds: [
|
embeds: [
|
||||||
{
|
{
|
||||||
color: added ? COLOR_ADDED : COLOR_REMOVED,
|
color: addAndRemove ? COLOR_CHANGED : isAdd ? COLOR_ADDED : COLOR_REMOVED,
|
||||||
title: `Member Role${plural} Updated`,
|
title: `Member Role${plural} Updated`,
|
||||||
description: `<@${entry.user.id}> (${formatUsername(entry.user)}) ${added ? "added" : "removed"} ${
|
description: `<@${entry.user.id}> (${formatUsername(entry.user)}) ${
|
||||||
roles.length > 1 ? `${roles.length} ` : ""
|
addAndRemove ? "added and removed" : isAdd ? "added" : "removed"
|
||||||
}role${plural} ${added ? "to" : "from"} ${
|
} ${roles.length > 1 ? `${roles.length} ` : ""}role${plural} ${added ? "to" : "from"} ${
|
||||||
isSelf ? "self" : `<@${entry.targetID}> (${formatUsername(entry.target.user)})`
|
isSelf ? "self" : `<@${entry.targetID}> (${formatUsername(entry.target.user)})`
|
||||||
}`,
|
}`,
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
fields: [
|
fields: [
|
||||||
{
|
!addAndRemove && {
|
||||||
name: `Role${plural}`,
|
name: `Role${plural}`,
|
||||||
value: roles.map((role) => `<@&${role.id}> (${role.name})`).join("\n"),
|
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: {
|
footer: {
|
||||||
text: `Role ID${plural}: ${roles.map((role) => role.id).join(", ")}`,
|
text: `Role ID${plural}: ${roles.map((role) => role.id).join(", ")}`,
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue