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}`, | 				`**❯ 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); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
							
								
								
									
										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}`; | 		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…
	
	Add table
		Add a link
		
	
		Reference in a new issue