diff --git a/src/structures/CommandInteractionOptionResolver.js b/src/structures/CommandInteractionOptionResolver.js index 348e091a6..02cf5874c 100644 --- a/src/structures/CommandInteractionOptionResolver.js +++ b/src/structures/CommandInteractionOptionResolver.js @@ -164,6 +164,17 @@ class CommandInteractionOptionResolver { return option?.value ?? null; } + /** + * Gets a number option. + * @param {string} name The name of the option. + * @param {boolean} [required=false] Whether to throw an error if the option is not found. + * @returns {?number} The value of the option, or null if not set and not required. + */ + getNumber(name, required = false) { + const option = this._getTypedOption(name, 'NUMBER', ['value'], required); + return option?.value ?? null; + } + /** * Gets a user option. * @param {string} name The name of the option. diff --git a/src/util/Constants.js b/src/util/Constants.js index 8d02fbc83..c4ef70393 100644 --- a/src/util/Constants.js +++ b/src/util/Constants.js @@ -861,6 +861,7 @@ exports.OverwriteTypes = createEnum(['role', 'member']); * * CHANNEL * * ROLE * * MENTIONABLE + * * NUMBER * @typedef {string} ApplicationCommandOptionType */ exports.ApplicationCommandOptionTypes = createEnum([ @@ -874,6 +875,7 @@ exports.ApplicationCommandOptionTypes = createEnum([ 'CHANNEL', 'ROLE', 'MENTIONABLE', + 'NUMBER', ]); /** diff --git a/typings/enums.d.ts b/typings/enums.d.ts index 56cef3edb..df1891db5 100644 --- a/typings/enums.d.ts +++ b/typings/enums.d.ts @@ -20,6 +20,7 @@ export enum ApplicationCommandOptionTypes { CHANNEL = 7, ROLE = 8, MENTIONABLE = 9, + NUMBER = 10, } export enum ApplicationCommandPermissionTypes { diff --git a/typings/index.d.ts b/typings/index.d.ts index 5b85087b1..05cdfec7c 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -460,6 +460,8 @@ export class CommandInteractionOptionResolver { public getString(name: string, required?: boolean): string | null; public getInteger(name: string, required: true): number; public getInteger(name: string, required?: boolean): number | null; + public getNumber(name: string, required: true): number; + public getNumber(name: string, required?: boolean): number | null; public getUser(name: string, required: true): NonNullable; public getUser(name: string, required?: boolean): NonNullable | null; public getMember(name: string, required: true): NonNullable;