mirror of
https://github.com/discordeno/discordeno.git
synced 2026-09-17 08:47:22 +00:00
feat: add support for new username system (#3035)
* feat: add support for new username system * fix: default avatar calculation in avatarUrl(), also remove support for old system * fix: use description from docs for user.globalName * fix: typings * fix: avatarUrl() to support both old and new username system
This commit is contained in:
@@ -334,6 +334,7 @@ export interface Transformers {
|
|||||||
}
|
}
|
||||||
user: {
|
user: {
|
||||||
username: boolean
|
username: boolean
|
||||||
|
globalName: boolean
|
||||||
locale: boolean
|
locale: boolean
|
||||||
flags: boolean
|
flags: boolean
|
||||||
premiumType: boolean
|
premiumType: boolean
|
||||||
@@ -672,6 +673,7 @@ export function createTransformers(options: Partial<Transformers>): Transformers
|
|||||||
},
|
},
|
||||||
user: {
|
user: {
|
||||||
username: false,
|
username: false,
|
||||||
|
globalName: false,
|
||||||
locale: false,
|
locale: false,
|
||||||
flags: false,
|
flags: false,
|
||||||
premiumType: false,
|
premiumType: false,
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ export function transformUserToDiscordUser(bot: Bot, payload: User): DiscordUser
|
|||||||
return {
|
return {
|
||||||
id: payload.id.toString(),
|
id: payload.id.toString(),
|
||||||
username: payload.username,
|
username: payload.username,
|
||||||
|
global_name: payload.globalName,
|
||||||
discriminator: payload.discriminator,
|
discriminator: payload.discriminator,
|
||||||
avatar: payload.avatar ? iconBigintToHash(payload.avatar) : null,
|
avatar: payload.avatar ? iconBigintToHash(payload.avatar) : null,
|
||||||
locale: payload.locale,
|
locale: payload.locale,
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ export function transformUser(bot: Bot, payload: DiscordUser): User {
|
|||||||
if (props.publicFlags) user.publicFlags = new ToggleBitfield(payload.public_flags)
|
if (props.publicFlags) user.publicFlags = new ToggleBitfield(payload.public_flags)
|
||||||
if (payload.id && props.id) user.id = bot.transformers.snowflake(payload.id)
|
if (payload.id && props.id) user.id = bot.transformers.snowflake(payload.id)
|
||||||
if (payload.username && props.username) user.username = payload.username
|
if (payload.username && props.username) user.username = payload.username
|
||||||
|
if (payload.global_name && props.globalName) user.globalName = payload.global_name
|
||||||
if (payload.discriminator && props.discriminator) user.discriminator = payload.discriminator
|
if (payload.discriminator && props.discriminator) user.discriminator = payload.discriminator
|
||||||
if (payload.locale && props.locale) user.locale = payload.locale
|
if (payload.locale && props.locale) user.locale = payload.locale
|
||||||
if (payload.email && props.email) user.email = payload.email
|
if (payload.email && props.email) user.email = payload.email
|
||||||
@@ -61,6 +62,8 @@ export interface User extends BaseUser {
|
|||||||
toggles?: UserToggles
|
toggles?: UserToggles
|
||||||
/** The user's username, not unique across the platform */
|
/** The user's username, not unique across the platform */
|
||||||
username: string
|
username: string
|
||||||
|
/** The user's display name, if it is set. For bots, this is the application name */
|
||||||
|
globalName?: string
|
||||||
/** The user's chosen language option */
|
/** The user's chosen language option */
|
||||||
locale?: string
|
locale?: string
|
||||||
/** The flags on a user's account */
|
/** The flags on a user's account */
|
||||||
@@ -73,7 +76,7 @@ export interface User extends BaseUser {
|
|||||||
accentColor?: number
|
accentColor?: number
|
||||||
/** The user's id */
|
/** The user's id */
|
||||||
id: bigint
|
id: bigint
|
||||||
/** The user's 4-digit discord-tag */
|
/** The user's discord-tag */
|
||||||
discriminator: string
|
discriminator: string
|
||||||
/** The user's avatar hash */
|
/** The user's avatar hash */
|
||||||
avatar?: bigint
|
avatar?: bigint
|
||||||
|
|||||||
@@ -46,6 +46,8 @@ import type {
|
|||||||
export interface DiscordUser {
|
export interface DiscordUser {
|
||||||
/** The user's username, not unique across the platform */
|
/** The user's username, not unique across the platform */
|
||||||
username: string
|
username: string
|
||||||
|
/** The user's display name, if it is set. For bots, this is the application name */
|
||||||
|
global_name: string | null
|
||||||
/** The user's chosen language option */
|
/** The user's chosen language option */
|
||||||
locale?: string
|
locale?: string
|
||||||
/** The flags on a user's account */
|
/** The flags on a user's account */
|
||||||
@@ -58,7 +60,7 @@ export interface DiscordUser {
|
|||||||
accent_color?: number
|
accent_color?: number
|
||||||
/** The user's id */
|
/** The user's id */
|
||||||
id: string
|
id: string
|
||||||
/** The user's 4-digit discord-tag */
|
/** The user's discord-tag */
|
||||||
discriminator: string
|
discriminator: string
|
||||||
/** The user's avatar hash */
|
/** The user's avatar hash */
|
||||||
avatar: string | null
|
avatar: string | null
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ export function avatarUrl(
|
|||||||
options?.size ?? 128,
|
options?.size ?? 128,
|
||||||
options?.format,
|
options?.format,
|
||||||
)
|
)
|
||||||
: `https://cdn.discordapp.com/embed/avatars/${Number(discriminator) % 5}.png`
|
: `https://cdn.discordapp.com/embed/avatars/${discriminator === '0' ? (BigInt(userId) >> BigInt(22)) % BigInt(6) : Number(discriminator) % 5}.png`
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user