pissbot-9000/commands/message/info/banner.js
2025-05-12 00:22:29 +02:00

68 lines
No EOL
2.3 KiB
JavaScript

const { paginator } = require('#client');
const { PERMISSION_GROUPS } = require('#constants');
const { createEmbed, page } = require("#utils/embed");
const { acknowledge } = require('#utils/interactions');
const { icon } = require('#utils/markdown');
const { editOrReply } = require("#utils/message");
const { getUser } = require("#utils/users");
module.exports = {
name: 'banner',
label: 'user',
aliases: ['b'],
metadata: {
description: 'Displays someones profile banner. Accepts IDs, Mentions, or Usernames.',
description_short: 'Get discord user avatars',
examples: ['avatar labsCore'],
category: 'info',
usage: 'avatar [<user>]',
slashCommmand: 'banner'
},
permissionsClient: [...PERMISSION_GROUPS.baseline],
run: async (context, args) => {
await acknowledge(context);
if(!args.user) args.user = context.userId;
let u = await getUser(context, args.user)
if(!u || !u.user) return editOrReply(context, createEmbed("warning", context, "No users found."))
let userBanner = u.user.bannerUrl ? u.user.bannerUrl + "?size=4096" : undefined;
if(!u.user.banner) userBanner = `https://lh3.googleusercontent.com/akBt-2Rz3efGuxAnOoSJbGuaqxZuRAI7ZUYKBgYZLT4vsk34qVWoAm3o6--RxupzZpayLSRsxO1LCwBECyBT_giQ3xhLMR03z7xngvm4m9ZgQ2Gya1i-3Q%3Dw1920-h677-bc0x0055aa-fcrop64%3D1%2C0000000000010001-rj-b36-c0x${u.user.accentColor.toString(16)}-s`;
let pages = []
if(!u.member?.banner && u.member) u.member = await context.guild.fetchMember(u.user.id)
if(u.member?.banner) {
pages.push(page(createEmbed("default", context, {
image: {
url: `https://cdn.discordapp.com/guilds/${context.guild.id}/users/${u.member.id}/banners/${u.member.banner}.png` + "?size=4096"
}
})))
pages.push(page(createEmbed("default", context, {
image: {
url: u.user.bannerUrl.includes("?") ? u.user.bannerUrl : u.user.bannerUrl + '?size=4096'
}
})))
await paginator.createPaginator({
context,
pages,
buttons: [{
customId: "next",
emoji: icon("button_user_profile_swap"),
label: "Toggle Server/Global Banner",
style: 2
}]
});
} else {
return editOrReply(context, createEmbed("default", context, {
image: {
url: userBanner
}
}))
}
},
};