From 722f355d9bf0d947c75c4915c8aeeb59eea20164 Mon Sep 17 00:00:00 2001 From: GRZ4NA Date: Tue, 7 Sep 2021 20:49:35 +0200 Subject: [PATCH] created TargetID --- src/managers/MessageCommandManager.ts | 4 ++-- src/structures/Parameter.ts | 16 ++++++++++++---- src/types/Parameter.ts | 4 ++-- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/managers/MessageCommandManager.ts b/src/managers/MessageCommandManager.ts index 5a2607c..cfee6ab 100644 --- a/src/managers/MessageCommandManager.ts +++ b/src/managers/MessageCommandManager.ts @@ -3,7 +3,7 @@ import { CommandInteractionData } from "../types/commands.js"; import { MessageCommand } from "../structures/MessageCommand.js"; import { CommandManager } from "./CommandManager.js"; import { CommandNotFound } from "../errors.js"; -import { Parameter, TargetParameter } from "../structures/Parameter.js"; +import { Parameter, TargetID, TargetParameter } from "../structures/Parameter.js"; export class MessageCommandManager extends CommandManager { protected readonly _list: MessageCommand[] = []; @@ -31,7 +31,7 @@ export class MessageCommandManager extends CommandManager { optional: false, type: "target", }); - const inputParameter = new TargetParameter(parameter, i.targetId); + const inputParameter = new TargetParameter(parameter, new TargetID(i.targetId)); return { command: command, parameters: [inputParameter], diff --git a/src/structures/Parameter.ts b/src/structures/Parameter.ts index db9ea5b..f412218 100644 --- a/src/structures/Parameter.ts +++ b/src/structures/Parameter.ts @@ -1,4 +1,4 @@ -import { CategoryChannel, Guild, GuildMember, NewsChannel, Role, StageChannel, StoreChannel, TextChannel, VoiceChannel } from "discord.js"; +import { CategoryChannel, Guild, GuildMember, Message, NewsChannel, Role, StageChannel, StoreChannel, TextChannel, VoiceChannel } from "discord.js"; import { ParameterType, ParameterResolvable, ParameterSchema } from "../types/Parameter.js"; /** @@ -164,15 +164,23 @@ export class NullParameter extends InputParameter { } export class TargetParameter extends InputParameter { - constructor(parameter: Parameter, targetId: string) { + constructor(parameter: Parameter, targetId: TargetID) { super(parameter, targetId); } +} + +export class TargetID { + public readonly id: string; + + constructor(id: string) { + this.id = id; + } toMessage(c: TextChannel) { - return c.messages.cache.get(this.value?.toString() || ""); + return c.messages.cache.get(this.id.toString() || ""); } async toUser(g: Guild) { - return await g.members.fetch({ query: this.value?.toString() }); + return await g.members.fetch({ query: this.id.toString() }); } } diff --git a/src/types/Parameter.ts b/src/types/Parameter.ts index ee73c49..c6800b4 100644 --- a/src/types/Parameter.ts +++ b/src/types/Parameter.ts @@ -1,8 +1,8 @@ -import { ObjectID } from "../structures/Parameter.js"; +import { ObjectID, TargetID } from "../structures/Parameter.js"; export type ParameterType = "string" | "boolean" | "number" | "user" | "role" | "channel" | "mentionable" | "target"; -export type ParameterResolvable = string | boolean | number | ObjectID | null; +export type ParameterResolvable = string | boolean | number | ObjectID | TargetID | null; /** * @interface