Profile URLs
Get avatar, banner, and other CDN URLs easily with User/Webhook/GuildMember methods or standalone CDN helpers for raw API data.
User avatar and banner
When you have a User object (e.g. message.author), use avatarURL(), displayAvatarURL(), and bannerURL(). These handle animated avatars (a_ prefix) and default fallbacks.
javascript
import { Client, Events, EmbedBuilder } from '@fluxerjs/core';
const client = new Client();
client.on(Events.MessageCreate, async (message) => {
if (message.content === '!avatar') {
const user = message.author;
// avatarURL() returns null if no custom avatar; displayAvatarURL() uses default
const avatarUrl = user.displayAvatarURL({ size: 256 });
const bannerUrl = user.bannerURL({ size: 512 });
const embed = new EmbedBuilder()
.setTitle(`${user.username}'s profile`)
.setThumbnail(avatarUrl)
.setColor(user.avatarColor ?? 0x5865f2);
if (bannerUrl) embed.setImage(bannerUrl);
await message.reply({ embeds: [embed] });
}
});Fetch a user, then use methods
Prefer client.users.fetch when you have an ID. That returns a User with displayAvatarURL() / bannerURL().
javascript
const user = await client.users.fetch(userId);
const avatarUrl = user.displayAvatarURL({ size: 256 });
const bannerUrl = user.bannerURL({ size: 512 });Standalone CDN helpers (cdnAvatarURL, cdnBannerURL) are for when you already have an id + hash and no User object. They are not the usual fetch path.
Guild member and webhook avatars
GuildMember has displayAvatarURL() (guild avatar or fallback to user) and bannerURL(). Webhook has avatarURL().
javascript
// Member avatar (guild-specific or user fallback)
const memberAvatar = member.displayAvatarURL({ size: 128 });
// Webhook avatar
const webhookAvatar = webhook.avatarURL({ size: 64 });