From 506954f3dfb855bba9cc5515536c874dc7d0a5b5 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Sun, 19 Feb 2023 19:55:28 +0100 Subject: Add basic message interceptor framework Signed-off-by: TheArcaneBrony --- .../plural_tooling/PluralCommandInterceptor.ts | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/util/message_interceptors/plural_tooling/PluralCommandInterceptor.ts (limited to 'src/util/message_interceptors/plural_tooling') diff --git a/src/util/message_interceptors/plural_tooling/PluralCommandInterceptor.ts b/src/util/message_interceptors/plural_tooling/PluralCommandInterceptor.ts new file mode 100644 index 00000000..ac6bb153 --- /dev/null +++ b/src/util/message_interceptors/plural_tooling/PluralCommandInterceptor.ts @@ -0,0 +1,46 @@ +import { + emitEvent, + IMessageInterceptor, Message, + MessageCreateEvent, MessageDeleteEvent, MessageFlags, + MessageInterceptorContext, + MessageInterceptResult, MessageTypes +} from "@fosscord/util"; + +export class PluralCommandInterceptor implements IMessageInterceptor { + async execute(ctx: MessageInterceptorContext): Promise { + 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; + } + +} \ No newline at end of file -- cgit 1.5.1