From 3ef01779bee76239d99685bb9fcef4cfdbec2fef Mon Sep 17 00:00:00 2001 From: Cynthia Foxwell Date: Wed, 23 Apr 2025 18:52:50 -0600 Subject: [PATCH] start logging, only feature changes for now --- src/modules/logging.js | 55 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/modules/logging.js diff --git a/src/modules/logging.js b/src/modules/logging.js new file mode 100644 index 0000000..fdcb7d4 --- /dev/null +++ b/src/modules/logging.js @@ -0,0 +1,55 @@ +const {getGuildData} = require("#lib/guildData.js"); +const events = require("#lib/events.js"); + +//const {AuditLogActions} = require("#util/dconstants.js"); + +//const COLOR_ADDED = 0x399d53; +//const COLOR_REMOVED = 0xe55152; +const COLOR_CHANGED = 0x3c8cec; + +async function getLoggingChannel(guild) { + const channelId = await getGuildData(guild.id, "logging_channel", ""); + return guild.channels.get(channelId) ?? guild.threads.get(channelId); +} + +/*events.add("guildAuditLogEntryCreate", "logging", async function (entry) { + const channel = await getLoggingChannel(entry.guild); + if (!channel) return; + + switch (entry.actionType) { + case AuditLogActions.GUILD_UPDATE: { + break; + } + } +});*/ + +events.add("guildUpdate", "logging", async function (guild, oldGuild) { + const channel = await getLoggingChannel(guild); + if (!channel) return; + + const featuresAdded = oldGuild.features.filter((f) => !guild.features.includes(f)); + const featuresRemoved = guild.features.filter((f) => !oldGuild.features.includes(f)); + + if (featuresAdded.length === 0 && featuresRemoved.length === 0) return; + + let diff = "```diff\n"; + + if (featuresAdded.length > 0) diff += "+ " + featuresAdded.join("\n+ "); + + if (featuresRemoved.length > 0) { + if (featuresAdded.length > 0) diff += "\n"; + diff += "- " + featuresAdded.join("\n- "); + } + + diff += "```"; + + channel.createMessage({ + embeds: [ + { + color: COLOR_CHANGED, + title: "Features Updated", + content: diff, + }, + ], + }); +});