From 535c0544086acc5af3d2806a203d6a9d6f8b94f9 Mon Sep 17 00:00:00 2001 From: IRONM00N <64110067+IRONM00N@users.noreply.github.com> Date: Thu, 30 Sep 2021 20:45:54 -0400 Subject: globalUser, new embeded activies, per server avatars --- src/commands/info/avatar.ts | 26 +++++++++++++++----------- src/commands/info/userInfo.ts | 8 ++++---- 2 files changed, 19 insertions(+), 15 deletions(-) (limited to 'src/commands/info') diff --git a/src/commands/info/avatar.ts b/src/commands/info/avatar.ts index 7654d2f..1e6496a 100644 --- a/src/commands/info/avatar.ts +++ b/src/commands/info/avatar.ts @@ -1,4 +1,4 @@ -import { MessageEmbed, User } from 'discord.js'; +import { GuildMember, MessageEmbed, User } from 'discord.js'; import { BushCommand, BushMessage, BushSlashMessage } from '../../lib'; export default class AvatarCommand extends BushCommand { @@ -14,7 +14,7 @@ export default class AvatarCommand extends BushCommand { args: [ { id: 'user', - type: 'user', + customType: util.arg.union('member', 'globalUser'), prompt: { start: 'Who would you like to see the avatar of?', retry: '{error} Choose a valid user.', @@ -35,16 +35,20 @@ export default class AvatarCommand extends BushCommand { }); } - override async exec(message: BushMessage | BushSlashMessage, args: { user: User }): Promise { - const user = args.user ?? message.author; + override async exec(message: BushMessage | BushSlashMessage, args: { user: GuildMember | User }): Promise { + const params: { size: 2048; format: 'png'; dynamic: true } = { size: 2048, format: 'png', dynamic: true }; + const defaultAvatar = `https://cdn.discordapp.com/embed/avatars/${Math.ceil(Math.random() * 6) - 1}.png`; + + const member = (args.user ?? message.member) instanceof GuildMember ? args.user ?? message.member : undefined; + const user = args.user instanceof GuildMember ? args.user.user : args.user ?? message.author; + + const guildAvatar = member?.avatarURL(params); + + const embed = new MessageEmbed().setTimestamp().setColor(util.colors.default).setTitle(`${user.tag}'s Avatar`); + guildAvatar + ? embed.setImage(guildAvatar).setThumbnail(user.avatarURL(params) ?? defaultAvatar) + : embed.setImage(user.avatarURL(params) ?? defaultAvatar); - const embed = new MessageEmbed() - .setTimestamp() - .setColor(util.colors.default) - .setTitle(`${user.tag}'s Avatar`) - .setImage( - user.avatarURL({ size: 2048, format: 'png', dynamic: true }) ?? 'https://cdn.discordapp.com/embed/avatars/0.png' - ); await message.util.reply({ embeds: [embed] }); } } diff --git a/src/commands/info/userInfo.ts b/src/commands/info/userInfo.ts index b01c268..b55bbcf 100644 --- a/src/commands/info/userInfo.ts +++ b/src/commands/info/userInfo.ts @@ -4,12 +4,12 @@ import { MessageEmbed, Snowflake } from 'discord.js'; // TODO: Add bot information export default class UserInfoCommand extends BushCommand { public constructor() { - super('userinfo', { - aliases: ['userinfo', 'user', 'u'], + super('userInfo', { + aliases: ['user-info', 'user', 'u'], category: 'info', description: { - usage: 'userinfo [user]', - examples: ['userinfo 322862723090219008'], + usage: 'user-info [user]', + examples: ['user-info 322862723090219008'], content: 'Gives information about a specified user.' }, args: [ -- cgit