diff --git a/src/client/oninteractioncreate.ts b/src/client/oninteractioncreate.ts index 2d5fe99..d72d9b3 100644 --- a/src/client/oninteractioncreate.ts +++ b/src/client/oninteractioncreate.ts @@ -81,7 +81,7 @@ export async function onInteractionCreate( // idc, is a YOU problem if (!command?.run) return self.logger.warn(`${command.name ?? 'Unknown'} command does not have 'run' callback`); - const context = new MenuCommandContext(self, interaction, shardId); + const context = new MenuCommandContext(self, interaction, shardId, command); const extendContext = self.options?.context?.(interaction) ?? {}; Object.assign(context, extendContext); try { @@ -145,7 +145,7 @@ export async function onInteractionCreate( const command = optionsResolver.getCommand(); if (!command?.run) return self.logger.warn(`${optionsResolver.fullCommandName} command does not have 'run' callback`); - const context = new CommandContext(self, interaction, optionsResolver, shardId); + const context = new CommandContext(self, interaction, optionsResolver, shardId, command); const extendContext = self.options?.context?.(interaction) ?? {}; Object.assign(context, extendContext); try { diff --git a/src/client/onmessagecreate.ts b/src/client/onmessagecreate.ts index 9612938..fc335a3 100644 --- a/src/client/onmessagecreate.ts +++ b/src/client/onmessagecreate.ts @@ -96,7 +96,7 @@ export async function onMessageCreate( const args = (self.options?.commands?.argsParser ?? defaultArgsParser)(content, command); const { options, errors } = await parseOptions(self, command, rawMessage, args, resolved); const optionsResolver = new OptionResolver(self, options, parent as Command, message.guildId, resolved); - const context = new CommandContext(self, message, optionsResolver, shardId); + const context = new CommandContext(self, message, optionsResolver, shardId, command); try { if (command.botPermissions && message.guildId) { const meMember = await self.cache.members?.get(self.botId, message.guildId); diff --git a/src/commands/applications/chatcontext.ts b/src/commands/applications/chatcontext.ts index ddf4e70..d8970f4 100644 --- a/src/commands/applications/chatcontext.ts +++ b/src/commands/applications/chatcontext.ts @@ -20,7 +20,7 @@ import { } from '../../structures'; import type { RegisteredMiddlewares } from '../decorators'; import type { OptionResolver } from '../optionresolver'; -import type { ContextOptions, OptionsRecord } from './chat'; +import type { Command, ContextOptions, OptionsRecord, SubCommand } from './chat'; import type { CommandMetadata, ExtendContext, GlobalMetadata, UsingClient } from './shared'; export interface CommandContext @@ -33,9 +33,10 @@ export class CommandContext; constructor( readonly client: UsingClient, - data: ChatInputCommandInteraction | Message, - public resolver: OptionResolver, + readonly data: ChatInputCommandInteraction | Message, + readonly resolver: OptionResolver, readonly shardId: number, + readonly command: Command | SubCommand, ) { if (data instanceof Message) { this.message = data as never; diff --git a/src/commands/applications/menucontext.ts b/src/commands/applications/menucontext.ts index ccef951..1c46077 100644 --- a/src/commands/applications/menucontext.ts +++ b/src/commands/applications/menucontext.ts @@ -1,4 +1,4 @@ -import { CommandContext, type ReturnCache, type WebhookMessage } from '../..'; +import { CommandContext, type ContextMenuCommand, type ReturnCache, type WebhookMessage } from '../..'; import { ApplicationCommandType, MessageFlags, @@ -35,6 +35,7 @@ export class MenuCommandContext< readonly client: UsingClient, readonly interaction: T, readonly shardId: number, + readonly command: ContextMenuCommand, ) {} metadata: CommandMetadata> = {} as never;