ObjectParameter

This commit is contained in:
mmacierzanka committed 2021-08-08 13:51:44 +02:00
1 parent a8fd1c2ce7
commit 6144f3e577
3 files changed
+45 -1

No files matched your search

+25
View File
@@ -1,3 +1,4 @@
import { Guild } from "discord.js";
import { ParameterType, ParameterResolvable, Choice } from "./types.js";
export interface ParameterSchema {
name: string;
@@ -72,3 +73,27 @@ export class NumberParameter extends InputParameter {
super(parameter, parseFloat(value ? value.toString() : ""));
}
}
export class ObjectParameter extends InputParameter {
constructor(parameter: Parameter, value: ParameterResolvable) {
if (
parameter.type != "channel" &&
parameter.type != "mentionable" &&
parameter.type != "user" &&
parameter.type != "role"
) {
throw new Error(`Parameter type mismatch`);
}
super(parameter, value);
}
async toObject(guild: Guild, type: "channel" | "user" | "role") {
switch (type) {
case "channel":
return await guild.channels.fetch(this.value?.toString() || "");
case "role":
return await guild.roles.fetch(this.value?.toString() || "");
case "user":
return await guild.members.fetch(this.value?.toString() || "");
}
}
}