From 401329bff184b0a44563c3ed333ac52aaf329ad6 Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Wed, 21 Sep 2022 16:24:27 +0200 Subject: [PATCH] - fix multiple responses to single interaction --- package.json | 5 +++-- src/Controllers/discord.controller.ts | 15 ++++++--------- src/Services/discord/discord.service.ts | 18 +++++++++++++----- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 3d11704..5833344 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "private": true, "scripts": { "database:migrate": "yarn prisma migrate dev", - "dev": "nodemon --watch './**/*.ts' --exec 'ts-node --esm -r tsconfig-paths/register ./src/index.ts'" + "dev": "nodemon --watch './**/*.ts' --exec 'ts-node --esm -r tsconfig-paths/register ./src/index.ts'", + "start": "ts-node --esm -r tsconfig-paths/register ./src/index.ts" }, "devDependencies": { "@types/node": "^18.7.18", @@ -28,4 +29,4 @@ "dotenv": "^16.0.2", "node-cleanup": "^2.1.2" } -} +} \ No newline at end of file diff --git a/src/Controllers/discord.controller.ts b/src/Controllers/discord.controller.ts index b3bbaa4..7ed71ba 100644 --- a/src/Controllers/discord.controller.ts +++ b/src/Controllers/discord.controller.ts @@ -32,13 +32,9 @@ export default class DiscordController extends EventEmitter { async handleInteraction(interaction: Interaction) { if (interaction.isModalSubmit()) { await this.handleModalSubmit(interaction); - } - - if (interaction.isChatInputCommand()) { + } else if (interaction.isChatInputCommand()) { await this.handleChatInputCommand(interaction); - } - - if (interaction.isButton()) { + } else if (interaction.isButton()) { await this.handleButton(interaction); } } @@ -59,11 +55,13 @@ export default class DiscordController extends EventEmitter { switch (commandName) { case "quote": await this.discordService.handleQuote(interaction); + return; case "quotemodal": await this.discordService.handleQuoteModal(interaction); + return; case "actions": await this.discordService.handleActions(interaction); - + return; default: break; } @@ -75,10 +73,9 @@ export default class DiscordController extends EventEmitter { switch (customId) { case "quoteModal": await this.discordService.handleQuote(interaction); + return; default: break; } } - - async sendActions(interaction: ChatInputCommandInteraction) {} } diff --git a/src/Services/discord/discord.service.ts b/src/Services/discord/discord.service.ts index 9d6e629..9a252b0 100644 --- a/src/Services/discord/discord.service.ts +++ b/src/Services/discord/discord.service.ts @@ -60,7 +60,11 @@ export default class DiscordService { const modal = getQuoteModal(); if (interaction.isButton() || interaction.isChatInputCommand()) { - await interaction.showModal(modal); + try { + await interaction.showModal(modal); + } catch (e) { + console.error(e); + } } } @@ -102,10 +106,14 @@ export default class DiscordService { await channel.send(content); if (interaction.isChatInputCommand() || interaction.isModalSubmit()) { - await interaction.reply({ - content: "Completed!", - ephemeral: true, - }); + try { + await interaction.reply({ + content: "Completed!", + ephemeral: true, + }); + } catch (e) { + console.error(e); + } } return;