Version 3.0 sortie, fusion avec JujulBot

This commit is contained in:
Angels-dev
2024-08-07 01:09:05 +02:00
parent 696b284b6c
commit 586f68b0df
51 changed files with 2472 additions and 1144 deletions

25
src/commands/player/panel.ts Executable file
View File

@@ -0,0 +1,25 @@
import { SlashCommandBuilder, ChatInputCommandInteraction } from 'discord.js'
import { playerGenerate } from '../../utils/player'
import getUptime from '../../utils/getUptime'
import { useQueue } from 'discord-player'
export default {
data: new SlashCommandBuilder()
.setName('panel')
.setDescription('Générer les infos de la lecture en cours.'),
async execute(interaction: ChatInputCommandInteraction) {
let queue = useQueue(interaction.guild?.id ?? '')
if (!queue) return interaction.followUp({ content: 'Aucune file d\'attente en cours, recherche une musique plutôt !' })
let guild = interaction.guild
if (!guild) return await interaction.reply({ content: 'Cette commande n\'est pas disponible en message privé.', ephemeral: true })
let client = guild.client
let { embed, components } = await playerGenerate(guild)
if (components && embed.data.footer) embed.setFooter({ text: `Uptime: ${getUptime(client.uptime)} \n ${embed.data.footer.text}` })
else embed.setFooter({ text: `Uptime: ${getUptime(client.uptime)}` })
return interaction.reply({ embeds: [embed] })
}
}

View File

@@ -1,9 +1,8 @@
import { SlashCommandBuilder, ChatInputCommandInteraction, AutocompleteInteraction, GuildMember } from 'discord.js'
import { useMainPlayer, useQueue, QueryType } from 'discord-player'
import dbGuild from '../../schemas/guild'
export interface TrackSearchResult { name: string, value: string }
interface TrackSearchResult { name: string, value: string }
export default {
data: new SlashCommandBuilder()

19
src/commands/player/queue.ts Executable file
View File

@@ -0,0 +1,19 @@
import { SlashCommandBuilder, ChatInputCommandInteraction } from 'discord.js'
import { useQueue } from 'discord-player'
export default {
data: new SlashCommandBuilder()
.setName('queue')
.setDescription("Récupérer la file d'attente."),
async execute(interaction: ChatInputCommandInteraction) {
let queue = useQueue(interaction.guild?.id ?? '')
if (!queue) return interaction.reply({ content: 'Aucune file d\'attente en cours, recherche une musique plutôt !' })
if (!queue.currentTrack) return interaction.reply({ content: 'Aucune musique en cours de lecture.' })
let track = `[${queue.currentTrack.title}](${queue.currentTrack.url})`
let tracks = queue.tracks.map((track, index) => { return `${index + 1}. [${track.title}](${track.url})` })
if (tracks.length === 0) return interaction.reply({ content: `Lecture en cours : ${track} \nAucune musique dans la file d'attente.` })
return interaction.reply({ content: `Lecture en cours : ${track} \nFile d'attente actuelle : \n${tracks.join('\n')}` })
}
}