diff options
| author | Harry Jenkins <[email protected]> | 2024-08-28 16:44:18 +1000 |
|---|---|---|
| committer | Harry Jenkins <[email protected]> | 2024-08-28 16:44:18 +1000 |
| commit | dede552ddd66e528b96395e05c6baa10d94aed51 (patch) | |
| tree | ba7690171b949197233d4615af0c4915efbde74d /src/commands/queue.ts | |
| parent | 1e17b94321744ffbe4a6176a900286a834c952d1 (diff) | |
| parent | a87078c2ada84adabc8d9bb5b527feec6490e513 (diff) | |
| download | muse-dede552ddd66e528b96395e05c6baa10d94aed51.tar.xz muse-dede552ddd66e528b96395e05c6baa10d94aed51.zip | |
Merge branch 'TiagoGrosso-configurable-queue-page-size'
Diffstat (limited to 'src/commands/queue.ts')
| -rw-r--r-- | src/commands/queue.ts | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/commands/queue.ts b/src/commands/queue.ts index 5196ca9..fd36e43 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 { @@ -14,6 +15,12 @@ export default class implements Command { .addIntegerOption(option => option .setName('page') .setDescription('page of queue to show [default: 1]') + .setRequired(false)) + .addIntegerOption(option => option + .setName('page-size') + .setDescription('how many items to display per page [default: 10, max: 30]') + .setMinValue(1) + .setMaxValue(30) .setRequired(false)); private readonly playerManager: PlayerManager; @@ -23,9 +30,17 @@ 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); + const embed = buildQueueEmbed( + player, + interaction.options.getInteger('page') ?? 1, + pageSize, + ); await interaction.reply({embeds: [embed]}); } |
