From 432198c4f73538fc4ac2094b3c4fd5fa42d1b71e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zachary=20Gu=C3=A9not?= Date: Sun, 11 Jun 2023 01:14:49 +0200 Subject: [PATCH] Ajout /lyrics, /papa et /parle + Fix /crack --- buttons/pause.js | 3 ++ commands/global/crack.js | 8 ++-- commands/global/papa.js | 28 ++++++++++++++ commands/global/parle.js | 73 ++++++++++++++++++++++++++++++++++++ commands/music/lyrics.js | 45 ++++++++++++++++++++++ commands/music/play.js | 12 +++--- events/ready.js | 7 ++-- eventsPlayer/playerStart.js | 2 + parle.mp3 | Bin 0 -> 45120 bytes utilsCrack/search.js | 2 +- 10 files changed, 166 insertions(+), 14 deletions(-) create mode 100755 commands/global/papa.js create mode 100755 commands/global/parle.js create mode 100755 commands/music/lyrics.js create mode 100644 parle.mp3 diff --git a/buttons/pause.js b/buttons/pause.js index 7c03ccb..f6e6afb 100644 --- a/buttons/pause.js +++ b/buttons/pause.js @@ -3,6 +3,9 @@ const { useQueue } = require('discord-player') module.exports = { id: 'pause', async execute(interaction) { + console.log(interaction) + console.log(interaction.reply) + console.log(interaction.reply()) let queue = useQueue(interaction.guild.id) queue.node.setPaused(!queue.node.isPaused()) await interaction.reply({ content: 'Musique mise en pause !', ephemeral: true }) diff --git a/commands/global/crack.js b/commands/global/crack.js index 6db8b8d..ff54d4d 100644 --- a/commands/global/crack.js +++ b/commands/global/crack.js @@ -34,10 +34,13 @@ module.exports = { let query = interaction.options.getString('jeu') let games = await search(query, headers1) + if (!Array.isArray(games)) { + if (games.toString() == "TypeError: Cannot read properties of undefined (reading 'split')") return interaction.followUp({ content: `J'ai rien trouvé pour "${query}" !` }) + else return interaction.followUp({ content: "Une erreur s'est produite ! ```" + games + "```" }) + } let game - if (games.length === 0) return await interaction.followUp({ content: `J'ai rien trouvé pour "${query}" !` }) - else if (games.length > 1) { + if (games.length > 1) { games = games.slice(0, 9) let list = '' for (let i = 0; i < games.length; i++) list += `\n${i + 1}. ${games[i].name} (${games[i].link})` @@ -59,7 +62,6 @@ module.exports = { game = games[index] } else game = games[0] - console.log(interaction.user.id) let url = await repo(game, headers2) let file = await torrent(url, headers2) diff --git a/commands/global/papa.js b/commands/global/papa.js new file mode 100755 index 0000000..61b2c66 --- /dev/null +++ b/commands/global/papa.js @@ -0,0 +1,28 @@ +const { SlashCommandBuilder } = require('discord.js') +const { getVoiceConnection, joinVoiceChannel } = require('@discordjs/voice') + +module.exports = { + data: new SlashCommandBuilder() + .setName('papa') + .setDescription('Si papa m\'appelle, je le rejoins !'), + async execute(interaction) { + if (interaction.user.id !== '223831938346123275') return interaction.reply({ content: 'T\'es pas mon père, dégage !' }) + + let botChannel = interaction.guild.members.me.voice.channel + let papaChannel = interaction.member.voice.channel + + if (!papaChannel && botChannel) { + getVoiceConnection(botChannel.guild.id).destroy() + return interaction.reply({ content: 'Je quitte le vocal, papa !' }) + } + else if (!botChannel || botChannel.id !== papaChannel.id) { + joinVoiceChannel({ + channelId: papaChannel.id, + guildId: papaChannel.guild.id, + adapterCreator: papaChannel.guild.voiceAdapterCreator, + }) + return interaction.reply({ content: 'Je rejoins ton vocal, papa !' }) + } + else return interaction.reply({ content: 'Je suis déjà dans ton vocal, papa !' }) + } +} \ No newline at end of file diff --git a/commands/global/parle.js b/commands/global/parle.js new file mode 100755 index 0000000..30e6e3b --- /dev/null +++ b/commands/global/parle.js @@ -0,0 +1,73 @@ +const { SlashCommandBuilder } = require('discord.js') +const { joinVoiceChannel, createAudioPlayer, createAudioResource, AudioPlayerStatus, EndBehaviorType } = require('@discordjs/voice') +const appDir = require('path').dirname(require.main.filename) + +module.exports = { + data: new SlashCommandBuilder() + .setName('parle') + .setDescription('Fais moi parler par dessus quelqu\'un de chiant dans le vocal') + .addUserOption(option => option.setName('user').setDescription('La personne en question').setRequired(true)), + async execute(interaction) { + if (interaction.user.id !== '223831938346123275') return await interaction.reply({ content: 'Tu n\'as pas le droit d\'utiliser cette commande !', ephemeral: true }) + + let user = interaction.options.getUser('user') + let member = interaction.guild.members.cache.get(user.id) + + if (!interaction.member.voice.channel) return await interaction.reply({ content: 'You must be in a voice channel to use this command.', ephemeral: true }) + if (!member.voice.channel) return await interaction.reply({ content: 'The member must be in a voice channel to use this command.', ephemeral: true }) + if (interaction.member.voice.channelId !== member.voice.channelId) return await interaction.reply({ content: 'You must be in the same voice channel than the member to use this command.', ephemeral: true }) + + await interaction.reply({ content: 'Je vais parler par dessus cette personne !', ephemeral: true }) + + /* + // Searches for audio files uploaded in the channel + let messages = await interaction.channel.messages.fetch({ limit: 10, cache: false }) + messages = messages.filter(m => m.attachments.size > 0) + + let files = [] + await messages.forEach(m => m.attachments.forEach(a => { + if (a.contentType === 'audio/mpeg') files.push(a) + })) + if (files.size === 0) return await interaction.editReply({ content: 'Aucun fichier audio trouvé dans ce channel.', ephemeral: true }) + + // Limit the number of files to the last 10 + //files = files.sort((a, b) => b.createdTimestamp - a.createdTimestamp).first(10) + + // Ask the user to choose a file + let file = await interaction.channel.send({ content: 'Choisissez un fichier audio :', files: files }) + let filter = m => m.author.id === interaction.user.id && !isNaN(m.content) && parseInt(m.content) > 0 && parseInt(m.content) <= files.size + let response = await interaction.channel.awaitMessages({ filter, max: 1, time: 30000, errors: ['time'] }) + file = files.get(files.keyArray()[response.first().content - 1]) + */ + + let playing = false + let player = createAudioPlayer() + player.on(AudioPlayerStatus.Idle, () => { playing = false }) + + let connection = joinVoiceChannel({ + channelId: interaction.member.voice.channelId, + guildId: interaction.guildId, + adapterCreator: interaction.guild.voiceAdapterCreator, + selfDeaf: false + }) + connection.subscribe(player) + + let stream = connection.receiver.subscribe(user.id, { end: { behavior: EndBehaviorType.Manual } }) + stream.on('data', (chunk) => { + if (connection.receiver.speaking.users.has(user.id) && !playing) { + playing = true + let resource = createAudioResource(appDir + '/parle.mp3', { inlineVolume: true }) + //let resource = createAudioResource(file.attachments.first().url, { inlineVolume: true }) + resource.volume.setVolume(0.2) + player.play(resource) + } + }) + + interaction.client.on('voiceStateUpdate', (oldState, newState) => { + if (oldState.id === member.id && newState.channelId !== interaction.member.voice.channelId) { + stream.destroy() + connection.disconnect() + } + }) + } +} \ No newline at end of file diff --git a/commands/music/lyrics.js b/commands/music/lyrics.js new file mode 100755 index 0000000..a7bd2ff --- /dev/null +++ b/commands/music/lyrics.js @@ -0,0 +1,45 @@ +const { SlashCommandBuilder, EmbedBuilder } = require('discord.js') +const { useQueue } = require('discord-player') +const { lyricsExtractor } = require('@discord-player/extractor') + +module.exports = { + data: new SlashCommandBuilder() + .setName('lyrics') + .setDescription('Rechercher les paroles d\'une musique.') + .addStringOption(option => option.setName('recherche').setDescription('Chercher une musique spécifique')), + async execute(interaction) { + await interaction.deferReply() + + let query = interaction.options.getString('recherche', false) + if (!query) { + let queue = useQueue(interaction.guild.id) + if (!queue) return interaction.followUp({ content: 'Aucune file d\'attente en cours, recherche une musique plutôt !' }) + let track = queue.currentTrack + if (!track) return interaction.followUp({ content: 'Aucune musique en cours, recherche en une plutôt !' }) + + if (track.raw.source === 'spotify') query = `${track.author} ${track.title}` + else query = track.title + } + + let lyricsFinder = lyricsExtractor() + + let lyrics = await lyricsFinder.search(query).catch(() => null) + if (!lyrics) return interaction.followUp({ content: 'Pas de paroles trouvées !' }) + + let trimmedLyrics = lyrics.lyrics.substring(0, 1997) + + let embed = new EmbedBuilder() + .setColor('#ffc370') + .setTitle(lyrics.title) + .setURL(lyrics.url) + .setThumbnail(lyrics.thumbnail) + .setAuthor({ + name: lyrics.artist.name, + iconURL: lyrics.artist.image, + url: lyrics.artist.url + }) + .setDescription(trimmedLyrics.length === 1997 ? `${trimmedLyrics}...` : trimmedLyrics) + + return interaction.followUp({ embeds: [embed] }) + } +} \ No newline at end of file diff --git a/commands/music/play.js b/commands/music/play.js index f69d377..261cbe5 100755 --- a/commands/music/play.js +++ b/commands/music/play.js @@ -60,10 +60,10 @@ module.exports = { }) } try { if (!queue.connection) await queue.connect(voiceChannel) } - catch (error) { console.error(error); return await interaction.followUp(`Y'a eu un problème, <@223831938346123275> ! (${error.message})`) } + catch (error) { console.error(error); return interaction.followUp(`Y'a eu un problème, <@223831938346123275> ! (${error.message})`) } let result = await player.search(query, { requestedBy: interaction.user }) - if (!result.hasTracks()) return await interaction.followUp(`Aucune musique trouvée pour **${query}** !`) + if (!result.hasTracks()) return interaction.followUp(`Aucune musique trouvée pour **${query}** !`) let track = result.tracks[0] let entry = queue.tasksQueue.acquire() @@ -73,14 +73,12 @@ module.exports = { // Write the values in the .env file to recover the player if the bot restarts writeEnv('DISCORD_MUSIC_TEXTCHANNEL_ID', interaction.channel.id) writeEnv('DISCORD_MUSIC_VOICECHANNEL_ID', voiceChannel.id) - writeEnv('DISCORD_MUSIC_CURRENT_TRACK', track.url) - writeEnv('DISCORD_MUSIC_CURRENT_PROGRESS', 0) try { if (!queue.isPlaying()) await queue.node.play() - track.source = track.source === 'youtube' ? 'Youtube' : track.source === 'spotify' ? 'Spotify' : 'Inconnu' - return await interaction.followUp(`Chargement de la musique **${track.title}** de **${track.author}** sur **${track.source}**...`) - } catch (error) { console.error(error); return await interaction.followUp(`Y'a eu un problème, <@223831938346123275> ! (${error.message})`) } + let track_source = track.source === 'youtube' ? 'Youtube' : track.source === 'spotify' ? 'Spotify' : 'Inconnu' + return interaction.followUp(`Chargement de la musique **${track.title}** de **${track.author}** sur **${track_source}**...`) + } catch (error) { console.error(error); return interaction.followUp(`Y'a eu un problème, <@223831938346123275> ! (${error.message})`) } finally { queue.tasksQueue.release() } } } \ No newline at end of file diff --git a/events/ready.js b/events/ready.js index ac5e550..1635d39 100755 --- a/events/ready.js +++ b/events/ready.js @@ -32,7 +32,7 @@ module.exports = { let player = useMasterPlayer() let queue = player.nodes.create(textChannel.guild, { metadata: { - channel: voiceChannel, + channel: textChannel, client: textChannel.guild.members.me, requestedBy: client.user }, @@ -56,10 +56,11 @@ module.exports = { await entry.getTask() queue.addTrack(track) + let progress = process.env.DISCORD_MUSIC_CURRENT_PROGRESS + try { await queue.node.play() - queue.node.seek(process.env.DISCORD_MUSIC_CURRENT_PROGRESS) - queue.setRepeatMode(1) + 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() } diff --git a/eventsPlayer/playerStart.js b/eventsPlayer/playerStart.js index d1d0fa3..e376a04 100644 --- a/eventsPlayer/playerStart.js +++ b/eventsPlayer/playerStart.js @@ -2,6 +2,8 @@ module.exports = { name: 'playerStart', async execute(queue, track) { // Emitted when the player starts to play a song + writeEnv('DISCORD_MUSIC_CURRENT_TRACK', track.url) + queue.metadata.channel.send(`Lecture de **${track.title}** de **${track.author}** !`) } } \ No newline at end of file diff --git a/parle.mp3 b/parle.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..292e84643074ec41dbc47641751665a3c4d3f82a GIT binary patch literal 45120 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 yijY { games.push({ name, link }) }) return games - } catch (error) { console.error(error) } + } catch (error) { return error } }) \ No newline at end of file