Création Repo pour mon bot Le Tamiseur
This commit is contained in:
99
events/ready.js
Executable file
99
events/ready.js
Executable file
@@ -0,0 +1,99 @@
|
||||
const { Events, EmbedBuilder, ButtonBuilder, ActionRowBuilder } = require('discord.js')
|
||||
const { useQueue } = require("discord-player")
|
||||
|
||||
const dance = async function (bot_id, channel, embed, components) {
|
||||
let messages = await channel.messages.fetch()
|
||||
let botMessage = messages.find(msg => msg.author.id === bot_id)
|
||||
if (!botMessage || (!components && botMessage.components.length > 0)) {
|
||||
await channel.bulkDelete(messages)
|
||||
return await channel.send({ embeds: [embed] })
|
||||
} else {
|
||||
await botMessage.edit({ embeds: [embed], components })
|
||||
}
|
||||
}
|
||||
|
||||
const getUptime = function (uptime) {
|
||||
let days = Math.floor(uptime / 86400000)
|
||||
let hours = Math.floor(uptime / 3600000) % 24
|
||||
let minutes = Math.floor(uptime / 60000) % 60
|
||||
let seconds = Math.floor(uptime / 1000) % 60
|
||||
return `${days}J, ${hours}H, ${minutes}M et ${seconds}S`
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
name: Events.ClientReady,
|
||||
once: true,
|
||||
execute(client) {
|
||||
console.log(`\u001b[1;35m Ready! Logged in as ${client.user.tag}`)
|
||||
setInterval(async () => {
|
||||
let guild = client.guilds.cache.get('1086577543651524699')
|
||||
let channel = guild.channels.cache.get('1099542278764245096')
|
||||
|
||||
let queue = useQueue(guild.id)
|
||||
if (!queue) return await dance(client.user.id, channel, new EmbedBuilder().setColor('#ffc370').setTitle('Aucune session d\'écoute en cours !').setFooter({ text: `Uptime: ${getUptime(client.uptime)}` }))
|
||||
let track = queue.currentTrack
|
||||
if (!track) return await dance(client.user.id, channel, new EmbedBuilder().setColor('#ffc370').setTitle('Aucune musique en cours de lecture !').setFooter({ text: `Uptime: ${getUptime(client.uptime)}` }))
|
||||
|
||||
let embed = new EmbedBuilder()
|
||||
.setColor('#ffc370')
|
||||
.setTitle(track.title)
|
||||
.setAuthor({ name: track.author })
|
||||
.setURL(track.url)
|
||||
.setImage(track.thumbnail)
|
||||
.addFields(
|
||||
{ name: 'Durée', value: track.duration, inline: true },
|
||||
{ name: 'Source', value: track.source === 'youtube' ? 'Youtube' : track.source === 'spotify' ? 'Spotify' : 'Inconnu', inline: true },
|
||||
{ name: 'Volume', value: `${queue.node.volume}%`, inline: true },
|
||||
{ name: queue.node.isPaused() ? 'Progression (en pause)' : 'Progression', value: queue.node.createProgressBar() },
|
||||
{ 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'}`)
|
||||
.setFooter({ text: `Uptime: ${getUptime(client.uptime)} / Demandé par ${track.requestedBy.tag}` })
|
||||
|
||||
let components = [
|
||||
new ActionRowBuilder().addComponents(
|
||||
new ButtonBuilder()
|
||||
.setLabel(queue.node.isPaused() ? '▶️' : '⏸️')
|
||||
.setStyle(2)
|
||||
.setCustomId(queue.node.isPaused() ? 'resume' : 'pause'),
|
||||
new ButtonBuilder()
|
||||
.setLabel('⏹️')
|
||||
.setStyle(2)
|
||||
.setCustomId('stop'),
|
||||
new ButtonBuilder()
|
||||
.setLabel('⏭️')
|
||||
.setStyle(2)
|
||||
.setCustomId('skip')
|
||||
.setDisabled(queue.tracks.length !== 0),
|
||||
new ButtonBuilder()
|
||||
.setLabel('🔉')
|
||||
.setStyle(2)
|
||||
.setCustomId('volume_down')
|
||||
.setDisabled(queue.node.volume === 0),
|
||||
new ButtonBuilder()
|
||||
.setLabel('🔊')
|
||||
.setStyle(2)
|
||||
.setCustomId('volume_up')
|
||||
.setDisabled(queue.node.volume === 100)
|
||||
),
|
||||
new ActionRowBuilder().addComponents(
|
||||
new ButtonBuilder()
|
||||
.setLabel('🔀')
|
||||
.setStyle(2)
|
||||
.setCustomId('shuffle'),
|
||||
new ButtonBuilder()
|
||||
.setLabel('🔁')
|
||||
.setStyle(2)
|
||||
.setCustomId('loop'),
|
||||
new ButtonBuilder()
|
||||
.setLabel('⏮️')
|
||||
.setStyle(2)
|
||||
.setCustomId('previous')
|
||||
.setDisabled(queue.previousTracks ? !queue.previousTracks[0] : true)
|
||||
)
|
||||
]
|
||||
await dance(client.user.id, channel, embed, components)
|
||||
}, 4000)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user