mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-14 02:23:31 +01:00
fix(Guild): equals method modifying features array of guild (#2544)
* Fixed a bug where Guild#equals would cause the given guild to lose its features * Fix Util.arraysEqual * Fixed docs for Util.arraysEqual * Remove Util.arraysEqual
This commit is contained in:
@@ -944,10 +944,13 @@ class Guild extends Base {
|
||||
this.memberCount === guild.memberCount &&
|
||||
this.large === guild.large &&
|
||||
this.icon === guild.icon &&
|
||||
Util.arraysEqual(this.features, guild.features) &&
|
||||
this.ownerID === guild.ownerID &&
|
||||
this.verificationLevel === guild.verificationLevel &&
|
||||
this.embedEnabled === guild.embedEnabled;
|
||||
this.embedEnabled === guild.embedEnabled &&
|
||||
(this.features === guild.features || (
|
||||
this.features.length === guild.features.length &&
|
||||
this.features.every((feat, i) => feat === guild.features[i]))
|
||||
);
|
||||
|
||||
if (equal) {
|
||||
if (this.embedChannel) {
|
||||
|
||||
@@ -118,25 +118,6 @@ class Util {
|
||||
return { animated: Boolean(m[1]), name: m[2], id: m[3] };
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the arrays are equal, also removes duplicated entries from b.
|
||||
* @param {Array<*>} a Array which will not be modified.
|
||||
* @param {Array<*>} b Array to remove duplicated entries from.
|
||||
* @returns {boolean} Whether the arrays are equal.
|
||||
* @private
|
||||
*/
|
||||
static arraysEqual(a, b) {
|
||||
if (a === b) return true;
|
||||
if (a.length !== b.length) return false;
|
||||
|
||||
for (const item of a) {
|
||||
const ind = b.indexOf(item);
|
||||
if (ind !== -1) b.splice(ind, 1);
|
||||
}
|
||||
|
||||
return b.length === 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shallow-copies an object with its class/prototype intact.
|
||||
* @param {Object} obj Object to clone
|
||||
|
||||
Reference in New Issue
Block a user