import { EmbedBuilder, SlashCommandBuilder, version } from 'discord.js'; import moment from "moment"; import format from "moment-duration-format"; import packageJson from '../../package.json' assert { type: 'json' }; const botversion = packageJson.version; export default { data: new SlashCommandBuilder() .setName('info') .setDescription('Obtenir des informations diverses.') .addSubcommand(subcommand => subcommand .setName('user') .setDescription('Obtenir des informations sur un utilisateur.') .addUserOption(option => option.setName('target') .setDescription('Utilisateur ciblé') .setRequired(true))) .addSubcommand(subcommand => subcommand .setName('server') .setDescription('Obtenir des informations sur le serveur.')) .addSubcommand(subcommand => subcommand .setName('april') .setDescription('Obtenir des informations sur April')), async execute(interaction, client) { switch(interaction.options.getSubcommand()) { case 'user': const user = interaction.options.getUser('target'); const member = interaction.options.getMember('target')//interaction.guild.members.cache.get(user.id); const embedUSERINFO = new EmbedBuilder() if (user) { embedUSERINFO .setAuthor({ name: user.tag, iconURL: user.avatarURL() }) .setColor("Blurple") .setThumbnail(user.avatarURL()) .setDescription(`<@${user.id}>`) .addFields([ { name: "👤 Informations sur le compte", value: `` +`<:invisibleSpacer:1038116840360120360><:iconID:1038063974807261195> **ID:** ${user.id}\n` +`<:invisibleSpacer:1038116840360120360><:iconProfile:1038064029064773724> **Nom complet:** ${user.tag}\n` +`<:invisibleSpacer:1038116840360120360><:iconTimer:1038063915151654932> **Créé:** ` , inline: false } ]); if (member){ embedUSERINFO.addFields([ { name: "📋 Information sur le membre", value: `<:invisibleSpacer:1038116840360120360><:iconTimer:1038063915151654932> **A rejoint le serveur:** \n` +`<:invisibleSpacer:1038116840360120360><:iconProfile:1038064029064773724> **Nickname:** ${member.nickname || `Aucun`}\n` +`<:invisibleSpacer:1038116840360120360><:IconAnnouncement:1038063917026508881> **Plus haut rôle:** ${member.roles.hoist ? member.roles.hoist.name : "Aucun"}` , inline: false }, { name: `📝 Rôles [${member.roles.cache.size - 1}]`, value: member.roles.cache.size ? member.roles.cache.map(roles => `**${roles}**`).slice(0, 20).join(" ") : "None", inline: false }]) } } else { embedUSERINFO.setDescription("Utilisateur inconnu") } await interaction.reply({ embeds: [embedUSERINFO], ephemeral: false }); break; case 'server': const owner = await interaction.guild.fetchOwner(); let openticketqty = 0; interaction.guild.channels.cache.forEach(element => { if (element.name.includes("bénévole") || element.name.includes("rémunéné")) openticketqty++; }); let takenticketsqty = 0; interaction.guild.channels.cache.forEach(element => { if ((element.name.includes("bénévole") &&!element.name.startsWith("bénévole")) || (element.name.includes("rémunéré") && !element.name.startsWith("rémunéré"))) takenticketsqty++; }); const embedSERVINFO = new EmbedBuilder() .setAuthor({ name: interaction.guild.name }) .setColor("Blurple") .setThumbnail(interaction.guild.iconURL()) .addFields( { name: `Propriétaire`, value: `<@${owner.user.id}>`, inline: true }, { name: `Date de création du serveur`, value: ``, inline: true }, { name: `ID du serveur`, value: `${interaction.guild.id}`, inline: false }, { name: `Nombre total de membres`, value: `${interaction.guild.memberCount}`, inline: true }, { name: "Nombre de salons", value: `${interaction.guild.channels.cache.size}`, inline: true }, { name: "Tickets", value: `**Ouverts** : ${openticketqty}\n**Pris en charge** : ${takenticketsqty}`, inline: true } ); await interaction.reply({ embeds:[embedSERVINFO], ephemeral: false }); break; case 'april': const uptime = moment.duration(client.uptime).format("\`D\` [days], \`H\` [hrs], \`m\` [mins], \`s\` [secs]"); const embedBOTINFO = new EmbedBuilder() .setAuthor({ name: "April" }) .setColor("Blurple") .setThumbnail(client.user.avatarURL({ size: 1024 })) .setDescription("____________________________") .setFields([ { name: "_____ \n\n│General", value: `_____`, inline: false, }, { name: "🆔┆Id", value: `${client.user.id}`, inline: true, }, { name: "💻┆Commandes", value: `\`${client.commands.size}\` commandes`, inline: true, }, { name: "🔧┆Developpeur", value: `<@!697438073646088194>`, inline: true, }, { name: "📅┆Créée", value: ``, inline: true, }, { name: "_____ \n\n│System", value: `_____`, inline: false, }, { name: "🆙┆Uptime", value: `${uptime}`, inline: true, }, { name: "⌛┆Latence API:", value: `\`${client.ws.ping}\`ms`, inline: true, }, { name: "🏷┆Version du Bot", value: `\`${botversion}\``, inline: true, }, { name: `🏷┆Version de ${process.versions.bun ? "Bun" : "Node.js"}`, value: `\`${process.versions.bun ? process.versions.bun : process.version}\``, inline: true, }, { name: "📂┆Version de Discord.js", value: `\`${version}\``, inline: true, }, { name: "💾┆RAM", value: `\`${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}\` MB`, inline: true, }, ]); await interaction.reply({ embeds: [embedBOTINFO], ephemeral: false }); break; } } };