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:
Awesome Stickz
2023-06-13 15:39:06 +00:00
committed by GitHub
parent c9c510b0cd
commit f9a5fc1afe
5 changed files with 11 additions and 3 deletions
+2
View File
@@ -334,6 +334,7 @@ export interface Transformers {
}
user: {
username: boolean
globalName: boolean
locale: boolean
flags: boolean
premiumType: boolean
@@ -672,6 +673,7 @@ export function createTransformers(options: Partial<Transformers>): Transformers
},
user: {
username: false,
globalName: false,
locale: false,
flags: false,
premiumType: false,
@@ -8,6 +8,7 @@ export function transformUserToDiscordUser(bot: Bot, payload: User): DiscordUser
return {
id: payload.id.toString(),
username: payload.username,
global_name: payload.globalName,
discriminator: payload.discriminator,
avatar: payload.avatar ? iconBigintToHash(payload.avatar) : null,
locale: payload.locale,
+4 -1
View File
@@ -32,6 +32,7 @@ export function transformUser(bot: Bot, payload: DiscordUser): User {
if (props.publicFlags) user.publicFlags = new ToggleBitfield(payload.public_flags)
if (payload.id && props.id) user.id = bot.transformers.snowflake(payload.id)
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.locale && props.locale) user.locale = payload.locale
if (payload.email && props.email) user.email = payload.email
@@ -61,6 +62,8 @@ export interface User extends BaseUser {
toggles?: UserToggles
/** The user's username, not unique across the platform */
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 */
locale?: string
/** The flags on a user's account */
@@ -73,7 +76,7 @@ export interface User extends BaseUser {
accentColor?: number
/** The user's id */
id: bigint
/** The user's 4-digit discord-tag */
/** The user's discord-tag */
discriminator: string
/** The user's avatar hash */
avatar?: bigint