Updated music commands
This commit is contained in:
@@ -3,6 +3,8 @@ import { Command } from "interfaces"
|
|||||||
import play from "./music/play"
|
import play from "./music/play"
|
||||||
import leave from "./music/leave"
|
import leave from "./music/leave"
|
||||||
import queue from "./music/queue"
|
import queue from "./music/queue"
|
||||||
|
import volume from "./music/volume"
|
||||||
|
import skip from "./music/skip"
|
||||||
|
|
||||||
export = {
|
export = {
|
||||||
name: "music",
|
name: "music",
|
||||||
@@ -24,6 +26,25 @@ export = {
|
|||||||
.setDescription("The song to play")
|
.setDescription("The song to play")
|
||||||
.setAutocomplete(true)
|
.setAutocomplete(true)
|
||||||
.setRequired(true)))
|
.setRequired(true)))
|
||||||
|
.addSubcommand(subcommand =>
|
||||||
|
subcommand
|
||||||
|
.setName("volume")
|
||||||
|
.setDescription("Change the volume of the music")
|
||||||
|
.addNumberOption(option =>
|
||||||
|
option
|
||||||
|
.setName("volume")
|
||||||
|
.setDescription("The volume to set")
|
||||||
|
.setMinValue(1)
|
||||||
|
.setMaxValue(100)
|
||||||
|
.setRequired(true)))
|
||||||
|
.addSubcommand(subcommand =>
|
||||||
|
subcommand
|
||||||
|
.setName("skip")
|
||||||
|
.setDescription("Skip the current song")
|
||||||
|
.addNumberOption(option =>
|
||||||
|
option
|
||||||
|
.setName("amount")
|
||||||
|
.setDescription("The amount of songs to skip")))
|
||||||
.addSubcommand(subcommand =>
|
.addSubcommand(subcommand =>
|
||||||
subcommand
|
subcommand
|
||||||
.setName("queue")
|
.setName("queue")
|
||||||
@@ -43,6 +64,16 @@ export = {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (subcommand === "volume") {
|
||||||
|
volume(interaction)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (subcommand === "skip") {
|
||||||
|
skip(interaction)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (subcommand === "queue") {
|
if (subcommand === "queue") {
|
||||||
queue(interaction)
|
queue(interaction)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ export default async function leave(interaction: ChatInputCommandInteraction) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
queue.delete()
|
queue.delete()
|
||||||
await interaction.reply({
|
await interaction.reply({
|
||||||
embeds: [{
|
embeds: [{
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export default async function play(interaction: ChatInputCommandInteraction) {
|
|||||||
const { track } = await player.play(channel, query, {
|
const { track } = await player.play(channel, query, {
|
||||||
requestedBy: interaction.user,
|
requestedBy: interaction.user,
|
||||||
nodeOptions: {
|
nodeOptions: {
|
||||||
volume: 50,
|
volume: 25,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import { ChatInputCommandInteraction } from "discord.js"
|
|||||||
export default async function queue(interaction: ChatInputCommandInteraction) {
|
export default async function queue(interaction: ChatInputCommandInteraction) {
|
||||||
await interaction.deferReply()
|
await interaction.deferReply()
|
||||||
const player = useMainPlayer()
|
const player = useMainPlayer()
|
||||||
|
|
||||||
const queue = player.queues.get(interaction.guildId!)
|
const queue = player.queues.get(interaction.guildId!)
|
||||||
|
|
||||||
if (!queue) {
|
if (!queue) {
|
||||||
@@ -14,9 +13,7 @@ export default async function queue(interaction: ChatInputCommandInteraction) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const currentSong = queue.currentTrack
|
const currentSong = queue.currentTrack
|
||||||
|
|
||||||
const nowPlaying = `Now playing: [${currentSong?.title}](${currentSong?.url})`
|
const nowPlaying = `Now playing: [${currentSong?.title}](${currentSong?.url})`
|
||||||
|
|
||||||
const tracks = queue.tracks.map((track, index) => {
|
const tracks = queue.tracks.map((track, index) => {
|
||||||
return `${index + 1}. [${track.title}](${track.url})`
|
return `${index + 1}. [${track.title}](${track.url})`
|
||||||
})
|
})
|
||||||
|
|||||||
34
src/commands/music/skip.ts
Normal file
34
src/commands/music/skip.ts
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
import { useMainPlayer } from "discord-player"
|
||||||
|
import { ChatInputCommandInteraction } from "discord.js"
|
||||||
|
|
||||||
|
export default async function skip(interaction: ChatInputCommandInteraction) {
|
||||||
|
await interaction.deferReply()
|
||||||
|
|
||||||
|
const amount = interaction.options.getNumber("amount") ?? 1
|
||||||
|
const player = useMainPlayer()
|
||||||
|
const queue = player.queues.get(interaction.guildId!)
|
||||||
|
|
||||||
|
if (!queue) {
|
||||||
|
await interaction.editReply({
|
||||||
|
content: "There is no queue"
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (amount > queue.size) {
|
||||||
|
await interaction.editReply({
|
||||||
|
content: `There are only ${queue.size} songs in the queue`
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (amount === 1) {
|
||||||
|
queue.node.skip()
|
||||||
|
} else {
|
||||||
|
queue.node.skipTo(amount)
|
||||||
|
}
|
||||||
|
|
||||||
|
await interaction.editReply({
|
||||||
|
content: `Skipped ${amount} song${amount === 1 ? "" : "s"}`
|
||||||
|
})
|
||||||
|
}
|
||||||
26
src/commands/music/volume.ts
Normal file
26
src/commands/music/volume.ts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import { embedColor } from "config/options"
|
||||||
|
import { useMainPlayer } from "discord-player"
|
||||||
|
import { ChatInputCommandInteraction } from "discord.js"
|
||||||
|
|
||||||
|
export default async function volume(interaction: ChatInputCommandInteraction) {
|
||||||
|
await interaction.deferReply()
|
||||||
|
|
||||||
|
const volume = interaction.options.getNumber("volume")!
|
||||||
|
const player = useMainPlayer()
|
||||||
|
const queue = player.queues.get(interaction.guildId!)
|
||||||
|
|
||||||
|
if (!queue) {
|
||||||
|
await interaction.editReply({
|
||||||
|
content: "There is no queue"
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
queue.node.setVolume(volume)
|
||||||
|
await interaction.editReply({
|
||||||
|
embeds: [{
|
||||||
|
description: `Volume set to ${volume}`,
|
||||||
|
color: embedColor
|
||||||
|
}]
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -23,7 +23,7 @@ export = {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const results = tracks.map(track => ({
|
const results = tracks.map(track => ({
|
||||||
name: track.title,
|
name: track.title.slice(0, 100),
|
||||||
value: track.url
|
value: track.url
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user