erium
Version:
Erium is Discord Bot Library made in typescript
45 lines (37 loc) • 1.52 kB
text/typescript
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}>`;
}
}