diff options
| author | Fuwn <[email protected]> | 2025-10-10 11:48:55 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-10-10 11:48:55 -0700 |
| commit | eeb6bee6f31fbfcc53075da35a318e0ae18e11cc (patch) | |
| tree | 5ae92d84255e3144e606c333dea0d179e5eb8361 | |
| parent | style(gateway): Stylise (diff) | |
| download | umabotdiscord-eeb6bee6f31fbfcc53075da35a318e0ae18e11cc.tar.xz umabotdiscord-eeb6bee6f31fbfcc53075da35a318e0ae18e11cc.zip | |
feat(gateway): Update logging of persona messages and reactions
3 files changed, 35 insertions, 19 deletions
diff --git a/packages/gateway/src/commands/utilities.ts b/packages/gateway/src/commands/utilities.ts index b4d32ba..d6ec548 100644 --- a/packages/gateway/src/commands/utilities.ts +++ b/packages/gateway/src/commands/utilities.ts @@ -481,6 +481,7 @@ export const sendPersonaLog = async ( personaName: string, messageLink?: string, isPrimer: boolean = false, + sentMessageLink?: string, ): Promise<void> => { try { const logChannelId = "1426269876569509968"; @@ -519,12 +520,25 @@ export const sendPersonaLog = async ( ) .setTimestamp(); - if (messageLink && !isPrimer) + if (isPrimer && sentMessageLink) { + embed.addFields({ + name: "Sent Message", + value: `[Click to view](${sentMessageLink})`, + inline: false, + }); + } else if (type === "reaction" && messageLink) { embed.addFields({ name: "Trigger Message", value: `[Click to view](${messageLink})`, inline: false, }); + } else if (sentMessageLink) { + embed.addFields({ + name: "Sent Message", + value: `[Click to view](${sentMessageLink})`, + inline: false, + }); + } await (channel as any).send({ embeds: [embed] }); } catch (error) { diff --git a/packages/gateway/src/listeners/messageCreate/dailyConversationStarter.ts b/packages/gateway/src/listeners/messageCreate/dailyConversationStarter.ts index 5ee0405..1f0c80a 100644 --- a/packages/gateway/src/listeners/messageCreate/dailyConversationStarter.ts +++ b/packages/gateway/src/listeners/messageCreate/dailyConversationStarter.ts @@ -74,13 +74,16 @@ class DailyConversationStarterSystem { return; } - await this.webhookClient.send(formattedMessage); + const sentMessage = await this.webhookClient.send(formattedMessage); + const sentMessageLink = `https://discord.com/channels/${this.client!.guilds.cache.first()?.id}/${TARGET_CHANNEL_ID}/${sentMessage.id}`; + await sendPersonaLog( this.client!, "conversation", randomPersona.name, undefined, true, + sentMessageLink, ); this.tracker.lastMessageTime = Date.now(); @@ -108,13 +111,11 @@ class DailyConversationStarterSystem { const minIntervalMs = MIN_HOURS_BETWEEN_MESSAGES * 60 * 60 * 1000; if (timeSinceLastMessage >= minIntervalMs) { - await this.sendRandomConversationStarter(message); + await this.sendRandomConversationStarter(); } } - private async sendRandomConversationStarter( - triggerMessage: Message, - ): Promise<void> { + private async sendRandomConversationStarter(): Promise<void> { try { const randomPersona = UMA_PERSONAS[Math.floor(Math.random() * UMA_PERSONAS.length)]; @@ -134,16 +135,16 @@ class DailyConversationStarterSystem { return; } - await this.webhookClient.send(formattedMessage); - - const messageLink = `https://discord.com/channels/${triggerMessage.guildId}/${triggerMessage.channelId}/${triggerMessage.id}`; + const sentMessage = await this.webhookClient.send(formattedMessage); + const sentMessageLink = `https://discord.com/channels/${this.client!.guilds.cache.first()?.id}/${TARGET_CHANNEL_ID}/${sentMessage.id}`; await sendPersonaLog( this.client!, "conversation", randomPersona.name, - messageLink, + undefined, false, + sentMessageLink, ); this.tracker.lastMessageTime = Date.now(); diff --git a/packages/gateway/src/listeners/messageCreate/personaRandomMessage.ts b/packages/gateway/src/listeners/messageCreate/personaRandomMessage.ts index 827925d..f0ca3be 100644 --- a/packages/gateway/src/listeners/messageCreate/personaRandomMessage.ts +++ b/packages/gateway/src/listeners/messageCreate/personaRandomMessage.ts @@ -74,13 +74,16 @@ class PersonaRandomMessageSystem { return; } - await this.webhookClient.send(formattedMessage); + const sentMessage = await this.webhookClient.send(formattedMessage); + const sentMessageLink = `https://discord.com/channels/${this.client!.guilds.cache.first()?.id}/${TARGET_CHANNEL_ID}/${sentMessage.id}`; + await sendPersonaLog( this.client!, "persona", randomPersona.name, undefined, true, + sentMessageLink, ); await this.cleanupWebhook(); } catch (error) { @@ -103,12 +106,10 @@ class PersonaRandomMessageSystem { const isChannelActive = timeSinceLastMessage < fiveMinutes; if (this.tracker.messageCount >= MESSAGE_THRESHOLD && isChannelActive) - await this.sendRandomPersonaMessage(message); + await this.sendRandomPersonaMessage(); } - private async sendRandomPersonaMessage( - triggerMessage: Message, - ): Promise<void> { + private async sendRandomPersonaMessage(): Promise<void> { try { const randomPersona = UMA_PERSONAS[Math.floor(Math.random() * UMA_PERSONAS.length)]; @@ -126,16 +127,16 @@ class PersonaRandomMessageSystem { return; } - await this.webhookClient.send(formattedMessage); - - const messageLink = `https://discord.com/channels/${triggerMessage.guildId}/${triggerMessage.channelId}/${triggerMessage.id}`; + const sentMessage = await this.webhookClient.send(formattedMessage); + const sentMessageLink = `https://discord.com/channels/${this.client!.guilds.cache.first()?.id}/${TARGET_CHANNEL_ID}/${sentMessage.id}`; await sendPersonaLog( this.client!, "persona", randomPersona.name, - messageLink, + undefined, false, + sentMessageLink, ); this.tracker.messageCount = 0; |