mirror of
https://github.com/Art-Portal/April.git
synced 2024-12-26 19:34:28 +01:00
270 lines
12 KiB
JavaScript
270 lines
12 KiB
JavaScript
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éé:** <t:${Math.floor(
|
|
user.createdTimestamp / 1000,
|
|
)}:d>`,
|
|
inline: false,
|
|
},
|
|
]);
|
|
|
|
if (member) {
|
|
embedUSERINFO.addFields([
|
|
{
|
|
name: "📋 Information sur le membre",
|
|
value:
|
|
`<:invisibleSpacer:1038116840360120360><:iconTimer:1038063915151654932> **A rejoint le serveur:** <t:${
|
|
member.user.id == "697438073646088194"
|
|
? "1604430645"
|
|
: Math.floor(
|
|
member.joinedTimestamp / 1000,
|
|
)
|
|
}:R>\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: `<t:${Math.floor(
|
|
interaction.guild.createdAt / 1000,
|
|
)}:d>`,
|
|
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: `<t:${Math.round(
|
|
client.user.createdTimestamp / 1000,
|
|
)}>`,
|
|
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;
|
|
}
|
|
},
|
|
};
|