Archived
CommandBot 3.0.0-rc1 - choice and boolean processing from messages
This commit is contained in:
1 parent
7fc5ae2396
commit
0a9cdb7bde
3 files changed
+32
-2
No files matched your search
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "commandbot",
|
||||
"version": "3.0.0-s-beta1e",
|
||||
"version": "3.0.0-rc1",
|
||||
"description": "A framework that helps you create your own Discord bot easier.",
|
||||
"main": "dist/cjs/index.js",
|
||||
"module": "dist/mjs/index.js",
|
||||
|
||||
@@ -106,6 +106,8 @@ export class CommandManager {
|
||||
command.parameters.map((p, i) => {
|
||||
if (!p.optional && !paramsList[i]) {
|
||||
throw new MissingParameterError(p);
|
||||
} else if (p.optional && !paramsList[i]) {
|
||||
return;
|
||||
}
|
||||
switch (p.type) {
|
||||
case "mentionable":
|
||||
|
||||
+29
-1
@@ -64,6 +64,26 @@ export class StringParameter extends InputParameter {
|
||||
if (parameter.type != "string") {
|
||||
throw new Error(`Parameter type mismatch`);
|
||||
}
|
||||
if (parameter.choices) {
|
||||
const match = parameter.choices.filter(
|
||||
(c) =>
|
||||
c.name.toLowerCase() === value?.toString().toLowerCase() ||
|
||||
c.value.toLowerCase() === value?.toString().toLowerCase()
|
||||
);
|
||||
if (match.length === 0) {
|
||||
throw new Error(
|
||||
`Parameter "${
|
||||
parameter.name
|
||||
}" has incorrect value. Please enter one of the following values: ${parameter.choices
|
||||
.map((c) => [c.name, c.value])
|
||||
.flat(1)
|
||||
.join(", ")}`
|
||||
);
|
||||
} else {
|
||||
super(parameter, match[0].value);
|
||||
return;
|
||||
}
|
||||
}
|
||||
super(parameter, value?.toString());
|
||||
}
|
||||
}
|
||||
@@ -72,7 +92,15 @@ export class BooleanParameter extends InputParameter {
|
||||
if (parameter.type != "boolean") {
|
||||
throw new Error(`Parameter type mismatch`);
|
||||
}
|
||||
super(parameter, value ? true : false);
|
||||
if (value?.toString().toLowerCase() === "true") {
|
||||
super(parameter, true);
|
||||
} else if (value?.toString().toLowerCase() === "false") {
|
||||
super(parameter, false);
|
||||
} else {
|
||||
throw new Error(
|
||||
`Cannot convert "${parameter.name}" parameter to boolean. Please enter either "true" or "false".`
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
export class NumberParameter extends InputParameter {
|
||||
|
||||
Reference in new issue
Block a user