62 lines
1.8 KiB
TypeScript
62 lines
1.8 KiB
TypeScript
import EventEmitter from "node:events";
|
|
import {
|
|
type WaterMeController,
|
|
waterMeController,
|
|
} from "features/water-me/water-me.controller";
|
|
import client from "lib/client";
|
|
|
|
export default class DiscordController extends EventEmitter {
|
|
async handleChatInputCommand(
|
|
interaction: ChatInputCommandInteraction<CacheType>,
|
|
) {
|
|
const commandName = interaction.commandName as CommandsType;
|
|
|
|
// add commands
|
|
switch (commandName) {
|
|
case Commands.Enum.giessen:
|
|
await this.waterMeService.handleInteraction(interaction); // zu chatinputcommand wechseln
|
|
return;
|
|
case Commands.Enum.medikamente:
|
|
await this.medicationService.handleChatInputCommand(interaction);
|
|
return;
|
|
case Commands.Enum.hilfe:
|
|
await this.helpService.handleInteraction(interaction); // zu chatinputcommand wechseln
|
|
return;
|
|
case Commands.Enum.support:
|
|
case Commands.Enum.kofi:
|
|
case Commands.Enum.disboard:
|
|
case Commands.Enum.discadia:
|
|
await this.supportService.handleInteraction(interaction);
|
|
return;
|
|
case Commands.Enum.accept:
|
|
await this.greetingService.handleChatInputCommand(interaction);
|
|
return;
|
|
case Commands.Enum.welcome:
|
|
await this.greetingService.handleChatInputCommand(interaction);
|
|
return;
|
|
case Commands.Enum.embed:
|
|
case Commands.Enum.message:
|
|
await this.customMessageService.handleChatInputCommand(interaction);
|
|
return;
|
|
case Commands.Enum.reminder:
|
|
await this.greetingService.handleChatInputCommand(interaction);
|
|
return;
|
|
case Commands.Enum.version:
|
|
await this.debugService.handleChatInputCommand(interaction);
|
|
return;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
// wenn neues fenster durch buttonclick or so
|
|
async handleModalSubmit(interaction: ModalSubmitInteraction<CacheType>) {
|
|
const { customId } = interaction;
|
|
|
|
switch (customId) {
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|