cool stuff

This commit is contained in:
Erik 2022-02-11 17:56:02 +02:00
parent 86fee37e62
commit f629937b5a
No known key found for this signature in database
GPG Key ID: FEFF4B220DDF5589

View File

@ -117,7 +117,8 @@ class CommandHandler extends Observer {
const newOption = new CommandOption({ const newOption = new CommandOption({
name: matched.name, type: matched.type, name: matched.name, type: matched.type,
minimum: matched.minimum, maximum: matched.maximum, minimum: matched.minimum, maximum: matched.maximum,
_rawValue: option.value, dependsOn: matched.dependsOn _rawValue: option.value,
dependsOn: matched.dependsOn, dependsOnMode: matched.dependsOnMode
}); });
const parsed = await this._parseOption(interaction, newOption); const parsed = await this._parseOption(interaction, newOption);
@ -135,9 +136,14 @@ class CommandHandler extends Observer {
// Ensure option dependencies // Ensure option dependencies
for (const opt of Object.values(options)) { for (const opt of Object.values(options)) {
for (const dep of opt.dependsOn) if (!options[dep]) { let hasDep = false;
return { option: opt, error: true, dependency: dep }; for (const dep of opt.dependsOn) {
// AND logic
if (!options[dep] && opt.dependsOnMode === 'AND') return { option: opt, error: true, dependency: dep };
// OR logic
if (options[dep]) hasDep = true;
} }
if(!hasDep && opt.dependsOnMode === 'OR') return { option: opt, error: true, dependency: opt.dependsOn.join('** OR **') };
} }
if(error) return error; if(error) return error;