From 028999eef1a9bea5d55af743cc8cfa2224996f52 Mon Sep 17 00:00:00 2001 From: derpystuff <3515180-derpystuff@users.noreply.gitlab.com> Date: Fri, 13 Jan 2023 16:12:19 +0100 Subject: [PATCH] show guild avatars --- commands/message/info/avatar.js | 49 ++++++++++++++++++++++++++------- labscore/utils/embed.js | 7 +++++ 2 files changed, 46 insertions(+), 10 deletions(-) diff --git a/commands/message/info/avatar.js b/commands/message/info/avatar.js index cc9eed3..351493b 100644 --- a/commands/message/info/avatar.js +++ b/commands/message/info/avatar.js @@ -1,6 +1,8 @@ -const { createEmbed } = require("../../../labscore/utils/embed"); +const { createEmbed, page } = require("../../../labscore/utils/embed"); const { editOrReply } = require("../../../labscore/utils/message"); -const { getUser } = require("../../../labscore/utils/users"); +const { getMember } = require("../../../labscore/utils/users"); + +const { paginator } = require('../../../labscore/client'); module.exports = { name: 'avatar', @@ -15,13 +17,40 @@ module.exports = { }, run: async (context, args) => { context.triggerTyping(); - let u = {}; - if(!args.user) { u.user = context.user } else { u = await getUser(context, args.user) } - if(!u.user) return editOrReply(context, { embeds: [createEmbed("warning", context, "No users found.")] }) - return editOrReply(context, { embeds: [createEmbed("default", context, { - image: { - url: u.user.avatarUrl + '?size=4096' - } - })] }) + if(!args.user) args.user = context.userId; + let u = await getMember(context, args.user) + if(!u) return editOrReply(context, { embeds: [createEmbed("warning", context, "No users found.")] }) + + if(u.avatar !== null) { + let pages = [] + pages.push(page(createEmbed("default", context, { + image: { + url: u.avatarUrl + '?size=4096' + } + }))) + + pages.push(page(createEmbed("default", context, { + image: { + url: u.user.avatarUrl + '?size=4096' + } + }))) + + const paging = await paginator.createPaginator({ + context, + pages, + buttons: [{ + customId: "next", + emoji: "🖼️", + label: "Switch Avatar", + style: 1 + }] + }); + } else { + return editOrReply(context, createEmbed("default", context, { + image: { + url: u.user.avatarUrl + '?size=4096' + } + })) + } }, }; \ No newline at end of file diff --git a/labscore/utils/embed.js b/labscore/utils/embed.js index ec01512..08087bf 100644 --- a/labscore/utils/embed.js +++ b/labscore/utils/embed.js @@ -129,4 +129,11 @@ module.exports.formatPaginationEmbeds = function(embeds){ } } return formatted; +} + +// Creates a page for our paginator. simple helper so we dont have to do {embeds:[]} every time +module.exports.page = function(embed){ + return { + embeds: [embed] + } } \ No newline at end of file