mirror of
				https://github.com/keanuplayz/TravBot-v3.git
				synced 2024-08-15 02:33:12 +00:00 
			
		
		
		
	Added userinfo and botinfo command.
This commit is contained in:
		
							parent
							
								
									00c4eb41bb
								
							
						
					
					
						commit
						3033b791f5
					
				
					 4 changed files with 122 additions and 11 deletions
				
			
		
							
								
								
									
										48
									
								
								src/Commands/Utilities/Botinfo.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								src/Commands/Utilities/Botinfo.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -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}`, | ||||
| 				'\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(); | ||||
| 		message.channel.send(embed); | ||||
| 	} | ||||
|  |  | |||
							
								
								
									
										59
									
								
								src/Commands/Utilities/Userinfo.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								src/Commands/Utilities/Userinfo.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -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}`; | ||||
| 	} | ||||
| 
 | ||||
| 	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() { | ||||
| 		return glob(`${this.directory}commands/**/*.js`).then(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…
	
	Add table
		Add a link
		
	
		Reference in a new issue