flag to fetch user's banner with avatar command

This commit is contained in:
Erik 2022-08-13 17:30:14 +03:00
parent c32ef40d0c
commit d664e98909
Signed by: Navy.gif
GPG Key ID: 811EC0CD80E7E5FB
2 changed files with 20 additions and 7 deletions

View File

@ -8,6 +8,9 @@ Use the member option to display their server avatar.
[COMMAND_AVATAR_FORMATERROR]
Unable to find an avatar with those arguments, try a different size or format.
[COMMAND_AVATAR_NOBANNER]
User doesn't have a banner.
[COMMAND_REMIND_CONFIRM]
Will remind you about '{reminder}' in {time}

View File

@ -11,7 +11,7 @@ class AvatarCommand extends SlashCommand {
name: 'size',
description: 'The width/height value',
// type: 'INTEGER',
choices: [16, 32, 64, 128, 256, 512, 1024, 2048].map((i) => {
choices: [16, 32, 64, 128, 256, 512, 1024, 2048, 4096].map((i) => {
return { name: `${i}`, value: `${i}` };
}),
flag: true
@ -32,19 +32,29 @@ class AvatarCommand extends SlashCommand {
description: 'Use this for the user\'s server avatar',
type: 'MEMBER',
flag: true
}, {
name: 'banner',
type: 'BOOLEAN',
description: 'Fetch the user\'s banner',
flag: true, valueOptional: true, defaultValue: true
}]
});
}
async execute(invoker, { format, size, user, member }) {
async execute(invoker, { format, size, user, member, banner }) {
const target = member?.value || user?.value || invoker.member || invoker.author;
const _target = member?.value || user?.value || invoker.member || invoker.author;
const target = await _target.fetch();
format = format?.value || 'webp';
size = parseInt(size?.value || 256);
banner = banner?.value || false;
let avatar = null;
let imageUrl = null;
try {
avatar = target.displayAvatarURL({ format, size, dynamic: true });
if (banner) {
imageUrl = target.bannerURL({ format, size, dynamic: true });
if(!target.banner) return { emoji: 'failure', index: 'COMMAND_AVATAR_NOBANNER' };
} else imageUrl = target.displayAvatarURL({ format, size, dynamic: true });
} catch (err) {
return { emoji: 'failure', index: 'COMMAND_AVATAR_FORMATERROR' };
}
@ -52,8 +62,8 @@ class AvatarCommand extends SlashCommand {
return {
embed: {
title: target.user?.tag || target.tag,
description: `[**Link**](${avatar})`,
image: { url: avatar },
description: `[**Link**](${imageUrl})`,
image: { url: imageUrl },
footer: { text: `• Format: .${format} | Size: ${size}` }
}
};