summary refs log tree commit diff
path: root/src/util/message_interceptors/plural_tooling/PluralCommandInterceptor.ts
blob: ac6bb15300cfc5d74774d40a6c70de5d9a551922 (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
43
44
45
46
import {
    emitEvent,
    IMessageInterceptor, Message,
    MessageCreateEvent, MessageDeleteEvent, MessageFlags,
    MessageInterceptorContext,
    MessageInterceptResult, MessageTypes
} from "@fosscord/util";

export class PluralCommandInterceptor implements IMessageInterceptor {
    async execute(ctx: MessageInterceptorContext): Promise<MessageInterceptResult> {
        let result = new MessageInterceptResult();
        result.cancel = false;
        result.message = ctx.message;

        if(ctx.message.content?.toLowerCase().startsWith("p;")) {
            console.log("[PluralCommandInterceptor] Plural command prefix detected, cancelling message send. Content: ", ctx.message.content)
            result.cancel = true;
        }


        if(result.cancel) {
            /*await emitEvent({
                event: "MESSAGE_DELETE",
                channel_id: ctx.message.channel_id,
                data: {
                    id: ctx.message.id,
                    channel_id: ctx.message.channel_id,
                    guild_id: ctx.message.guild_id
                },
            } as MessageDeleteEvent);*/
            //result.message.flags = String((BigInt(ctx.message.flags ?? "0")) | MessageTypes.);
            // @ts-ignore
            result.message.ephemeral = true;
            result.message.content += ' (ephemeral?)';
            /*await emitEvent({
                event: "MESSAGE_CREATE",
                //channel_id: ctx.opts.channel_id,
                user_id: ctx.opts.author_id,
                data: ctx.message.toJSON(),
            } as MessageCreateEvent);*/
        }

        return result;
    }

}