fix(GuildChannel): Handle empty overwrite must only handle @everyone (#11221)

* Add check overwrite id

* Update GuildChannel.js

* Update GuildChannel.js

* chore: fmt

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
VAKiliner
2026-03-02 22:02:24 +03:00
committed by GitHub
parent f1949271a0
commit ec796caf00

View File

@@ -116,27 +116,29 @@ class GuildChannel extends BaseChannel {
* @readonly
*/
get permissionsLocked() {
if (!this.parent) return null;
const { parent } = this;
if (!parent) return null;
// Get all overwrites
const overwriteIds = new Set([
...this.permissionOverwrites.cache.keys(),
...this.parent.permissionOverwrites.cache.keys(),
...parent.permissionOverwrites.cache.keys(),
]);
// Compare all overwrites
return [...overwriteIds].every(key => {
const channelVal = this.permissionOverwrites.cache.get(key);
const parentVal = this.parent.permissionOverwrites.cache.get(key);
const parentVal = parent.permissionOverwrites.cache.get(key);
// Handle empty overwrite
if (
(!channelVal &&
key === this.guildId &&
((!channelVal &&
parentVal.deny.bitfield === PermissionsBitField.DefaultBit &&
parentVal.allow.bitfield === PermissionsBitField.DefaultBit) ||
(!parentVal &&
channelVal.deny.bitfield === PermissionsBitField.DefaultBit &&
channelVal.allow.bitfield === PermissionsBitField.DefaultBit)
channelVal.allow.bitfield === PermissionsBitField.DefaultBit))
) {
return true;
}