From 781ef10e8ca7a425bd80f1970efacb683b1c3a3e Mon Sep 17 00:00:00 2001 From: Yuzu Date: Tue, 21 Jun 2022 20:31:41 -0500 Subject: [PATCH] fix: events --- session/Session.ts | 66 +++++++++++++++++++++++----------------------- tests/mod.ts | 2 +- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/session/Session.ts b/session/Session.ts index a4ac24d..a189c16 100644 --- a/session/Session.ts +++ b/session/Session.ts @@ -40,43 +40,13 @@ export class Session extends EventEmitter { options: SessionOptions; // TODO: improve this with CreateShardManager etc - rest?: ReturnType; - gateway?: ReturnType; + rest: ReturnType; + gateway: ReturnType; constructor(options: SessionOptions) { super(); this.options = options; - // TODO: set botId in Session.botId or something - } - /** TODO: move this */ - static #toSnakeCase(str: string) { - // probably not a fast implementation - return str.replace(/[A-Z]/g, (char) => "_" + char.toLowerCase()); - } - - override on(event: "ready", func: Events["ready"]): this; - override on(event: "messageCreate", func: Events["messageCreate"]): this; - override on(event: "raw", func: Events["raw"]): this; - override on(event: keyof Events, func: Events[keyof Events]): this { - return super.on(Session.#toSnakeCase(event), func); - } - - override off(event: "ready", func: Events["ready"]): this; - override off(event: "messageCreate", func: Events["messageCreate"]): this; - override off(event: "raw", func: Events["raw"]): this; - override off(event: keyof Events, func: Events[keyof Events]): this { - return super.off(Session.#toSnakeCase(event), func); - } - - override once(event: "ready", func: Events["ready"]): this; - override once(event: "messageCreate", func: Events["messageCreate"]): this; - override once(event: "raw", func: Events["raw"]): this; - override once(event: keyof Events, func: Events[keyof Events]): this { - return super.once(Session.#toSnakeCase(event), func); - } - - async start() { const defHandler: DiscordRawEventHandler = (shard, data) => { this.emit("raw", data, shard.id); @@ -102,8 +72,38 @@ export class Session extends EventEmitter { }, handleDiscordPayload: this.options.rawHandler ?? defHandler, }); + // TODO: set botId in Session.botId or something + } - const getGatewayBot = () => this.rest!.runMethod(this.rest!, "GET", Routes.GATEWAY_BOT()); + /** TODO: move this */ + static #toSnakeCase(str: string) { + // probably not a fast implementation + return str.replace(/[A-Z]/g, (char) => "_" + char.toLowerCase()); + } + + override on(event: "ready", func: Events["ready"]): this; + override on(event: "messageCreate", func: Events["messageCreate"]): this; + override on(event: "raw", func: Events["raw"]): this; + override on(event: keyof Events, func: Events[keyof Events]): this { + return super.on(Session.#toSnakeCase(event).toUpperCase(), func); + } + + override off(event: "ready", func: Events["ready"]): this; + override off(event: "messageCreate", func: Events["messageCreate"]): this; + override off(event: "raw", func: Events["raw"]): this; + override off(event: keyof Events, func: Events[keyof Events]): this { + return super.off(Session.#toSnakeCase(event).toUpperCase(), func); + } + + override once(event: "ready", func: Events["ready"]): this; + override once(event: "messageCreate", func: Events["messageCreate"]): this; + override once(event: "raw", func: Events["raw"]): this; + override once(event: keyof Events, func: Events[keyof Events]): this { + return super.once(Session.#toSnakeCase(event).toUpperCase(), func); + } + + async start() { + const getGatewayBot = () => this.rest.runMethod(this.rest, "GET", Routes.GATEWAY_BOT()); // check if is empty if (!Object.keys(this.options.gateway?.data ?? {}).length) { diff --git a/tests/mod.ts b/tests/mod.ts index bdfb4a9..236c75b 100644 --- a/tests/mod.ts +++ b/tests/mod.ts @@ -11,7 +11,7 @@ const session = new Discord.Session({ }); session.on("ready", (payload) => console.log(payload)); -session.on("message", (payload) => console.log(payload)); +session.on("messageCreate", (payload) => console.log(payload)); // session.on("raw", (data, shardId) => console.log(shardId, data)); console.log("hello");