68 lines
3.1 KiB
JavaScript
68 lines
3.1 KiB
JavaScript
import { EmbedBuilder, SlashCommandBuilder } from "discord.js";
|
||
|
||
export default {
|
||
name: "info",
|
||
description: "Informationen über den Bot",
|
||
aliases: ["botinfo"],
|
||
guild: ["all"],
|
||
nsfw: false,
|
||
user_permissions: [],
|
||
bot_permissions: [],
|
||
args_required: 0,
|
||
args_usage: "",
|
||
cooldown: 5,
|
||
|
||
data: new SlashCommandBuilder()
|
||
.setName("info")
|
||
.setDescription("Zeigt Informationen über den Bot an"),
|
||
|
||
async execute(client, ctx) {
|
||
let totalMembers = 0;
|
||
client.bot.guilds.cache.forEach((guild) => { totalMembers += guild.memberCount; });
|
||
|
||
const uptime = getUptime(client.bot);
|
||
const memUsed = (process.memoryUsage().heapUsed / 1024 / 1024).toFixed(1);
|
||
const nodeVer = process.version;
|
||
|
||
const infoEmbed = new EmbedBuilder()
|
||
.setAuthor({
|
||
name: client.config.authorName,
|
||
url: client.config.authorGithub,
|
||
iconURL: client.bot.user.displayAvatarURL(),
|
||
})
|
||
.setColor(ctx.guild.members.me.displayHexColor)
|
||
.setTitle(`ℹ️ ${client.bot.user.username} – Bot-Informationen`)
|
||
.setThumbnail(client.bot.user.displayAvatarURL())
|
||
.addFields([
|
||
{ name: "🤖 Bot-Name", value: client.config.botName, inline: true },
|
||
{ name: "👨💻 Entwickler", value: `[${client.config.authorName}](${client.config.authorGithub})`, inline: true },
|
||
{ name: "📦 Version", value: client.packageData.version, inline: true },
|
||
{ name: "⏱️ Laufzeit", value: uptime, inline: true },
|
||
{ name: "🌐 Server", value: `${client.bot.guilds.cache.size}`, inline: true },
|
||
{ name: "👥 Nutzer", value: `${totalMembers.toLocaleString("de-DE")}`, inline: true },
|
||
{ name: "💬 Kanäle", value: `${client.bot.channels.cache.size}`, inline: true },
|
||
{ name: "🔧 Befehle", value: `${client.commands.size}`, inline: true },
|
||
{ name: "💾 Speicher", value: `${memUsed} MB`, inline: true },
|
||
{ name: "🟢 Node.js", value: nodeVer, inline: true },
|
||
{ name: "📚 discord.js", value: `v14`, inline: true },
|
||
{ name: "🔗 Einladen", value: `[Bot einladen](https://discord.com/oauth2/authorize?client_id=${client.config.inviteClientID}&scope=bot&permissions=8)`, inline: true },
|
||
])
|
||
.setFooter({ text: `${client.config.botName} • SpigotMC Plugin Update Tracker` })
|
||
.setTimestamp();
|
||
|
||
return ctx.reply({ embeds: [infoEmbed] });
|
||
},
|
||
};
|
||
|
||
function getUptime(bot) {
|
||
let total = bot.uptime / 1000;
|
||
const days = Math.floor(total / 86400); total %= 86400;
|
||
const hours = Math.floor(total / 3600); total %= 3600;
|
||
const minutes = Math.floor(total / 60);
|
||
const seconds = Math.floor(total % 60);
|
||
|
||
if (days > 0) return `${days}T ${hours}Std ${minutes}Min ${seconds}Sek`;
|
||
if (hours > 0) return `${hours}Std ${minutes}Min ${seconds}Sek`;
|
||
if (minutes > 0) return `${minutes}Min ${seconds}Sek`;
|
||
return `${seconds}Sek`;
|
||
} |