permanent-waves/commands/pause.ts
2024-07-20 14:41:35 -05:00

41 lines
1.2 KiB
TypeScript

import { Interaction } from 'discord.js';
import { subscriptions } from "../index.js";
import { MusicSubscription } from '../subscription';
import { ensureVoiceConnection, formatCallbackData, waitingForResponse } from "../utils";
const alreadyPausedResponse = formatCallbackData(`The player is already paused.`);
const emptyQueueResponse = formatCallbackData(`There's nothing in the queue right now.`);
const nowPausedResponse = formatCallbackData(`The player has been paused.`);
export const pauseCommand = {
name: "pause",
description: "Pauses the player"
};
export const stopCommand = {
name: "stop",
description: "Pauses the player, alias for /pause"
};
export async function pause(interaction: Interaction) {
if (!interaction.guildId) return;
const subscription = subscriptions.get(interaction.guildId);
await ensureVoiceConnection(interaction);
await interaction.reply(waitingForResponse);
if(subscription.playing) {
if(player.nowPlaying) {
await subscription.audioPlayer.pause();
subscription.playing = false;
await interaction.editReply(nowPausedResponse);
} else {
await interaction.editReply(emptyQueueResponse);
}
} else {
await interaction.editReply(alreadyPausedResponse);
}
}