dellosmusic
Version:
Dellos Music Bot - Discord Music Bot
117 lines (111 loc) • 3.86 kB
JavaScript
const { MessageEmbed } = require("discord.js");
const { TrackUtils } = require("erela.js");
module.exports = {
name: "remove",
description: `Remove a song from the queue`,
usage: "[number]",
permissions: {
channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"],
member: [],
},
aliases: ["rm"],
/**
*
* @param {import("../structures/DiscordMusicBot")} client
* @param {import("discord.js").Message} message
* @param {string[]} args
* @param {*} param3
*/
run: async (client, message, args, { GuildDB }) => {
let player = await client.Manager.players.get(message.guild.id);
const song = player.queue.slice(args[0] - 1, 1);
if (!player)
return client.sendTime(
message.channel,
"❌ | **Nothing is playing right now...**"
);
if (!message.member.voice.channel)
return client.sendTime(
message.channel,
"❌ | **You must be in a voice channel to use this command!**"
);
if (
message.guild.me.voice.channel &&
message.member.voice.channel.id !== message.guild.me.voice.channel.id
)
return client.sendTime(
message.channel,
"❌ | **You must be in the same voice channel as me to use this command!**"
);
if (!player.queue || !player.queue.length || player.queue.length === 0)
return message.channel.send("There is nothing in the queue to remove");
let rm = new MessageEmbed()
.setDescription(
`✅ **|** Removed track **\`${Number(args[0])}\`** from the queue!`
)
.setColor("GREEN");
if (isNaN(args[0]))
rm.setDescription(
`**Usage - **${client.botconfig.prefix}\`remove [track]\``
);
if (args[0] > player.queue.length)
rm.setDescription(`The queue has only ${player.queue.length} songs!`);
await message.channel.send(rm);
player.queue.remove(Number(args[0]) - 1);
},
SlashCommand: {
options: [
{
name: "track",
value: "[track]",
type: 4,
required: true,
description: "Remove a song from the queue",
},
],
/**
*
* @param {import("../structures/DiscordMusicBot")} client
* @param {import("discord.js").Message} message
* @param {string[]} args
* @param {*} param3
*/
run: async (client, interaction, args, { GuildDB }) => {
let player = await client.Manager.get(interaction.guild_id);
const guild = client.guilds.cache.get(interaction.guild_id);
const member = guild.members.cache.get(interaction.member.user.id);
const song = player.queue.slice(args[0] - 1, 1);
if (!player)
return client.sendTime(
interaction,
"❌ | **Nothing is playing right now...**"
);
if (!member.voice.channel)
return client.sendTime(
interaction,
"❌ | **You must be in a voice channel to use this command.**"
);
if (
guild.me.voice.channel &&
!guild.me.voice.channel.equals(member.voice.channel)
)
return client.sendTime(
interaction,
"❌ | **You must be in the same voice channel as me to use this command!**"
);
if (!player.queue || !player.queue.length || player.queue.length === 0)
return client.sendTime("❌ | **Nothing is playing right now...**");
let rm = new MessageEmbed()
.setDescription(
`✅ | **Removed track** \`${Number(args[0])}\` from the queue!`
)
.setColor("GREEN");
if (isNaN(args[0]))
rm.setDescription(`**Usage:** \`${GuildDB.prefix}remove [track]\``);
if (args[0] > player.queue.length)
rm.setDescription(`The queue has only ${player.queue.length} songs!`);
await interaction.send(rm);
player.queue.remove(Number(args[0]) - 1);
},
},
};