fix(GuildChannel): account for everyone base permissions

backport #11053
This commit is contained in:
Elysia
2025-09-13 18:13:14 +07:00
parent 2fe0ad486d
commit 4d4fa1b17d

View File

@@ -244,10 +244,11 @@ class GuildChannel extends Channel {
return new Permissions(Permissions.ALL).freeze(); return new Permissions(Permissions.ALL).freeze();
} }
const basePermissions = new Permissions([role.permissions, role.guild.roles.everyone.permissions]);
const everyoneOverwrites = this.permissionOverwrites.cache.get(this.guild.id); const everyoneOverwrites = this.permissionOverwrites.cache.get(this.guild.id);
const roleOverwrites = this.permissionOverwrites.cache.get(role.id); const roleOverwrites = this.permissionOverwrites.cache.get(role.id);
return role.permissions return basePermissions
.remove(everyoneOverwrites?.deny ?? Permissions.defaultBit) .remove(everyoneOverwrites?.deny ?? Permissions.defaultBit)
.add(everyoneOverwrites?.allow ?? Permissions.defaultBit) .add(everyoneOverwrites?.allow ?? Permissions.defaultBit)
.remove(roleOverwrites?.deny ?? Permissions.defaultBit) .remove(roleOverwrites?.deny ?? Permissions.defaultBit)