diff --git a/src/handler/events/interactionCreate.ts b/src/handler/events/interactionCreate.ts new file mode 100644 index 0000000..5bb2297 --- /dev/null +++ b/src/handler/events/interactionCreate.ts @@ -0,0 +1,27 @@ +import type { CommandInteraction, Interaction } from "discord.js"; +import { map, filter, fromEvent, Observable, of, concatMap } from "rxjs"; +import { None, Some } from "ts-results"; +import Context from "../structures/context"; +import type Wrapper from "../structures/wrapper"; +import { isNotFromDM, isNotFromBot, hasPrefix, fmt } from "../utilities/messageHelpers"; +import * as Files from '../utilities/readFile'; + +export const onInteractionCreate = ( wrapper : Wrapper ) => { + const { client } = wrapper; + (fromEvent(client, 'interactionCreate') as Observable) + .pipe( + + + + + + + ) + + + + + + + +} diff --git a/src/handler/events/messageEvent.ts b/src/handler/events/messageEvent.ts index 4de0b9a..bf46e80 100644 --- a/src/handler/events/messageEvent.ts +++ b/src/handler/events/messageEvent.ts @@ -1,6 +1,7 @@ import type { Message } from "discord.js"; -import { map, filter, fromEvent, Observable, of, concatMap, tap } from "rxjs"; +import { map, filter, fromEvent, Observable, of, concatMap } from "rxjs"; import { None, Some } from "ts-results"; +import { CommandType } from "../sern"; import Context from "../structures/context"; import type Wrapper from "../structures/wrapper"; import { isNotFromDM, isNotFromBot, hasPrefix, fmt } from "../utilities/messageHelpers"; @@ -18,7 +19,7 @@ export const onMessageCreate = (wrapper : Wrapper) => { map(([prefix, ...args ]) =>{ return [Files.Commands.get(prefix) ?? Files.Alias.get(prefix), new Context(Some(m), None), args ] as const; }), - filter( ([mod]) => mod !== undefined), + filter( ([mod]) => mod !== undefined && (mod.type & CommandType.TEXT) != 0 ), map ( async ([ mod, ctx, args ]) => { const parsedArgs = mod!.parse?.(ctx, args); const res = await mod!.execute(ctx, parsedArgs); diff --git a/src/handler/events/readyEvent.ts b/src/handler/events/readyEvent.ts index be0d36c..2369444 100644 --- a/src/handler/events/readyEvent.ts +++ b/src/handler/events/readyEvent.ts @@ -40,7 +40,7 @@ const handler = ( name : string ) => Files.Commands.set ( name, mod); mod.alias.forEach (a => Files.Alias.set(a, mod)); } - }) as ModuleHandlers; + } as ModuleHandlers); const registerModules = (name : string, mod : ModuleStates[T]) => (handler(name)[mod.type] as HandlerCallback)(mod); diff --git a/src/handler/sern.ts b/src/handler/sern.ts index 7434c9a..916d342 100644 --- a/src/handler/sern.ts +++ b/src/handler/sern.ts @@ -112,7 +112,6 @@ export class Handler { /** * @enum { number }; */ - export enum CommandType { TEXT = 0b0001, SLASH = 0b0010,