Fix playerButtons + generatePlayer
This commit is contained in:
50
utilsPlayer/disco.js
Normal file
50
utilsPlayer/disco.js
Normal file
@@ -0,0 +1,50 @@
|
||||
const { useQueue } = require('discord-player')
|
||||
|
||||
const appDir = require('path').dirname(require.main.filename)
|
||||
const generate = require(appDir + '/utilsPlayer/generate.js')
|
||||
const getUptime = require(appDir + '/utils/getUptime.js')
|
||||
|
||||
module.exports = replay = async (client) => {
|
||||
//client.guilds.cache.each(async guild => {
|
||||
//const Data = sequelize.define(guild.id, {
|
||||
// playerChannelId: DataTypes.STRING
|
||||
//})
|
||||
//await sequelize.sync({ force: true })
|
||||
|
||||
//if (!Data.playerChannelId) {
|
||||
// clearInterval(interval)
|
||||
// console.log(`\u001b[1;31m Aucun channel inscrit dans la base, veuillez utiliser la commande \`/setchannel\` !`)
|
||||
// return 'clear'
|
||||
//}
|
||||
//let channel = client.channels.cache.get(Data.playerChannelId)
|
||||
|
||||
let guild = client.guilds.cache.get(process.env.DISCORD_GUILD_ID)
|
||||
if (!guild) {
|
||||
clearInterval(interval)
|
||||
console.log(`\u001b[1;31m Error: Aucun serveur trouvé avec l'id \`${process.env.DISCORD_GUILD_ID}\`, veuillez utiliser la commande \`/setchannel\` !`)
|
||||
return 'clear'
|
||||
}
|
||||
|
||||
// Keep track of the music progress if the bot reboots
|
||||
let queue = useQueue(guild.id)
|
||||
if (queue) if (queue.isPlaying()) writeEnv('DISCORD_MUSIC_CURRENT_PROGRESS', queue.node.playbackTime)
|
||||
|
||||
let channel = client.channels.cache.get(process.env.DISCORD_PLAYERCHANNEL_ID)
|
||||
if (!channel) {
|
||||
clearInterval(interval)
|
||||
console.log(`\u001b[1;31m Error: Aucun channel trouvé avec l'id \`${process.env.DISCORD_PLAYERCHANNEL_ID}\`, veuillez utiliser la commande \`/setchannel\` !`)
|
||||
return 'clear'
|
||||
}
|
||||
|
||||
let { embed, components } = await generate(guild)
|
||||
if (components) embed.setFooter({ text: `Uptime: ${getUptime(client.uptime)} \n ${embed.data.footer.text}` })
|
||||
else embed.setFooter({ text: `Uptime: ${getUptime(client.uptime)}` })
|
||||
|
||||
let messages = await channel.messages.fetch()
|
||||
let botMessage = messages.find(msg => msg.author.id === client.user.id)
|
||||
|
||||
if (!botMessage || (!components && botMessage.components.length > 0)) {
|
||||
await channel.bulkDelete(messages)
|
||||
return channel.send({ embeds: [embed] })
|
||||
} else return botMessage.edit({ embeds: [embed], components })
|
||||
}
|
||||
@@ -59,5 +59,5 @@ module.exports = async (interaction) => {
|
||||
.setDisabled(true)
|
||||
)
|
||||
]
|
||||
interaction.update({ components, content: 'Chargement...' })
|
||||
await interaction.update({ components })
|
||||
}
|
||||
@@ -2,17 +2,20 @@ const { EmbedBuilder, ButtonBuilder, ActionRowBuilder } = require('discord.js')
|
||||
const { useQueue } = require('discord-player')
|
||||
|
||||
module.exports = async (guild) => {
|
||||
let queue = useQueue(guild.id)
|
||||
let embed = new EmbedBuilder().setColor('#ffc370')
|
||||
|
||||
let queue = useQueue(guild.id)
|
||||
if (!queue) {
|
||||
embed.setTitle('Aucune session d\'écoute en cours !')
|
||||
return ({ embed, components: null })
|
||||
}
|
||||
|
||||
let track = queue.currentTrack
|
||||
if (!track) {
|
||||
embed.setTitle('Aucune musique en cours de lecture !')
|
||||
return ({ embed, components: null })
|
||||
}
|
||||
|
||||
embed.setTitle(track.title)
|
||||
.setAuthor({ name: track.author })
|
||||
.setURL(track.url)
|
||||
@@ -25,7 +28,7 @@ module.exports = async (guild) => {
|
||||
{ name: 'Loop', value: queue.repeatMode ? queue.repeatMode === 2 ? "File d'Attente" : "Titre" : "Off", inline: true },
|
||||
{ name: 'Autoplay', value: queue.autoplay ? "On" : "Off", inline: true }
|
||||
)
|
||||
.setDescription(`**Musique suivante :** ${queue.tracks[0] ? queue.tracks[0].title : 'Aucune'}`)
|
||||
.setDescription(`**Musique suivante :** ${queue.tracks.data[0] ? queue.tracks.data[0].title : 'Aucune'}`)
|
||||
.setFooter({ text: `Demandé par ${track.requestedBy.tag}` })
|
||||
|
||||
let components = [
|
||||
@@ -42,7 +45,7 @@ module.exports = async (guild) => {
|
||||
.setLabel('⏭️')
|
||||
.setStyle(2)
|
||||
.setCustomId('skip')
|
||||
.setDisabled(queue.tracks.length !== 0),
|
||||
.setDisabled(queue.tracks.data.length !== 0),
|
||||
new ButtonBuilder()
|
||||
.setLabel('🔉')
|
||||
.setStyle(2)
|
||||
|
||||
42
utilsPlayer/replay.js
Normal file
42
utilsPlayer/replay.js
Normal file
@@ -0,0 +1,42 @@
|
||||
const { useMasterPlayer } = require('discord-player')
|
||||
|
||||
module.exports = replay = async (client) => {
|
||||
let textChannel = client.channels.cache.get(process.env.DISCORD_MUSIC_TEXTCHANNEL_ID)
|
||||
let voiceChannel = client.channels.cache.get(process.env.DISCORD_MUSIC_VOICECHANNEL_ID)
|
||||
|
||||
let player = useMasterPlayer()
|
||||
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: 300000,
|
||||
leaveOnEnd: true,
|
||||
leaveOnEndCooldown: 300000,
|
||||
skipOnNoStream: true
|
||||
})
|
||||
|
||||
try { if (!queue.connection) await queue.connect(voiceChannel) }
|
||||
catch (error) { 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, { requestedBy: client.user })
|
||||
if (!result.hasTracks()) await textChannel.send(`Aucune musique trouvée pour **${query}** !`)
|
||||
let track = result.tracks[0]
|
||||
|
||||
let entry = queue.tasksQueue.acquire()
|
||||
await entry.getTask()
|
||||
queue.addTrack(track)
|
||||
|
||||
let progress = process.env.DISCORD_MUSIC_CURRENT_PROGRESS
|
||||
|
||||
try {
|
||||
await queue.node.play()
|
||||
queue.node.seek(progress)
|
||||
await textChannel.send(`Relancement de la musique suite à mon redémarrage...`)
|
||||
} catch (error) { console.error(error); await textChannel.send(`Y'a eu un problème, <@223831938346123275> ! (${error.message})`) }
|
||||
finally { queue.tasksQueue.release() }
|
||||
}
|
||||
Reference in New Issue
Block a user