Skip to content

Commit

Permalink
fix: supportsXCommands() methods now use SubcommandMappings (#398)
Browse files Browse the repository at this point in the history
  • Loading branch information
BenSegal855 committed Dec 10, 2022
1 parent e5c7d5e commit 3e7a45a
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions packages/subcommands/src/lib/Subcommand.ts
Expand Up @@ -116,6 +116,14 @@ export class Subcommand<PreParseReturn extends Args = Args, O extends Subcommand
}
}

public override supportsMessageCommands(): boolean {
return this.#supportsCommandType('messageRun');
}

public override supportsChatInputCommands(): this is ChatInputCommand {
return this.#supportsCommandType('chatInputRun');
}

public async messageRun(message: Message, args: PreParseReturn, context: MessageCommand.RunContext) {
args.save();
const subcommandOrGroup = args.nextMaybe();
Expand Down Expand Up @@ -345,6 +353,15 @@ export class Subcommand<PreParseReturn extends Args = Args, O extends Subcommand

return { mapping: foundDefault, defaultMatch: true } as const;
}

#supportsCommandType(commandType: 'messageRun' | 'chatInputRun'): boolean {
return this.parsedSubcommandMappings.some((mapping) => {
if (mapping.type === 'group') {
return mapping.entries.some((groupCommand) => Reflect.has(groupCommand, commandType));
}
return Reflect.has(mapping, commandType);
});
}
}

export interface SubcommandOptions extends Command.Options {
Expand Down

0 comments on commit 3e7a45a

Please sign in to comment.