diff --git a/src/commands/music.ts b/src/commands/music.ts index 90117aa..02d3565 100644 --- a/src/commands/music.ts +++ b/src/commands/music.ts @@ -5,6 +5,7 @@ import leave from "./music/leave" import queue from "./music/queue" import volume from "./music/volume" import skip from "./music/skip" +import nowplaying from "./music/nowplaying" export = { name: "music", @@ -49,6 +50,10 @@ export = { subcommand .setName("queue") .setDescription("Show the queue")) + .addSubcommand(subcommand => + subcommand + .setName("nowplaying") + .setDescription("Show the currently playing song")) .addSubcommand(subcommand => subcommand .setName("leave") @@ -79,6 +84,11 @@ export = { return } + if (subcommand === "nowplaying") { + nowplaying(interaction) + return + } + if (subcommand === "leave") { leave(interaction) return diff --git a/src/commands/music/nowplaying.ts b/src/commands/music/nowplaying.ts new file mode 100644 index 0000000..5308772 --- /dev/null +++ b/src/commands/music/nowplaying.ts @@ -0,0 +1,43 @@ +import { embedColor } from "config/options" +import { useMainPlayer } from "discord-player" +import { ChatInputCommandInteraction } from "discord.js" + +export default async function nowplaying(interaction: ChatInputCommandInteraction) { + await interaction.deferReply() + + const player = useMainPlayer() + const queue = player.queues.get(interaction.guildId!) + + if (!queue) { + await interaction.editReply({ + content: "There is no queue" + }) + return + } + + const current = queue.currentTrack + + if (!current) { + await interaction.editReply({ + content: "There is no current song" + }) + return + } + + await interaction.editReply({ + embeds: [{ + author: { + name: current.author, + }, + title: "Now Playing", + description: `[${current.title}](${current.url})`, + color: embedColor, + thumbnail: { + url: current.thumbnail + }, + footer: { + text: `Requested by ${current.requestedBy!.username} | ${current.duration}` + } + }] + }) +} \ No newline at end of file