mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-19 13:03: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.memberCount === guild.memberCount &&
|
||||||
this.large === guild.large &&
|
this.large === guild.large &&
|
||||||
this.icon === guild.icon &&
|
this.icon === guild.icon &&
|
||||||
Util.arraysEqual(this.features, guild.features) &&
|
|
||||||
this.ownerID === guild.ownerID &&
|
this.ownerID === guild.ownerID &&
|
||||||
this.verificationLevel === guild.verificationLevel &&
|
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 (equal) {
|
||||||
if (this.embedChannel) {
|
if (this.embedChannel) {
|
||||||
|
|||||||
@@ -118,25 +118,6 @@ class Util {
|
|||||||
return { animated: Boolean(m[1]), name: m[2], id: m[3] };
|
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.
|
* Shallow-copies an object with its class/prototype intact.
|
||||||
* @param {Object} obj Object to clone
|
* @param {Object} obj Object to clone
|
||||||
|
|||||||
Reference in New Issue
Block a user