diff options
| author | Tiago Grosso <[email protected]> | 2024-08-24 23:08:05 +0100 |
|---|---|---|
| committer | Tiago Grosso <[email protected]> | 2024-08-24 23:08:05 +0100 |
| commit | 0912d957918cb93b0d0607d305fd9d92c1f1cce5 (patch) | |
| tree | affe846dc67ce517e6657dfceee936a2371c028e /src/commands/queue.ts | |
| parent | c46153f62086a06fe6aedf240bfec9f264295565 (diff) | |
| download | muse-0912d957918cb93b0d0607d305fd9d92c1f1cce5.tar.xz muse-0912d957918cb93b0d0607d305fd9d92c1f1cce5.zip | |
feat: add setting for default queue page size
Diffstat (limited to 'src/commands/queue.ts')
| -rw-r--r-- | src/commands/queue.ts | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/commands/queue.ts b/src/commands/queue.ts index d627c7f..60472b0 100644 --- a/src/commands/queue.ts +++ b/src/commands/queue.ts @@ -5,6 +5,7 @@ import {TYPES} from '../types.js'; import PlayerManager from '../managers/player.js'; import Command from './index.js'; import {buildQueueEmbed} from '../utils/build-embed.js'; +import {getGuildSettings} from '../utils/get-guild-settings.js'; @injectable() export default class implements Command { @@ -17,7 +18,9 @@ export default class implements Command { .setRequired(false)) .addIntegerOption(option => option .setName('page-size') - .setDescription('how many items to display per page [default: 10]') + .setDescription('how many items to display per page [default: 10, max: 50]') + .setMinValue(1) + .setMaxValue(50) .setRequired(false)); private readonly playerManager: PlayerManager; @@ -27,12 +30,16 @@ export default class implements Command { } public async execute(interaction: ChatInputCommandInteraction) { - const player = this.playerManager.get(interaction.guild!.id); + const guildId = interaction.guild!.id; + const player = this.playerManager.get(guildId); + + const pageSizeFromOptions = interaction.options.getInteger('page-size'); + const pageSize = pageSizeFromOptions ?? (await getGuildSettings(guildId)).defaultQueuePageSize; const embed = buildQueueEmbed( player, interaction.options.getInteger('page') ?? 1, - interaction.options.getInteger('page-size') ?? 10, + pageSize, ); await interaction.reply({embeds: [embed]}); |
