diff options
| -rw-r--r-- | packages/gateway/src/listeners/messageCreate/dailyConversationStarter.ts | 48 | ||||
| -rw-r--r-- | packages/gateway/src/listeners/messageCreate/personaRandomMessage.ts | 48 |
2 files changed, 43 insertions, 53 deletions
diff --git a/packages/gateway/src/listeners/messageCreate/dailyConversationStarter.ts b/packages/gateway/src/listeners/messageCreate/dailyConversationStarter.ts index 3c620ac..75cbf36 100644 --- a/packages/gateway/src/listeners/messageCreate/dailyConversationStarter.ts +++ b/packages/gateway/src/listeners/messageCreate/dailyConversationStarter.ts @@ -47,7 +47,7 @@ class DailyConversationStarterSystem { if (ENABLED_PRIMER_MESSAGE) this.sendPrimerMessage(); } - private async initializeWebhook() { + private async initializeWebhook(personaName: string, personaAvatar: string) { if (!this.client) return; try { @@ -55,8 +55,8 @@ class DailyConversationStarterSystem { if (channel && "createWebhook" in channel) { const webhook = await channel.createWebhook({ - name: "Uma Conversation Starter", - avatar: UMA_PERSONAS[0].avatar, + name: personaName, + avatar: personaAvatar, }); this.webhookClient = new WebhookClient({ url: webhook.url }); @@ -70,16 +70,6 @@ class DailyConversationStarterSystem { private async sendPrimerMessage() { try { - await this.initializeWebhook(); - - if (!this.webhookClient) { - console.error( - "Failed to create webhook for conversation starter primer message", - ); - - return; - } - const randomPersona = UMA_PERSONAS[Math.floor(Math.random() * UMA_PERSONAS.length)]; const randomMessage = @@ -91,10 +81,16 @@ class DailyConversationStarterSystem { randomPersona.name, ); - await this.webhookClient.edit({ - name: randomPersona.name, - avatar: randomPersona.avatar, - }); + await this.initializeWebhook(randomPersona.name, randomPersona.avatar); + + if (!this.webhookClient) { + console.error( + "Failed to create webhook for conversation starter primer message", + ); + + return; + } + await this.webhookClient.send(formattedMessage); this.tracker.lastMessageTime = Date.now(); @@ -115,8 +111,6 @@ class DailyConversationStarterSystem { if (message.author.bot) return; - if (!this.webhookClient) await this.initializeWebhook(); - if (this.tracker.lastMessageTime === 0) return; const now = Date.now(); @@ -143,13 +137,17 @@ class DailyConversationStarterSystem { randomPersona.name, ); - if (this.webhookClient) - await this.webhookClient.edit({ - name: randomPersona.name, - avatar: randomPersona.avatar, - }); + await this.initializeWebhook(randomPersona.name, randomPersona.avatar); + + if (!this.webhookClient) { + console.error( + "Failed to create webhook for conversation starter message", + ); - await this.webhookClient?.send(formattedMessage); + return; + } + + await this.webhookClient.send(formattedMessage); this.tracker.lastMessageTime = Date.now(); diff --git a/packages/gateway/src/listeners/messageCreate/personaRandomMessage.ts b/packages/gateway/src/listeners/messageCreate/personaRandomMessage.ts index cb9e9e4..8fc200d 100644 --- a/packages/gateway/src/listeners/messageCreate/personaRandomMessage.ts +++ b/packages/gateway/src/listeners/messageCreate/personaRandomMessage.ts @@ -44,7 +44,7 @@ class PersonaRandomMessageSystem { if (ENABLED_PRIMER_MESSAGE) this.sendPrimerMessage(); } - private async initializeWebhook() { + private async initializeWebhook(personaName: string, personaAvatar: string) { if (!this.client) return; try { @@ -52,8 +52,8 @@ class PersonaRandomMessageSystem { if (channel && "createWebhook" in channel) { const webhook = await channel.createWebhook({ - name: "Uma Persona", - avatar: UMA_PERSONAS[0].avatar, + name: personaName, + avatar: personaAvatar, }); this.webhookClient = new WebhookClient({ url: webhook.url }); @@ -67,14 +67,6 @@ class PersonaRandomMessageSystem { private async sendPrimerMessage() { try { - await this.initializeWebhook(); - - if (!this.webhookClient) { - console.error("Failed to create webhook for primer message"); - - return; - } - const randomPersona = UMA_PERSONAS[Math.floor(Math.random() * UMA_PERSONAS.length)]; const randomMessage = @@ -84,10 +76,14 @@ class PersonaRandomMessageSystem { randomPersona.name, ); - await this.webhookClient.edit({ - name: randomPersona.name, - avatar: randomPersona.avatar, - }); + await this.initializeWebhook(randomPersona.name, randomPersona.avatar); + + if (!this.webhookClient) { + console.error("Failed to create webhook for primer message"); + + return; + } + await this.webhookClient.send(formattedMessage); await this.cleanupWebhook(); } catch (error) { @@ -102,8 +98,6 @@ class PersonaRandomMessageSystem { if (message.author.bot) return; - if (!this.webhookClient) await this.initializeWebhook(); - this.tracker.messageCount += 1; const now = Date.now(); @@ -111,11 +105,7 @@ class PersonaRandomMessageSystem { const fiveMinutes = 5 * 60 * 1000; const isChannelActive = timeSinceLastMessage < fiveMinutes; - if ( - this.tracker.messageCount >= MESSAGE_THRESHOLD && - isChannelActive && - this.webhookClient - ) + if (this.tracker.messageCount >= MESSAGE_THRESHOLD && isChannelActive) await this.sendRandomPersonaMessage(message); } @@ -132,13 +122,15 @@ class PersonaRandomMessageSystem { randomPersona.name, ); - if (this.webhookClient) - await this.webhookClient.edit({ - name: randomPersona.name, - avatar: randomPersona.avatar, - }); + await this.initializeWebhook(randomPersona.name, randomPersona.avatar); - await this.webhookClient?.send(formattedMessage); + if (!this.webhookClient) { + console.error("Failed to create webhook for persona message"); + + return; + } + + await this.webhookClient.send(formattedMessage); this.tracker.messageCount = 0; this.tracker.lastRandomMessageTime = Date.now(); |