logging: multiple roles at once for onboarding

This commit is contained in:
Cynthia Foxwell 2025-04-24 13:55:40 -06:00
parent 636a52290e
commit 6cfe1a9e62
Signed by: Cynosphere
SSH key fingerprint: SHA256:H3SM8ufP/uxqLwKSH7xY89TDnbR9uOHzjLoBr0tlajk

View file

@ -133,26 +133,29 @@ events.add("guildAuditLogEntryCreate", "logging", async function (entry) {
case AuditLogActions.MEMBER_ROLE_UPDATE: {
const added = entry.after.$add != null;
const isSelf = entry.user.id === entry.targetID;
const role = (entry.after.$add ?? entry.after.$remove)[0];
const roles = entry.after.$add ?? entry.after.$remove;
const plural = roles.length > 1 ? "s" : "";
channel
.createMessage({
embeds: [
{
color: added ? COLOR_ADDED : COLOR_REMOVED,
title: `Member Role Updated`,
description: `<@${entry.user.id}> (${formatUsername(entry.user)}) ${added ? "added" : "removed"} role ${
added ? "to" : "from"
} ${isSelf ? "self" : `<@${entry.targetID}> (${formatUsername(entry.target.user)})`}`,
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"} ${
isSelf ? "self" : `<@${entry.targetID}> (${formatUsername(entry.target.user)})`
}`,
timestamp: new Date().toISOString(),
fields: [
{
name: "Role",
value: `<@&${role.id}> (${role.name})`,
name: `Role${plural}`,
value: roles.map((role) => `<@&${role.id}> (${role.name})`).join("\n"),
},
],
footer: {
text: `Role ID: ${role.id}`,
text: `Role ID${plural}: ${roles.map((role) => role.id).join(", ")}`,
},
},
],