diff --git a/commands/utils/encode.js b/commands/utils/encode.js index 62f870f..9f53965 100644 --- a/commands/utils/encode.js +++ b/commands/utils/encode.js @@ -1,67 +1,107 @@ +const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); +const sqlite3 = require('sqlite3').verbose(); +const db = new sqlite3.Database('myDatabase.db'); + module.exports = { - name: 'encode', - description: 'Encoder ou décoder un language chiffré', - utilisation: ' ', - emote: "🔐", - category: "utils", - async execute(message, args) { - if (args.length < 3) { - return message.reply('Usage: `encode `'); - } + name: "encode", + aliases: ["encoder", "decode", "decoder"], + description: "Encoder ou décoder un language chiffré", + utilisation: " ", + emote: "🔐", + category: "utils", - const subcommand = args[0]; - const action = args[1]; - const text = args.slice(2).join(' '); + async execute(message, args, client) { + if (args.length < 3) { + const botId = client.user.id; + const defaultPrefix = "+"; + let data = await new Promise((resolve, reject) => { + db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => { + if (err) { + console.error(err.message); + reject(err); + } + resolve(row ? JSON.parse(row.value) : {}); + }); + }); + const prefix = data.prefix || defaultPrefix; - if (subcommand !== 'base64' && subcommand !== 'binaire') { - return message.reply('Invalid subcommand. Use `base64` or `binaire`.'); - } + const embed = new EmbedBuilder() + .setColor("#FF0000") + .setTitle("❌ Erreur") + .setDescription(`Usage: ${prefix}encode \`\` \`\` \`\``) + .setTimestamp(); - if (action !== 'encode' && action !== 'decode') { - return message.reply('Invalid action. Use `encode` or `decode`.'); - } + const button = new ButtonBuilder() + .setEmoji('✖️') + .setCustomId('delete') + .setStyle(ButtonStyle.Secondary); + + const row = new ActionRowBuilder() + .addComponents(button); - if (subcommand === 'base64') { - let result; - if (action === 'encode') { - result = btoa(text); - } else { - result = atob(text); - } - return message.channel.send(`**Resultat:** \`${result}\``); - } + const errorMessage = await message.reply({ embeds: [embed], components: [row]}); - if (subcommand === 'binaire') { - let result; - if (action === 'encode') { - result = texteVersBinaire(text); - } else { - result = binaireVersTexte(text); - } - return message.channel.send(`**Resultat:** \`${result}\``); + const filter = i => i.customId === 'delete' && i.user.id === message.author.id; + const collector = errorMessage.createMessageComponentCollector({ filter, time: 300000 }); + collector.on('collect', async () => { + return errorMessage.delete(); + }); + } else { + + const subcommand = args[0]; + const action = args[1]; + const text = args.slice(2).join(" "); + + if (subcommand !== "base64" && subcommand !== "binaire") { + return message.reply("Invalid subcommand. Use `base64` or `binaire`."); + } + + if (action !== "encode" && action !== "decode") { + return message.reply("Invalid action. Use `encode` or `decode`."); + } + + if (subcommand === "base64") { + let result; + if (action === "encode") { + result = btoa(text); + } else { + result = atob(text); } - }, + return message.channel.send(`**Resultat:** \`${result}\``); + } + + if (subcommand === "binaire") { + let result; + if (action === "encode") { + result = texteVersBinaire(text); + } else { + result = binaireVersTexte(text); + } + return message.channel.send(`**Resultat:** \`${result}\``); + } + } + }, }; function texteVersBinaire(texte) { - let binaire = ''; - for (let i = 0; i < texte.length; i++) { - let charCode = texte.charCodeAt(i).toString(2); - charCode = '0'.repeat(8 - charCode.length) + charCode; - binaire += charCode + ' '; - } - return binaire.trim(); + let binaire = ""; + + for (let i = 0; i < texte.length; i++) { + let charCode = texte.charCodeAt(i).toString(2); + charCode = "0".repeat(8 - charCode.length) + charCode; + binaire += charCode + " "; + } + return binaire.trim(); } function binaireVersTexte(binaire) { - let texte = ''; - const octets = binaire.split(' '); + let texte = ""; + const octets = binaire.split(" "); - for (let i = 0; i < octets.length; i++) { - const decimal = parseInt(octets[i], 2); - const caractere = String.fromCharCode(decimal); - texte += caractere; - } - - return texte; + for (let i = 0; i < octets.length; i++) { + const decimal = parseInt(octets[i], 2); + const caractere = String.fromCharCode(decimal); + texte += caractere; + } + return texte; } \ No newline at end of file diff --git a/commands/utils/films.js b/commands/utils/films.js index 1caa51f..d85df09 100644 --- a/commands/utils/films.js +++ b/commands/utils/films.js @@ -1,42 +1,44 @@ const { EmbedBuilder } = require('discord.js'); const axios = require('axios'); + module.exports = { - name: 'film', - description: 'Affiche les films populaires et les plus récents.', - emote: '📽️', - utilisation: 'film', - category: 'utils', - async execute(message, args, client) { - const botUser = message.client.user; - const randomColor = Math.floor(Math.random() * 16777215).toString(16); + name: 'film', + aliases: ['films', 'movie', 'movies'], + description: 'Affiche les films populaires et les plus récents.', + emote: '📽️', + utilisation: 'film', + category: 'utils', - const apiKey = '15392d7432f6d070f28918e626362a93'; - const popularUrl = `https://api.themoviedb.org/3/movie/popular?api_key=${apiKey}&language=fr-FR`; - const recentUrl = `https://api.themoviedb.org/3/movie/now_playing?api_key=${apiKey}&language=fr-FR`; + async execute(message, args, client) { + const botUser = message.client.user; - try { - const [popularResponse, recentResponse] = await Promise.all([ - axios.get(popularUrl), - axios.get(recentUrl) - ]); + const apiKey = '15392d7432f6d070f28918e626362a93'; + const popularUrl = `https://api.themoviedb.org/3/movie/popular?api_key=${apiKey}&language=fr-FR`; + const recentUrl = `https://api.themoviedb.org/3/movie/now_playing?api_key=${apiKey}&language=fr-FR`; - const popularFilms = popularResponse.data.results.slice(0, 50); - const recentFilms = recentResponse.data.results.slice(0, 50); + try { + const [popularResponse, recentResponse] = await Promise.all([ + axios.get(popularUrl), + axios.get(recentUrl) + ]); - const filmsEmbed = new EmbedBuilder() - .setColor(`#${randomColor}`) - .setTitle('🎬 Films Populaires & Récents 🎥') - .setDescription('Voici les films populaires et les plus récents en ce moment :') - .setThumbnail(botUser.displayAvatarURL()) - .setTimestamp() - .setFooter({ text: 'Commande Films', iconURL:botUser.displayAvatarURL() }); - filmsEmbed.addFields({ name: 'Films Populaires', value: popularFilms.map(film => film.title).join(',') || 'Non disponible' }); - filmsEmbed.addFields({ name: 'Nouveautés au Cinéma', value: recentFilms.map(film => film.title).join(',') || 'Non disponible' }); + const popularFilms = popularResponse.data.results.slice(0, 50); + const recentFilms = recentResponse.data.results.slice(0, 50); - await message.reply({ embeds: [filmsEmbed] }); - } catch (error) { - console.error('Erreur lors de la récupération des films :', error); - await message.reply('Impossible de récupérer les informations des films. Veuillez réessayer plus tard.'); - } - }, + const filmsEmbed = new EmbedBuilder() + .setColor('#0099ff') + .setTitle('🎬 Films Populaires & Récents 🎥') + .setDescription('Voici les films populaires et les plus récents en ce moment :') + .setThumbnail(botUser.displayAvatarURL()) + .setTimestamp() + .setFooter({ text: 'Commande Films', iconURL:botUser.displayAvatarURL() }); + filmsEmbed.addFields({ name: '*Films Populaires*', value: popularFilms.map(film => film.title).join('\n') || 'Non disponible' }); + filmsEmbed.addFields({ name: '*Nouveautés au Cinéma*', value: recentFilms.map(film => film.title).join('\n') || 'Non disponible' }); + + await message.reply({ embeds: [filmsEmbed] }); + } catch (error) { + console.error('Erreur lors de la récupération des films :', error); + await message.reply('Impossible de récupérer les informations des films. Veuillez réessayer plus tard.'); + } + }, }; diff --git a/commands/utils/help.js b/commands/utils/help.js index 029f463..d5bb3e7 100644 --- a/commands/utils/help.js +++ b/commands/utils/help.js @@ -1,4 +1,4 @@ -const { EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } = require("discord.js") +const { EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } = require("discord.js") const sqlite3 = require('sqlite3').verbose(); const db = new sqlite3.Database('myDatabase.db'); diff --git a/commands/utils/helpall.js b/commands/utils/helpall.js index 4c41cdf..309872b 100644 --- a/commands/utils/helpall.js +++ b/commands/utils/helpall.js @@ -11,7 +11,6 @@ module.exports = { async execute(message, args, client) { const botId = client.user.id; - const guildId = message.guild.id; const defaultPrefix = "+"; try { let data = await new Promise((resolve, reject) => { diff --git a/commands/utils/memberstat.js b/commands/utils/memberstat.js deleted file mode 100644 index b39c6d2..0000000 --- a/commands/utils/memberstat.js +++ /dev/null @@ -1,40 +0,0 @@ -const { EmbedBuilder } = require('discord.js'); - -module.exports = { - name: 'statserveur', - description: "Permet d'afficher les informations des utilisateurs du serveur.", - category: 'utils', - emote: '🌐', - utilisation: 'statserveur', - async execute(message, args, client) { - const members = await message.guild.members.fetch(); - const totalMembers = members.size; - - let online = []; - let idle = []; - let dnd = []; - let offline = []; - - for (const member of members.values()) { - if (!member.user.bot) { - if (member.presence && member.presence.status === "online") online.push(member); - else if (member.presence && member.presence.status === "idle") idle.push(member); - else if (member.presence && member.presence.status === "dnd") dnd.push(member); - else offline.push(member); - } - } - - - const onlineP = Math.round((online.length / totalMembers) * 100) + `%`; - const idleP = Math.round((idle.length / totalMembers) * 100) + `%`; - const dndP = Math.round((dnd.length / totalMembers) * 100) + `%`; - const offlineP = Math.round((offline.length / totalMembers) * 100) + `%`; - - const embed = new EmbedBuilder() - .setColor("#7289DA") - .setDescription(`🌍 **Information des utilisateurs du serveur** 🌍\n\n🟢 **Membres en Ligne :**\n \`${onlineP} | ${online.length}\`\n\n🟡 **Membres en Inactif :**\n \`${idleP} | ${idle.length}\`\n\n🔴 **Membre en Ne Pas Déranger :**\n \`${dndP} | ${dnd.length}\`\n\n⚪ **Membres Déconnectés :**\n \`${offlineP} | ${offline.length}\`\n\n**Total des membres :** \`${totalMembers}\``); - - await message.reply({ embeds: [embed] }); - - }, -}; \ No newline at end of file diff --git a/commands/utils/pic.js b/commands/utils/pic.js index 71b2d9e..3b73256 100644 --- a/commands/utils/pic.js +++ b/commands/utils/pic.js @@ -1,4 +1,4 @@ -const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js") +const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js") module.exports = { name: 'pic', aliases: ['avatar', 'pfp'], diff --git a/commands/utils/stat.js b/commands/utils/stat.js index 0f19cd6..934e92d 100644 --- a/commands/utils/stat.js +++ b/commands/utils/stat.js @@ -1,4 +1,4 @@ -const { EmbedBuilder, } = require('discord.js'); +const { EmbedBuilder } = require('discord.js'); module.exports = { name: 'stat', @@ -22,7 +22,8 @@ module.exports = { const embed = new EmbedBuilder() .setTitle(`${serverName} 💫 ➔ Statistiques`) .setDescription(`👥 Membres : ${members.size}\n 🟢 Membres En Ligne: ${onlineMembers}\n :loud_sound: En Voc: ${totalVoice}\n 🔮 Boosts : ${boostLevel}`) - .setColor('#0099ff'); + .setColor('#0099ff') + .setTimestamp(); message.channel.send({ embeds: [embed] }); }, diff --git a/commands/utils/statserveur.js b/commands/utils/statserveur.js new file mode 100644 index 0000000..6228a2b --- /dev/null +++ b/commands/utils/statserveur.js @@ -0,0 +1,41 @@ +const { EmbedBuilder } = require('discord.js'); + +module.exports = { + name: 'statserveur', + aliases: ['memberstat', 'statserver'], + description: "Permet d'afficher les informations des utilisateurs du serveur.", + category: 'utils', + emote: '🌐', + utilisation: 'statserveur', + + async execute(message, args, client) { + const members = await message.guild.members.fetch(); + const totalMembers = members.size; + + let online = []; + let idle = []; + let dnd = []; + let offline = []; + + for (const member of members.values()) { + if (!member.user.bot) { + if (member.presence && member.presence.status === "online") online.push(member); + else if (member.presence && member.presence.status === "idle") idle.push(member); + else if (member.presence && member.presence.status === "dnd") dnd.push(member); + else offline.push(member); + } + } + + + const onlineP = Math.round((online.length / totalMembers) * 100) + `%`; + const idleP = Math.round((idle.length / totalMembers) * 100) + `%`; + const dndP = Math.round((dnd.length / totalMembers) * 100) + `%`; + const offlineP = Math.round((offline.length / totalMembers) * 100) + `%`; + + const embed = new EmbedBuilder() + .setColor("#7289DA") + .setDescription(`🌍 **Information des utilisateurs du serveur** 🌍\n\n🟢 **Membres en Ligne :**\n \`${onlineP} | ${online.length}\`\n\n🟡 **Membres en Inactif :**\n \`${idleP} | ${idle.length}\`\n\n🔴 **Membre en Ne Pas Déranger :**\n \`${dndP} | ${dnd.length}\`\n\n⚪ **Membres Déconnectés :**\n \`${offlineP} | ${offline.length}\`\n\n**Total des membres :** \`${totalMembers}\``); + + await message.reply({ embeds: [embed] }); + }, +}; \ No newline at end of file