diff options
| author | Johannes Vääräkangas <[email protected]> | 2022-02-12 04:05:02 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-02-11 20:05:02 -0600 |
| commit | 4dbb55a72119a61033d2df6e8cf46f5eaa7bba15 (patch) | |
| tree | c23bfee7a2c18a18ac8536a6b31e0e22eb1d9c6e /src/commands | |
| parent | 8e5b3cfa432abc4b3e2ef76a139da2586ccb1213 (diff) | |
| download | muse-4dbb55a72119a61033d2df6e8cf46f5eaa7bba15.tar.xz muse-4dbb55a72119a61033d2df6e8cf46f5eaa7bba15.zip | |
Configurable voice channel leave behavior (#514)
Co-authored-by: Max Isom <[email protected]>
Diffstat (limited to 'src/commands')
| -rw-r--r-- | src/commands/config.ts | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/commands/config.ts b/src/commands/config.ts index 65aa36b..b0a5215 100644 --- a/src/commands/config.ts +++ b/src/commands/config.ts @@ -25,6 +25,21 @@ export default class implements Command { .setDescription('allowed role') .setRequired(true))) .addSubcommand(subcommand => subcommand + .setName('set-wait-after-queue-empties') + .setDescription('set the time to wait before leaving the voice channel when queue empties') + .addIntegerOption(option => option + .setName('delay') + .setDescription('delay in seconds (set to 0 to never leave)') + .setRequired(true) + .setMinValue(0))) + .addSubcommand(subcommand => subcommand + .setName('set-leave-if-no-listeners') + .setDescription('set whether to leave when all other participants leave') + .addBooleanOption(option => option + .setName('value') + .setDescription('whether to leave when everyone else leaves') + .setRequired(true))) + .addSubcommand(subcommand => subcommand .setName('get') .setDescription('show all settings')); @@ -70,6 +85,40 @@ export default class implements Command { break; } + case 'set-wait-after-queue-empty': { + const delay = interaction.options.getInteger('delay')!; + + await prisma.setting.update({ + where: { + guildId: interaction.guild!.id, + }, + data: { + secondsToWaitAfterQueueEmpties: delay, + }, + }); + + await interaction.reply('👍 wait delay updated'); + + break; + } + + case 'set-leave-if-no-listeners': { + const value = interaction.options.getBoolean('value')!; + + await prisma.setting.update({ + where: { + guildId: interaction.guild!.id, + }, + data: { + leaveIfNoListeners: value, + }, + }); + + await interaction.reply('👍 leave setting updated'); + + break; + } + case 'get': { const embed = new MessageEmbed().setTitle('Config'); @@ -82,6 +131,10 @@ export default class implements Command { const settingsToShow = { 'Playlist Limit': config.playlistLimit, Role: config.roleId ? `<@&${config.roleId}>` : 'not set', + 'Wait before leaving after queue empty': config.secondsToWaitAfterQueueEmpties === 0 + ? 'never leave' + : `${config.secondsToWaitAfterQueueEmpties}s`, + 'Leave if there are no listeners': config.leaveIfNoListeners ? 'yes' : 'no', }; let description = ''; |
