| import { Message, EmbedBuilder } from 'discord.js'; | |
| import { MusicQueue } from '../utils/MusicQueue'; | |
| import { queues } from '../index'; | |
| import type { Command } from '../types'; | |
| export default <Command>{ | |
| data: { | |
| name: 'stop', | |
| description: 'Stop playing and clear the queue', | |
| toJSON() { | |
| return { name: 'stop', description: 'Stop playing and clear the queue' }; | |
| }, | |
| }, | |
| ownersOnly: false, | |
| async execute(message: Message) { | |
| const guildId = message.guild?.id; | |
| if (!guildId) return message.reply('❌ This command can only be used in a server.'); | |
| const queue = queues.get(guildId); | |
| if (!queue || !queue.playing) { | |
| return message.reply('❌ No music is currently playing!'); | |
| } | |
| queue.songs = []; | |
| queue.playing = false; | |
| queue.currentSong = null; | |
| queue.player.stop(); | |
| if (queue.connection) { | |
| queue.connection.destroy(); | |
| queue.connection = null; | |
| } | |
| const embed = new EmbedBuilder() | |
| .setColor('#ff0000') | |
| .setTitle('⏹️ Music Stopped') | |
| .setDescription('Stopped playing and cleared the queue.'); | |
| await message.reply({ embeds: [embed] }); | |
| }, | |
| }; |