logging: member role update

This commit is contained in:
Cynthia Foxwell 2025-04-23 21:27:42 -06:00
parent a3d8331e29
commit 445ff2b118
Signed by: Cynosphere
SSH key fingerprint: SHA256:H3SM8ufP/uxqLwKSH7xY89TDnbR9uOHzjLoBr0tlajk

View file

@ -33,7 +33,6 @@ events.add("guildAuditLogEntryCreate", "logging", async function (entry) {
case AuditLogActions.MEMBER_BAN_ADD:
case AuditLogActions.MEMBER_BAN_REMOVE:
case AuditLogActions.MEMBER_UPDATE:
case AuditLogActions.MEMBER_ROLE_UPDATE:
case AuditLogActions.BOT_ADD:
case AuditLogActions.ROLE_CREATE:
case AuditLogActions.ROLE_UPDATE:
@ -73,6 +72,36 @@ events.add("guildAuditLogEntryCreate", "logging", async function (entry) {
.catch(() => {});
break;
}
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];
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)})`}`,
timestamp: new Date().toISOString(),
fields: [
{
name: "Role",
value: `<@&${role.id}> (${role.name})`,
},
],
footer: {
text: `Role ID: ${role.id}`,
},
},
],
})
.catch(() => {});
break;
}
}
});
@ -138,7 +167,7 @@ events.add("guildMemberAdd", "logging", async function (guild, member) {
{
color: COLOR_ADDED,
title: "Member Joined",
description: `<@${user.id}> ${formatUsername(user)}`,
description: `<@${user.id}> (${formatUsername(user)})`,
timestamp: new Date().toISOString(),
thumbnail: {
url: avatar,
@ -172,7 +201,7 @@ events.add("guildMemberAdd", "logging", async function (guild, member) {
},
].filter((x) => !!x),
footer: {
text: user.id,
text: `User ID: ${user.id}`,
},
},
],
@ -197,7 +226,7 @@ events.add("guildMemberRemove", "logging", async function (guild, member) {
{
color: COLOR_REMOVED,
title: "Member Left",
description: `<@${user.id}> ${formatUsername(user)}`,
description: `<@${user.id}> (${formatUsername(user)})`,
timestamp,
thumbnail: {
url: avatar,
@ -223,7 +252,7 @@ events.add("guildMemberRemove", "logging", async function (guild, member) {
},
].filter((x) => !!x),
footer: {
text: user.id,
text: `User ID: ${user.id}`,
},
},
],
@ -240,13 +269,13 @@ events.add("guildMemberRemove", "logging", async function (guild, member) {
{
color: COLOR_REMOVED,
title: "Member Left",
description: `-# Uncached member, limited info\n<@${user.id}> ${formatUsername(user)}`,
description: `-# Uncached member, limited info\n<@${user.id}> (${formatUsername(user)})`,
timestamp,
thumbnail: {
url: avatar,
},
footer: {
text: user.id,
text: `User ID: ${user.id}`,
},
},
],