diff --git a/bot/commands/Bot/about.js b/bot/commands/Bot/about.js new file mode 100644 index 0000000..4da802b --- /dev/null +++ b/bot/commands/Bot/about.js @@ -0,0 +1,50 @@ +const Command = require('../../base/Command.js'); +const { version } = require('discord.js'); +const moment = require('moment'); +const { EmbedBuilder } = require('@discordjs/builders'); +require('moment-duration-format'); + + +module.exports = class About extends Command { + constructor (name, category) { + super (name, category); + this.name = name, + this.description = 'Bot information and statistics', + this.category = category, + this.usage = '/about'; + } + + async run (client, interaction, data) { //eslint-disable-line no-unused-vars + const uptime = moment.duration(client.uptime).format(' D [days], H [hrs], m [mins], s [secs]'); + + let build = 'production'; + + if (client.config.developmentMode === true) { + build = 'development'; + } + + embed = new EmbedBuilder() + .setColor(client.functions.embedColor(interaction.guild) + .setThumbnail(client.user.vatarURL({format: "png"})) + .setTitle('About me!') + .addFields([ + { + name: 'General', + value: `• users: \`${client.users.cache.size}\`\n• channels: \`${client.channels.cache.size}\`\n• servers: \`${client.guilds.cache.size}\`\n• commands: \`${client.commands.size}\`\n• uptime: \`${uptime}\``, + inline: true + }, + { + name: 'Technical', + value: `• RAM Usage: \`${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)} MB\`\n• Host OS: \`${require("os").type}\`\n• bot version: \`${client.version.number} (${build})\`\n• discord.js version: \`v${version}\`\n• node.js version: \`${process.version}\``, + inline: true + }, + { + name: 'Links', + value: '[Support](https://discord.gg/HCF8mdv) | [Git](https://gitdab.com/embee/woomy)' + } + ]) + interaction.reply({embeds: embed}) + + + } +}; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f1847cc..2483dac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "erlpack": "^0.1.3", "eslint": "^8.29.0", "fs-readdir-recursive": "^1.1.0", + "moment": "^2.29.4", "node-fetch": "^2.6.7", "pg": "^8.5.1", "pg-format": "^1.0.4", @@ -1042,6 +1043,14 @@ "node": "*" } }, + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "engines": { + "node": "*" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -2514,6 +2523,11 @@ "brace-expansion": "^1.1.7" } }, + "moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", diff --git a/package.json b/package.json index bd8900c..624eadb 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "erlpack": "^0.1.3", "eslint": "^8.29.0", "fs-readdir-recursive": "^1.1.0", + "moment": "^2.29.4", "node-fetch": "^2.6.7", "pg": "^8.5.1", "pg-format": "^1.0.4",