aboutsummaryrefslogtreecommitdiff
path: root/src/commands/queue.ts
diff options
context:
space:
mode:
authorTiago Grosso <[email protected]>2024-08-24 23:08:05 +0100
committerTiago Grosso <[email protected]>2024-08-24 23:08:05 +0100
commit0912d957918cb93b0d0607d305fd9d92c1f1cce5 (patch)
treeaffe846dc67ce517e6657dfceee936a2371c028e /src/commands/queue.ts
parentc46153f62086a06fe6aedf240bfec9f264295565 (diff)
downloadmuse-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.ts13
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]});