Archived
ObjectParameter
This commit is contained in:
1 parent
a8fd1c2ce7
commit
6144f3e577
3 files changed
+45
-1
No files matched your search
@@ -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() || "");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user