added move command (#585)

Co-authored-by: Max Isom <codetheweb@users.noreply.github.com>
This commit is contained in:
Rithwik Rayani 2022-03-19 20:33:08 +05:30 committed by GitHub
parent 60376d4f57
commit 46df0875d5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 60 additions and 0 deletions

47
src/commands/move.ts Normal file
View file

@ -0,0 +1,47 @@
import {CommandInteraction} from 'discord.js';
import {inject, injectable} from 'inversify';
import {TYPES} from '../types.js';
import PlayerManager from '../managers/player.js';
import Command from '.';
import {SlashCommandBuilder} from '@discordjs/builders';
@injectable()
export default class implements Command {
public readonly slashCommand = new SlashCommandBuilder()
.setName('move')
.setDescription('move songs within the queue')
.addIntegerOption(option =>
option.setName('from')
.setDescription('position of the song to move')
.setRequired(true),
)
.addIntegerOption(option =>
option.setName('to')
.setDescription('position to move the song to')
.setRequired(true));
private readonly playerManager: PlayerManager;
constructor(@inject(TYPES.Managers.Player) playerManager: PlayerManager) {
this.playerManager = playerManager;
}
public async execute(interaction: CommandInteraction): Promise<void> {
const player = this.playerManager.get(interaction.guild!.id);
const from = interaction.options.getInteger('from') ?? 1;
const to = interaction.options.getInteger('to') ?? 1;
if (from < 1) {
throw new Error('position must be at least 1');
}
if (to < 1) {
throw new Error('position must be at least 1')
}
player.move(from, to);
await interaction.reply('moved');
}
}