Skip to content

Commit ac48c33

Browse files
Decouple modlogs from hardcoded channel categories (#170)
Base public/private channel check on permissions instead
1 parent 41df653 commit ac48c33

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

src/components/moderation/modlogs.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,15 @@ export default class Modlogs extends BotComponent {
217217
if (channel.isDMBased() || !channel.parent) {
218218
return false;
219219
}
220-
return [this.wheatley.categories.staff.id, this.wheatley.categories.staff_logs.id].includes(channel.parent.id);
220+
const min_viewable_permissions = this.wheatley.guild.roles.cache
221+
.mapValues(role => channel.permissionsFor(role).bitfield)
222+
.reduce((accumulator, value) => {
223+
if (value & Discord.PermissionFlagsBits.ViewChannel) {
224+
return accumulator & value;
225+
}
226+
return accumulator;
227+
}, Discord.PermissionsBitField.All);
228+
return (min_viewable_permissions & Discord.PermissionFlagsBits.ModerateMembers) != 0n;
221229
}
222230

223231
async modlogs(command: TextBasedCommand, user: Discord.User) {

0 commit comments

Comments
 (0)