#9634 djs
This commit is contained in:
@@ -321,12 +321,12 @@ class GuildMember extends Base {
|
||||
}
|
||||
|
||||
/**
|
||||
* The nickname of this member, or their username if they don't have one
|
||||
* The nickname of this member, or their user display name if they don't have one
|
||||
* @type {?string}
|
||||
* @readonly
|
||||
*/
|
||||
get displayName() {
|
||||
return this.nickname ?? this.user.username;
|
||||
return this.nickname ?? this.user.displayName;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -1,5 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
const process = require('node:process');
|
||||
const { Collection } = require('@discordjs/collection');
|
||||
const Base = require('./Base');
|
||||
const ClientApplication = require('./ClientApplication');
|
||||
@@ -9,6 +10,9 @@ const { Error } = require('../errors');
|
||||
const { RelationshipTypes, NitroType } = require('../util/Constants');
|
||||
const SnowflakeUtil = require('../util/SnowflakeUtil');
|
||||
const UserFlags = require('../util/UserFlags');
|
||||
const Util = require('../util/Util');
|
||||
|
||||
let tagDeprecationEmitted = false;
|
||||
|
||||
/**
|
||||
* Represents a user on Discord.
|
||||
@@ -94,6 +98,16 @@ class User extends Base {
|
||||
this.username ??= null;
|
||||
}
|
||||
|
||||
if ('global_name' in data) {
|
||||
/**
|
||||
* The global name of this user
|
||||
* @type {?string}
|
||||
*/
|
||||
this.globalName = data.global_name;
|
||||
} else {
|
||||
this.globalName ??= null;
|
||||
}
|
||||
|
||||
if ('bot' in data) {
|
||||
/**
|
||||
* Whether or not the user is a bot
|
||||
@@ -110,7 +124,8 @@ class User extends Base {
|
||||
|
||||
if ('discriminator' in data) {
|
||||
/**
|
||||
* A discriminator based on username for the user
|
||||
* The discriminator of this user
|
||||
* <info>`'0'`, or a 4-digit stringified number if they're using the legacy username system</info>
|
||||
* @type {?string}
|
||||
*/
|
||||
this.discriminator = data.discriminator;
|
||||
@@ -453,7 +468,8 @@ class User extends Base {
|
||||
* @readonly
|
||||
*/
|
||||
get defaultAvatarURL() {
|
||||
return this.client.rest.cdn.DefaultAvatar(this.discriminator % 5);
|
||||
const index = this.discriminator === '0' ? Util.calculateUserDefaultAvatarIndex(this.id) : this.discriminator % 5;
|
||||
return this.client.rest.cdn.DefaultAvatar(index);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -527,12 +543,32 @@ class User extends Base {
|
||||
}
|
||||
|
||||
/**
|
||||
* The Discord "tag" (e.g. `hydrabolt#0001`) for this user
|
||||
* The tag of this user
|
||||
* <info>This user's username, or their legacy tag (e.g. `hydrabolt#0001`)
|
||||
* if they're using the legacy username system</info>
|
||||
* @type {?string}
|
||||
* @deprecated Use {@link User#username} instead.
|
||||
* @readonly
|
||||
*/
|
||||
get tag() {
|
||||
return typeof this.username === 'string' ? `${this.username}#${this.discriminator}` : null;
|
||||
if (!tagDeprecationEmitted) {
|
||||
process.emitWarning('User#tag is deprecated. Use User#username instead.', 'DeprecationWarning');
|
||||
tagDeprecationEmitted = true;
|
||||
}
|
||||
return typeof this.username === 'string'
|
||||
? this.discriminator === '0'
|
||||
? this.username
|
||||
: `${this.username}#${this.discriminator}`
|
||||
: null;
|
||||
}
|
||||
|
||||
/**
|
||||
* The global name of this user, or their username if they don't have one
|
||||
* @type {?string}
|
||||
* @readonly
|
||||
*/
|
||||
get displayName() {
|
||||
return this.globalName ?? this.username;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -574,6 +610,7 @@ class User extends Base {
|
||||
this.id === user.id &&
|
||||
this.username === user.username &&
|
||||
this.discriminator === user.discriminator &&
|
||||
this.globalName === user.globalName &&
|
||||
this.avatar === user.avatar &&
|
||||
this.flags?.bitfield === user.flags?.bitfield &&
|
||||
this.banner === user.banner &&
|
||||
@@ -594,6 +631,7 @@ class User extends Base {
|
||||
this.id === user.id &&
|
||||
this.username === user.username &&
|
||||
this.discriminator === user.discriminator &&
|
||||
this.globalName === user.global_name &&
|
||||
this.avatar === user.avatar &&
|
||||
this.flags?.bitfield === user.public_flags &&
|
||||
('banner' in user ? this.banner === user.banner : true) &&
|
||||
|
Reference in New Issue
Block a user