UNPKG

oceanic.js

Version:

A NodeJS library for interfacing with Discord.

88 lines (76 loc) 2.94 kB
/** @module Types/Users */ import type { RawMember } from "./guilds"; import type { PremiumTypes } from "../Constants"; export interface RESTUser { accent_color?: number | null; avatar: string | null; avatar_decoration_data?: RawAvatarDecorationData | null; banner?: string | null; bot?: boolean; clan?: RawClan | null; collectibles?: RawCollectibles | null; discriminator: string; email?: string | null; flags?: number; global_name: string | null; id: string; locale?: string; member?: RawMember; mfa_enabled?: boolean; premium_type?: PremiumTypes; public_flags?: number; system?: boolean; username: string; verified?: boolean; } export interface RawUser extends Pick<RESTUser, "id" | "username" | "discriminator" | "avatar" | "avatar_decoration_data" | "bot" | "system" | "banner" | "accent_color" | "clan" | "collectibles">, Required<Pick<RESTUser, "public_flags" | "global_name">> {} export interface RawUserWithMember extends RawUser, Pick<RESTUser, "member"> {} export interface RawOAuthUser extends Pick<RESTUser, "id" | "username" | "discriminator" | "avatar" | "avatar_decoration_data" | "bot" | "system" | "global_name">, Required<Pick<RESTUser, "banner" | "accent_color" | "locale" | "mfa_enabled" | "email" | "verified" | "flags" | "public_flags" | "clan">> {} export interface RawExtendedUser extends Pick<RawOAuthUser, "avatar" | "avatar_decoration_data" | "bot" | "discriminator" | "email" | "flags" | "id" | "mfa_enabled" | "username" | "verified" | "global_name" | "clan"> {} export interface EditSelfUserOptions { /** The new avatar (buffer, or full data url). `null` to reset. */ avatar?: Buffer | string | null; /** The new banner (buffer, or full data url). `null` to reset. */ banner?: Buffer | string | null; /** The new username. */ username?: string; } export interface CreateGroupChannelOptions { /** An array of access tokens with the `gdm.join` scope. */ accessTokens: Array<string>; /** A dictionary of ids to nicknames, looks unused. */ nicks?: Record<string, string>; } export interface RawClan { badge: string; identity_enabled: boolean; identity_guild_id: string; tag: string; } export interface RawAvatarDecorationData { asset: string; sku_id: string; } export interface AvatarDecorationData { asset: string; skuID: string; } export interface RawCollectibles { nameplate?: RawNameplate; } export interface Collectibles { nameplate?: Nameplate; } export interface RawNameplate { asset: string; label: string; palette: NameplatePalette; sku_id: string; } export interface Nameplate { asset: string; label: string; palette: NameplatePalette; skuID: string; } export type NameplatePalette = "crimson" | "berry" | "sky" | "teal" | "forest" | "bubble_gum" | "violet" | "cobalt" | "clover" | "lemon" | "white";