aboutsummaryrefslogtreecommitdiff
path: root/src/commands/config
diff options
context:
space:
mode:
Diffstat (limited to 'src/commands/config')
-rw-r--r--src/commands/config/config.ts26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/commands/config/config.ts b/src/commands/config/config.ts
index 2a17883..df650fe 100644
--- a/src/commands/config/config.ts
+++ b/src/commands/config/config.ts
@@ -170,11 +170,11 @@ export default class SettingsCommand extends BushCommand {
public override async exec(
message: BushMessage | BushSlashMessage,
args: {
- [x in GuildSettings | ('view' | 'set' | 'add' | 'remove') | ('setting' | 'action') | 'value']:
- | string
- | undefined
- | Channel
- | Role;
+ setting?: GuildSettings;
+ subcommandGroup?: GuildSettings;
+ action?: 'view' | 'add' | 'remove' | 'set';
+ subcommand?: 'view' | 'add' | 'remove' | 'set';
+ value: string | Channel | Role;
}
): Promise<unknown> {
if (!message.guild) return await message.util.reply(`${util.emojis.error} This command can only be used in servers.`);
@@ -182,14 +182,14 @@ export default class SettingsCommand extends BushCommand {
return await message.util.reply(
`${util.emojis.error} You must have the **MANAGE_GUILD** permissions to run this command.`
);
- const setting = _.camelCase(args[settingsArr.find((s) => args[s]) ?? 'setting'] as string | undefined) as
- | GuildSettings
- | undefined;
- const action = (args[
- (['view', 'set', 'add', 'remove'] as ('view' | 'set' | 'add' | 'remove')[]).find((a) => args[a]) ?? 'action'
- ] ?? 'view') as 'view' | 'set' | 'add' | 'remove';
+ const setting = message.util.isSlash ? (_.camelCase(args.subcommandGroup)! as GuildSettings) : args.setting!;
+ const action = message.util.isSlash ? args.subcommand! : args.action!;
const value = args.value;
+ client.console.debug(setting);
+ client.console.debug(action);
+ client.console.debug(value);
+
let msg;
if (!setting || action === 'view') {
@@ -219,13 +219,13 @@ export default class SettingsCommand extends BushCommand {
const existing = (await message.guild.getSetting(setting)) as string[];
const updated = util.addOrRemoveFromArray('add', existing, parseVal(value));
await message.guild.setSetting(setting, updated);
- const messageOptions = await this.generateMessageOptions(message);
+ const messageOptions = await this.generateMessageOptions(message, setting);
msg = (await message.util.reply(messageOptions)) as Message;
break;
}
case 'set': {
await message.guild.setSetting(setting, parseVal(value));
- const messageOptions = await this.generateMessageOptions(message);
+ const messageOptions = await this.generateMessageOptions(message, setting);
msg = (await message.util.reply(messageOptions)) as Message;
break;
}