aboutsummaryrefslogtreecommitdiff
path: root/src/commands/queue.ts
diff options
context:
space:
mode:
authorBobby <[email protected]>2024-11-06 09:42:25 -0500
committerGitHub <[email protected]>2024-11-06 09:42:25 -0500
commitd92fd2a29796c9c5d6ddeb9718bf6fcd6ee5958a (patch)
tree81961cc995661448794669617f1ed439cbe84a3d /src/commands/queue.ts
parentb605bf220859acd767533e0ab9436ced771bb8e2 (diff)
parent716d6d9f4f2cd1a6872e463e9877203a259478a3 (diff)
downloadmuse-d92fd2a29796c9c5d6ddeb9718bf6fcd6ee5958a.tar.xz
muse-d92fd2a29796c9c5d6ddeb9718bf6fcd6ee5958a.zip
Merge branch 'museofficial:master' into masterHEADmaster
Diffstat (limited to 'src/commands/queue.ts')
-rw-r--r--src/commands/queue.ts19
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]});
}