feat(GuildMember): v13 add flags

This commit is contained in:
Elysia
2023-02-19 12:07:03 +07:00
parent 92f21d9b9c
commit fae7c596d1
5 changed files with 86 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ const VoiceState = require('./VoiceState');
const TextBasedChannel = require('./interfaces/TextBasedChannel');
const { Error } = require('../errors');
const GuildMemberRoleManager = require('../managers/GuildMemberRoleManager');
const GuildMemberFlags = require('../util/GuildMemberFlags');
const Permissions = require('../util/Permissions');
const Util = require('../util/Util');
@@ -96,6 +97,16 @@ class GuildMember extends Base {
this.communicationDisabledUntilTimestamp =
data.communication_disabled_until && Date.parse(data.communication_disabled_until);
}
if ('flags' in data) {
/**
* The flags of this member
* @type {Readonly<GuildMemberFlags>}
*/
this.flags = new GuildMemberFlags(data.flags).freeze();
} else {
this.flags ??= new GuildMemberFlags().freeze();
}
}
_ProfilePatch(data) {
@@ -408,6 +419,16 @@ class GuildMember extends Base {
return this.edit({ nick }, reason);
}
/**
* Sets the flags for this member.
* @param {GuildMemberFlagsResolvable} flags The flags to set
* @param {string} [reason] Reason for setting the flags
* @returns {Promise<GuildMember>}
*/
setFlags(flags, reason) {
return this.edit({ flags, reason });
}
/**
* Sets the guild avatar of the logged in client.
* @param {?(BufferResolvable|Base64Resolvable)} avatar The new avatar
@@ -582,6 +603,7 @@ class GuildMember extends Base {
this.bio === member.bio &&
this.pending === member.pending &&
this.communicationDisabledUntilTimestamp === member.communicationDisabledUntilTimestamp &&
this.flags.equals(member.flags) &&
(this._roles === member._roles ||
(this._roles.length === member._roles.length && this._roles.every((role, i) => role === member._roles[i])))
);