diff --git a/src/models/slashClient.ts b/src/models/slashClient.ts index c652d58..e029e49 100644 --- a/src/models/slashClient.ts +++ b/src/models/slashClient.ts @@ -418,10 +418,22 @@ export class SlashClient { return this } + loadModule(module: SlashModule): SlashClient { + this.modules.push(module) + return this + } + getHandlers(): SlashCommandHandler[] { let res = this.handlers for (const mod of this.modules) { - res = [...res, ...mod.commands] + if (mod === undefined) continue + res = [ + ...res, + ...mod.commands.map((cmd) => { + cmd.handler = cmd.handler.bind(mod) + return cmd + }) + ] } return res } diff --git a/src/test/music.ts b/src/test/music.ts index bf654af..ba2ee26 100644 --- a/src/test/music.ts +++ b/src/test/music.ts @@ -218,9 +218,9 @@ class VCExtension extends Extension { const client = new MyClient() client.on('raw', (e, d) => { - if (e === 'READY') console.log(d) + if (e === 'GUILD_MEMBER_ADD' || e === 'GUILD_MEMBER_UPDATE') console.log(e, d) }) client.extensions.load(VCExtension) -client.connect(TOKEN, Intents.None) +client.connect(TOKEN, Intents.All)