41 lines
1.2 KiB
TypeScript
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);
|
|
}
|
|
|
|
} |