From de770e4b457138432e289a66d4e2ed22b1f52ede Mon Sep 17 00:00:00 2001 From: Essem Date: Tue, 17 Feb 2026 14:50:02 -0600 Subject: [PATCH] feat: Allow using string flag types for required media command params --- src/classes/mediaCommand.ts | 10 ++++++---- src/utils/handler.ts | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/classes/mediaCommand.ts b/src/classes/mediaCommand.ts index 8b3e71f4..a618ab9b 100644 --- a/src/classes/mediaCommand.ts +++ b/src/classes/mediaCommand.ts @@ -10,11 +10,12 @@ import { } from "oceanic.js"; import messages from "#config/messages.json" with { type: "json" }; import { runningCommands, selectedImages } from "#utils/collections.js"; +import { convFlagType } from "#utils/handler.js"; import { getAllLocalizations } from "#utils/i18n.js"; import { runMediaJob } from "#utils/media.js"; import mediaDetect, { type MediaMeta } from "#utils/mediadetect.js"; import { clean, isEmpty, random } from "#utils/misc.js"; -import type { MediaParams } from "#utils/types.js"; +import type { ExtendedConstructedCommandOptions, MediaParams } from "#utils/types.js"; import Command from "./command.ts"; class MediaCommand extends Command { @@ -135,8 +136,9 @@ class MediaCommand extends Command { const text = this.getOption( staticProps.requiredParam, - staticProps.requiredParamType, - staticProps.requiredParamType !== Constants.ApplicationCommandOptionTypes.STRING, + convFlagType(staticProps.requiredParamType), + staticProps.requiredParamType !== Constants.ApplicationCommandOptionTypes.STRING && + staticProps.requiredParamType !== "string", ) ?? this.args.join(" ").trim(); if (!text || (typeof text === "string" && isEmpty(text)) || !(await this.criteria(text, mediaParams.url))) { runningCommands.delete(this.author?.id); @@ -318,7 +320,7 @@ class MediaCommand extends Command { static requiresImage = true; static requiresParam = false; static requiredParam = "text"; - static requiredParamType = Constants.ApplicationCommandOptionTypes.STRING; + static requiredParamType: ExtendedConstructedCommandOptions["type"] = "string"; static textOptional = false; static requiresAnim = false; static alwaysGIF = false; diff --git a/src/utils/handler.ts b/src/utils/handler.ts index 1d328227..2d38ef80 100644 --- a/src/utils/handler.ts +++ b/src/utils/handler.ts @@ -198,7 +198,7 @@ export async function load( : fullCommandName; } -const flagMap: Array = [ +export const flagMap: Array = [ null, "subcommand", null, -- 2.51.2