From 6d2af4728c886db2ee40a22e5be66562159835ff Mon Sep 17 00:00:00 2001 From: Jacob Nguyen <76754747+jacoobes@users.noreply.github.com> Date: Fri, 11 Mar 2022 10:39:30 -0600 Subject: [PATCH] feat(handler) Filters only executable messages now --- src/handler/events/messageEvent.ts | 10 ++++++---- src/handler/sern.ts | 3 --- src/handler/utilities/events/readEvent.ts | 4 ---- src/handler/utilities/higherOrders.ts | 16 ---------------- src/handler/utilities/messageHelpers.ts | 11 +++++++++++ src/handler/utilities/readyEvent.ts | 0 6 files changed, 17 insertions(+), 27 deletions(-) delete mode 100644 src/handler/utilities/events/readEvent.ts delete mode 100644 src/handler/utilities/higherOrders.ts delete mode 100644 src/handler/utilities/readyEvent.ts diff --git a/src/handler/events/messageEvent.ts b/src/handler/events/messageEvent.ts index def16c4..4ebc9ae 100644 --- a/src/handler/events/messageEvent.ts +++ b/src/handler/events/messageEvent.ts @@ -1,15 +1,17 @@ import type { Message } from "discord.js"; import { filter, fromEvent, Observable } from "rxjs"; import type Wrapper from "../structures/wrapper"; -import { isNotFromBot } from "../utilities/messageHelpers"; +import { isNotFromDM, isNotFromBot, hasPrefix } from "../utilities/messageHelpers"; export const onMessageCreate = ( wrapper : Wrapper) => { - const { client } = wrapper; + const { client, defaultPrefix } = wrapper; (fromEvent( client, 'messageCreate') as Observable) .pipe ( filter( isNotFromBot ), - - ).subscribe() + filter( isNotFromDM ), + filter(m => hasPrefix(m, defaultPrefix)), + + ).subscribe(console.log) } diff --git a/src/handler/sern.ts b/src/handler/sern.ts index 5d2f98f..0f67210 100644 --- a/src/handler/sern.ts +++ b/src/handler/sern.ts @@ -14,7 +14,6 @@ import type { import { Ok, None, Some } from 'ts-results'; import { isNotFromBot, hasPrefix, fmt } from './utilities/messageHelpers'; import Logger, { sEvent } from './logger'; -import { AllTrue } from './utilities/higherOrders'; import type Module from './structures/module'; import Context from './structures/context'; import type Wrapper from './structures/wrapper'; @@ -51,8 +50,6 @@ export class Handler { .on('messageCreate', async (message: Message) => { - const isExecutable = AllTrue(isNotFromBot, hasPrefix); - if (!isExecutable(message, this.prefix)) return; if (message.channel.type === 'DM') return; // TODO: Handle dms const module = this.findModuleFrom(message); if (module === undefined) { diff --git a/src/handler/utilities/events/readEvent.ts b/src/handler/utilities/events/readEvent.ts deleted file mode 100644 index 10e1d11..0000000 --- a/src/handler/utilities/events/readEvent.ts +++ /dev/null @@ -1,4 +0,0 @@ -export function registerModules () { - - -} diff --git a/src/handler/utilities/higherOrders.ts b/src/handler/utilities/higherOrders.ts deleted file mode 100644 index 8f49e15..0000000 --- a/src/handler/utilities/higherOrders.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { Message } from 'discord.js'; - -type MsgFnArgs = [msgOrInter: Message, prefix?: string]; -type MsgFn = (...args: MsgFnArgs) => boolean; - -/** - * - * @param {MsgFn} fn any function that has argument `MsgFnArgs` returning boolean - * @returns {(message: Message, prefix: string) => boolean} - */ -export function AllTrue(...fns: MsgFn[]): - (message: Message, prefix: string) => boolean { - return (message: Message, prefix: string) => { - return fns.every(g => g(message, prefix)); - }; -} \ No newline at end of file diff --git a/src/handler/utilities/messageHelpers.ts b/src/handler/utilities/messageHelpers.ts index db1545c..d22e0ad 100644 --- a/src/handler/utilities/messageHelpers.ts +++ b/src/handler/utilities/messageHelpers.ts @@ -1,5 +1,16 @@ import type { Message } from 'discord.js'; +/** + * @param message The message object + * @returns `true` if message comes from DM, `false` otherwise + * @example isNotFromDM(message) ? 'Not From DM' : 'from DM' + * + */ + +export function isNotFromDM ( message: Message ) { + return message.channel.type !== 'DM'; +} + /** * Checks if the author of message is a bot or not * @param message The message to check diff --git a/src/handler/utilities/readyEvent.ts b/src/handler/utilities/readyEvent.ts deleted file mode 100644 index e69de29..0000000