summaryrefslogtreecommitdiff
path: root/packages/gateway
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gateway')
-rw-r--r--packages/gateway/src/listeners/messageCreate/dailyConversationStarter.ts48
-rw-r--r--packages/gateway/src/listeners/messageCreate/personaRandomMessage.ts48
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();