summaryrefslogtreecommitdiff
path: root/packages/gateway/src/commands/commandHandler.ts
blob: efa621a0f5507fe66099be555a5c56eb7dcba097 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { Client, Events, Message } from "discord.js";
import { handleSayCommand } from "./say";
import { handleSaycCommand } from "./sayc";
import { handleStartCommand } from "./start";
import { handleCrpCommand } from "./crp";
import { handleReactCommand } from "./react";
import { handleDeleteCommand } from "./delete";
import { handlePinCommand } from "./pin";
import { handleRoleCommand } from "./role";
import { handleVerbalGatesCommand } from "./verbalGates";
import { handleWebhookCommand } from "./webhook";
import { handleDeleteWebhookCommand } from "./deleteWebhook";
import { handleCharacterClaimUsageCommand } from "./characterClaimUsage";
import { handleTimeoutCommand } from "./timeout";
import { handleDeleteRangeCommand } from "./deleteRange";

export const handleCommandHandler = (client: Client) => {
  client.on(Events.MessageCreate, async (message: Message) => {
    if (message.author.bot) return;

    const verbalGatesHandled = await handleVerbalGatesCommand(message);
    const saycHandled = await handleSaycCommand(message);

    (message as any).verbalGatesHandled = verbalGatesHandled;
    (message as any).saycHandled = saycHandled;

    await Promise.allSettled([
      handleSayCommand(message),
      handleStartCommand(message),
      handleCrpCommand(message),
      handleReactCommand(message),
      handleDeleteCommand(message),
      handleDeleteRangeCommand(message),
      handlePinCommand(message),
      handleRoleCommand(message),
      handleWebhookCommand(message),
      handleDeleteWebhookCommand(message),
      handleCharacterClaimUsageCommand(message),
      handleTimeoutCommand(message),
    ]);
  });
};