diff --git a/package.json b/package.json index 499c29c..28055a2 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "glob": "^10.3.3", "mongoose": "^7.4.2", "node-replicate": "^2.0.0", - "superagent": "^8.0.9" + "superagent": "^8.0.9", + "musicard": "^1.4.3" }, "devDependencies": { "@types/superagent": "^4.1.18", @@ -48,4 +49,4 @@ "url": "https://github.com/shadowrunners/evelyn/issues" }, "homepage": "https://github.com/shadowrunners/evelyn#readme" -} \ No newline at end of file +} diff --git a/src/Events/Automata/trackStart.ts b/src/Events/Automata/trackStart.ts index 80a31a7..5ba43c1 100644 --- a/src/Events/Automata/trackStart.ts +++ b/src/Events/Automata/trackStart.ts @@ -4,11 +4,12 @@ import { ButtonBuilder, ButtonStyle, TextChannel, + AttachmentBuilder, } from 'discord.js'; import { Player, AutomataTrack } from '@shadowrunners/automata'; import { Util } from '../../Utils/Utils/Util.js'; import { Evelyn } from '../../Evelyn.js'; - +import { musicCard } from 'musicard'; const { Primary } = ButtonStyle; export default class TrackStart { @@ -16,6 +17,20 @@ export default class TrackStart { async execute(player: Player, track: AutomataTrack, client: Evelyn) { const utils = new Util(); + + const card = new musicCard(); + .setName(track.title) + .setAuthor(track.author) + .setColor("auto") + .setBrightness(100) + .setThumbnail(track.thumbnail) + .setProgress(0) + .setStartTime("0:00") + .setEndTime(utils.formatTime(track.length)) + + const buffer = await card.build(); + const attachment = new AttachmentBuilder(buffer, { name: `musicard.png` }); + const buttonRow = new ActionRowBuilder().addComponents( new ButtonBuilder().setCustomId('pause').setLabel('⏯️').setStyle(Primary), new ButtonBuilder().setCustomId('skip').setLabel('⏭️').setStyle(Primary), @@ -54,7 +69,7 @@ export default class TrackStart { ) as TextChannel; await channel - .send({ embeds: [nowPlaying], components: [buttonRow] }) + .send({ embeds: [nowPlaying], components: [buttonRow], files: [attachment] }) .then((message) => player.setNowPlayingMessage(message)); } }