import { Client, TextChannel, VoiceChannel } from 'discord.js' import { useMainPlayer } from 'discord-player' export default async (client: Client) => { let textChannel = client.channels.cache.get(process.env.DISCORD_MUSIC_TEXTCHANNEL_ID as string) as TextChannel if (!textChannel) return console.log(`Aucun channel trouvé avec l'id \`${process.env.DISCORD_MUSIC_TEXTCHANNEL_ID}\`, veuillez utiliser la commande \`/setchannel\` !`) let voiceChannel = client.channels.cache.get(process.env.DISCORD_MUSIC_VOICECHANNEL_ID as string) as VoiceChannel if (!voiceChannel) return console.log(`Aucun channel trouvé avec l'id \`${process.env.DISCORD_MUSIC_VOICECHANNEL_ID}\`, veuillez utiliser la commande \`/setchannel\` !`) let player = useMainPlayer() let queue = player.nodes.create(textChannel.guild, { metadata: { channel: textChannel, client: textChannel.guild.members.me, requestedBy: client.user }, selfDeaf: true, volume: 20, leaveOnEmpty: true, leaveOnEmptyCooldown: 30000, leaveOnEnd: true, leaveOnEndCooldown: 300000 }) try { if (!queue.connection) await queue.connect(voiceChannel) } catch (error: any) { console.error(error); await textChannel.send(`Y'a eu un problème, <@223831938346123275> ! (${error.message})`) } let result = await player.search(process.env.DISCORD_MUSIC_CURRENT_TRACK as string, { requestedBy: client.user || undefined }) if (!result.hasTracks()) await textChannel.send(`Aucune musique trouvée pour **${process.env.DISCORD_MUSIC_CURRENT_TRACK}** !`) let track = result.tracks[0] let entry = queue.tasksQueue.acquire() await entry.getTask() queue.addTrack(track) try { await queue.node.play() await queue.node.seek(Number(process.env.DISCORD_MUSIC_CURRENT_PROGRESS)) await textChannel.send(`Relancement de la musique suite à mon redémarrage...`) } catch (error: any) { console.error(error); await textChannel.send(`Y'a eu un problème, <@223831938346123275> ! (${error.message})`) } finally { queue.tasksQueue.release() } }