mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-15 19:13:31 +01:00
fix(GuildChannel): improve empty overwrite handling for permissionsLocked (#5821)
This commit is contained in:
committed by
GitHub
parent
9e5106d90e
commit
6df36232a0
@@ -95,13 +95,33 @@ class GuildChannel extends Channel {
|
|||||||
*/
|
*/
|
||||||
get permissionsLocked() {
|
get permissionsLocked() {
|
||||||
if (!this.parent) return null;
|
if (!this.parent) return null;
|
||||||
if (this.permissionOverwrites.size !== this.parent.permissionOverwrites.size) return false;
|
|
||||||
return this.permissionOverwrites.every((value, key) => {
|
// Get all overwrites
|
||||||
const testVal = this.parent.permissionOverwrites.get(key);
|
const overwriteIds = new Set([...this.permissionOverwrites.keys(), ...this.parent.permissionOverwrites.keys()]);
|
||||||
|
|
||||||
|
// Compare all overwrites
|
||||||
|
return [...overwriteIds].every(key => {
|
||||||
|
const channelVal = this.permissionOverwrites.get(key);
|
||||||
|
const parentVal = this.parent.permissionOverwrites.get(key);
|
||||||
|
|
||||||
|
// Handle empty overwrite
|
||||||
|
if (
|
||||||
|
(channelVal === undefined &&
|
||||||
|
parentVal.deny.bitfield === Permissions.defaultBit &&
|
||||||
|
parentVal.allow.bitfield === Permissions.defaultBit) ||
|
||||||
|
(parentVal === undefined &&
|
||||||
|
channelVal.deny.bitfield === Permissions.defaultBit &&
|
||||||
|
channelVal.allow.bitfield === Permissions.defaultBit)
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compare overwrites
|
||||||
return (
|
return (
|
||||||
testVal !== undefined &&
|
channelVal !== undefined &&
|
||||||
testVal.deny.bitfield === value.deny.bitfield &&
|
parentVal !== undefined &&
|
||||||
testVal.allow.bitfield === value.allow.bitfield
|
channelVal.deny.bitfield === parentVal.deny.bitfield &&
|
||||||
|
channelVal.allow.bitfield === parentVal.allow.bitfield
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user