Added userinfo and botinfo command.
This commit is contained in:
parent
00c4eb41bb
commit
3033b791f5
|
@ -0,0 +1,48 @@
|
||||||
|
const Command = require('../../Structures/Command');
|
||||||
|
const { MessageEmbed, version: djsversion } = require('discord.js');
|
||||||
|
const { version } = require('../../../package.json');
|
||||||
|
const { utc } = require('moment');
|
||||||
|
const os = require('os');
|
||||||
|
const ms = require('ms');
|
||||||
|
|
||||||
|
module.exports = class extends Command {
|
||||||
|
|
||||||
|
constructor(...args) {
|
||||||
|
super(...args, {
|
||||||
|
aliases: ['info', 'bot', 'botinfo']
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
run(message) {
|
||||||
|
const core = os.cpus()[0];
|
||||||
|
const embed = new MessageEmbed()
|
||||||
|
.setThumbnail(this.client.user.displayAvatarURL())
|
||||||
|
.setColor(message.guild.me.displayHexColor || 'BLUE')
|
||||||
|
.addField('General', [
|
||||||
|
`**❯ Client:** ${this.client.user.tag} (${this.client.user.id})`,
|
||||||
|
`**❯ Commands:** ${this.client.commands.size}`,
|
||||||
|
`**❯ Servers:** ${this.client.guilds.cache.size.toLocaleString()}`,
|
||||||
|
`**❯ Users:** ${this.client.guilds.cache.reduce((a, b) => a + b.memberCount, 0).toLocaleString()}`,
|
||||||
|
`**❯ Channels:** ${this.client.channels.cache.size.toLocaleString()}`,
|
||||||
|
`**❯ Creation Date:** ${utc(this.client.user.createdTimestamp).format('Do MMMM YYYY HH:mm:ss')}`,
|
||||||
|
`**❯ Node.JS:** ${process.version}`,
|
||||||
|
`**❯ Version:** v${version}`,
|
||||||
|
`**❯ Discord.JS:** ${djsversion}`,
|
||||||
|
'\u200b'
|
||||||
|
])
|
||||||
|
.addField('System', [
|
||||||
|
`**❯ Platform:** ${process.platform}`,
|
||||||
|
`**❯ Uptime:** ${ms(os.uptime() * 1000, { long: true })}`,
|
||||||
|
`**❯ CPU:**`,
|
||||||
|
`\u3000 • Cores: ${os.cpus().length}`,
|
||||||
|
`\u3000 • Model: ${core.model}`,
|
||||||
|
`\u3000 • Speed: ${core.speed}MHz`,
|
||||||
|
`**❯ Memory:**`,
|
||||||
|
`\u3000 • Total: ${this.client.utils.formatBytes(process.memoryUsage().heapTotal)}`,
|
||||||
|
`\u3000 • Used: ${this.client.utils.formatBytes(process.memoryUsage().heapTotal)}`
|
||||||
|
])
|
||||||
|
.setTimestamp();
|
||||||
|
message.channel.send(embed);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
|
@ -81,7 +81,7 @@ module.exports = class extends Command {
|
||||||
`**❯ Offline:** ${members.filter(member => member.presence.status === 'offline').size}`,
|
`**❯ Offline:** ${members.filter(member => member.presence.status === 'offline').size}`,
|
||||||
'\u200b'
|
'\u200b'
|
||||||
])
|
])
|
||||||
.addField(`Roles [${roles.length - 1}]`, roles.length < 10 ? roles.join(', ') : roles.length > 10 ? this.client.utils.trimArray(roles) : None)
|
.addField(`Roles [${roles.length - 1}]`, roles.length < 10 ? roles.join(', ') : roles.length > 10 ? this.client.utils.trimArray(roles) : 'None')
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
message.channel.send(embed);
|
message.channel.send(embed);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
const Command = require('../../Structures/Command');
|
||||||
|
const { MessageEmbed } = require('discord.js');
|
||||||
|
const moment = require('moment');
|
||||||
|
|
||||||
|
const flags = {
|
||||||
|
DISCORD_EMPLOYEE: 'Discord Employee',
|
||||||
|
DISCORD_PARTNER: 'Discord Partner',
|
||||||
|
BUGHUNTER_LEVEL_1: 'Bug Hunter (Level 1)',
|
||||||
|
BUGHUNTER_LEVEL_2: 'Bug Hunter (Level 2)',
|
||||||
|
HYPESQUAD_EVENTS: 'HypeSquad Events',
|
||||||
|
HOUSE_BRAVERY: 'House of Bravery',
|
||||||
|
HOUSE_BRILLIANCE: 'House of Brilliance',
|
||||||
|
HOUSE_BALANCE: 'House of Balance',
|
||||||
|
EARLY_SUPPORTER: 'Early Supporter',
|
||||||
|
TEAM_USER: 'Team User',
|
||||||
|
SYSTEM: 'System',
|
||||||
|
VERIFIED_BOT: 'Verified Bot',
|
||||||
|
VERIFIED_DEVELOPER: 'Verified Bot Developer'
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = class extends Command {
|
||||||
|
|
||||||
|
constructor(...args) {
|
||||||
|
super(...args, {
|
||||||
|
aliases: ['user', 'ui']
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async run(message, [target]) {
|
||||||
|
const member = message.mentions.members.last() || message.guild.members.cache.get(target) || message.member;
|
||||||
|
const roles = member.roles.cache
|
||||||
|
.sort((a, b) => b.position - a.position)
|
||||||
|
.map(role => role.toString())
|
||||||
|
.slice(0, -1);
|
||||||
|
const userFlags = member.user.flags.toArray();
|
||||||
|
|
||||||
|
const embed = new MessageEmbed()
|
||||||
|
.setThumbnail(member.user.displayAvatarURL({ dynamic: true, size: 512 }))
|
||||||
|
.setColor(member.displayHexColor || 'BLUE')
|
||||||
|
.addField('User', [
|
||||||
|
`**❯ Username:** ${member.user.username}`,
|
||||||
|
`**❯ Discriminator:** ${member.user.discriminator}`,
|
||||||
|
`**❯ ID:** ${member.id}`,
|
||||||
|
`**❯ Flags:** ${userFlags.length ? userFlags.map(flag => flags[flag]).join(', ') : 'None'}`,
|
||||||
|
`**❯ Avatar:** [Link to avatar](${member.user.displayAvatarURL({ dynamic: true })})`,
|
||||||
|
`**❯ Time Created:** ${moment(member.user.createdTimestamp).format('LT')} ${moment(member.user.createdTimestamp).format('LL')} ${moment(member.user.createdTimestamp).fromNow()}`,
|
||||||
|
`**❯ Status:** ${member.user.presence.status}`,
|
||||||
|
`**❯ Game:** ${member.user.presence.game || 'Not playing a game.'}`
|
||||||
|
])
|
||||||
|
.addField('Member', [
|
||||||
|
`**❯ Highest Role:** ${member.roles.highest.id === message.guild.id ? 'None' : member.roles.highest.name}`,
|
||||||
|
`**❯ Server Join Date:** ${moment(member.joinedAt).format('LL LTS')}`,
|
||||||
|
`**❯ Hoist Role:** ${member.roles.hoist ? member.roles.hoist.name : 'None'}`,
|
||||||
|
`**❯ Roles:** [${roles.length}]: ${roles.length < 10 ? roles.join(', ') : roles.length > 10 ? this.client.utils.trimArray(roles) : 'None'}`,
|
||||||
|
]);
|
||||||
|
return message.channel.send(embed);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
|
@ -19,6 +19,20 @@ module.exports = class Util {
|
||||||
return `${path.dirname(require.main.filename)}${path.sep}`;
|
return `${path.dirname(require.main.filename)}${path.sep}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
trimArray(arr, maxLen = 10) {
|
||||||
|
if (arr.length > maxLen) {
|
||||||
|
const len = arr.length - maxLen;
|
||||||
|
arr = arr.slice(0, maxLen);
|
||||||
|
arr.push(`${len} more...`);
|
||||||
|
}
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
formatBytes(bytes) {
|
||||||
|
if (bytes === 0) return '0 Bytes';
|
||||||
|
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
||||||
|
const i = Math.floor(Math.log(bytes) / Math.log(1024));
|
||||||
|
return `${parseFloat((bytes / Math.pow(1024, i)).toFixed(2))} ${sizes[i]}`;
|
||||||
|
}
|
||||||
async loadCommands() {
|
async loadCommands() {
|
||||||
return glob(`${this.directory}commands/**/*.js`).then(commands => {
|
return glob(`${this.directory}commands/**/*.js`).then(commands => {
|
||||||
for (const commandFile of commands) {
|
for (const commandFile of commands) {
|
||||||
|
@ -37,14 +51,4 @@ module.exports = class Util {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
trimArray(arr, maxLen = 10) {
|
|
||||||
if (arr.length > maxLen) {
|
|
||||||
const len = arr.length - maxLen;
|
|
||||||
arr = arr.slice(0, maxLen);
|
|
||||||
arr.push(`${len} more...`);
|
|
||||||
}
|
|
||||||
return arr;
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue