UNPKG

erium

Version:

Erium is Discord Bot Library made in typescript

45 lines (37 loc) 1.52 kB
import { Base } from "../structures/Base"; import Client from "../structures/Client"; import type { Snowflake } from "discord-api-types/globals"; import { APIUser } from "discord-api-types/v10"; import ClientUser from "../structures/ClientUser"; import { ImageSize, ImageUrlOptions, ImageFormat } from "../types/Image"; import { Endpoints } from "../Endpoints"; export const AVATAR = (user: string, hash: string, format: ImageFormat, size: ImageSize) => `${Endpoints.BASE_IMAGE_URL}/avatars/${user}/${hash}.${format}?size${size}`; export const DEFAULT_AVATAR = (discriminator: string) => `${Endpoints.BASE_IMAGE_URL}/embed/avatars/${discriminator}.png`; export class User extends Base { public data: APIUser; public avatar: string | null; constructor(client: Client, data: APIUser) { super(client); new ClientUser( data.id, data.discriminator, data.verified, data.id, data.public_flags ? data.public_flags : 0, data.email, data.bot, data.avatar ); this.data = data; this.avatar = data.avatar; } getAvatarURL({ format, size, dynamic }: ImageUrlOptions): string { if (!format) format = "jpeg"; if (!size) size = 4096; if (!this.avatar) return DEFAULT_AVATAR(`${parseInt(this.data.discriminator, 10) % 5}`); return AVATAR(this.data?.id, this.avatar, format, size); } toString() { return `<${this.data.id}>`; } }