mirror of
https://github.com/SrIzan10/handler.git
synced 2026-05-01 10:45:17 +00:00
50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
import type {
|
|
DiscordEvent,
|
|
} from '../types/handler';
|
|
|
|
import type {
|
|
Client,
|
|
} from 'discord.js';
|
|
|
|
import type Wrapper from './structures/wrapper';
|
|
import { fromEvent } from 'rxjs';
|
|
import { SernError } from './structures/errors';
|
|
import { onReady } from './events/readyEvent';
|
|
import { onMessageCreate } from './events/messageEvent';
|
|
import { onInteractionCreate } from './events/interactionCreate';
|
|
import type { Module } from '..';
|
|
import { Modified, Modifiers } from './structures/modifiers';
|
|
|
|
export function init( wrapper : Wrapper ) {
|
|
const { events, client } = wrapper;
|
|
if (events !== undefined) eventObserver(client, events);
|
|
onReady( wrapper );
|
|
onMessageCreate( wrapper );
|
|
onInteractionCreate ( wrapper );
|
|
}
|
|
|
|
//TODO : Add event listener for any other generic node js event emitter
|
|
function eventObserver(client: Client, events: DiscordEvent[] ) {
|
|
events.forEach( ( [event, cb] ) => {
|
|
if (event === 'ready') throw Error(SernError.RESERVED_EVENT);
|
|
fromEvent(client, event, cb).subscribe();
|
|
});
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @enum { number };
|
|
*/
|
|
export enum CommandType {
|
|
Text = 0b0000001,
|
|
Slash = 0b0000010,
|
|
MenuUser = 0b0000100,
|
|
MenuMsg = 0b0001000,
|
|
Button = 0b0010000,
|
|
MenuSelect = 0b0100000,
|
|
Both = 0b0000011,
|
|
Auto = 0b1000000
|
|
}
|
|
|