first commit
This commit is contained in:
60
commands/music/skip.js
Normal file
60
commands/music/skip.js
Normal file
@ -0,0 +1,60 @@
|
||||
const { Client, Interaction, SlashCommandBuilder } = require('discord.js')
|
||||
|
||||
const { playFromQueue, queue } = require('../../playback');
|
||||
const { getVoiceConnection } = require('@discordjs/voice')
|
||||
|
||||
async function skipSong(voiceChannel, textChannel) {
|
||||
const connection = getVoiceConnection(voiceChannel.guild.id)
|
||||
|
||||
if (!connection) {
|
||||
console.log('No active voice connections')
|
||||
textChannel.send('No active voice connections')
|
||||
return
|
||||
}
|
||||
|
||||
if (!queue || queue.length === 0) {
|
||||
console.log('Queue is empty. No songs to skip')
|
||||
connection.state.subscription.player.stop();
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
queue.shift()
|
||||
|
||||
if (queue.length > 0 ) {
|
||||
const nextSong = queue[0];
|
||||
await playFromQueue(voiceChannel, textChannel, nextSong.getMember, nextSong.link, nextSong.songName)
|
||||
} else {
|
||||
textChannel.send('No more songs in the queue')
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error skipping song: ', error)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
data: new SlashCommandBuilder()
|
||||
.setName('skip')
|
||||
.setDescription('Skips a song in the queue'),
|
||||
async execute(interaction) {
|
||||
const voiceChannel = interaction.member.voice.channel
|
||||
const textChannel = interaction.channel
|
||||
if (!voiceChannel) {
|
||||
return interaction.reply({
|
||||
content: 'You need to be in a voice channel to use the command',
|
||||
ephemeral: true
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
await skipSong(voiceChannel, textChannel)
|
||||
interaction.reply('Skipped the current song')
|
||||
} catch (error) {
|
||||
console.error('Error in skip command: ', error)
|
||||
interaction.reply({
|
||||
content: 'An error has occurred while processing the command',
|
||||
ephemeral: true
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user