| const { PermissionFlagsBits } = require('discord.js'); |
|
|
| |
| |
| |
| |
| |
| |
| function buildOverwrites(overrides, roleMap) { |
| const result = []; |
|
|
| for (const [roleName, perms] of Object.entries(overrides)) { |
| const role = roleMap.get(roleName === 'everyone' ? 'everyone' : roleName); |
| if (!role) continue; |
|
|
| const allow = []; |
| const deny = []; |
|
|
| |
| if (perms.view === true) allow.push(PermissionFlagsBits.ViewChannel); |
| if (perms.view === false) deny.push(PermissionFlagsBits.ViewChannel); |
|
|
| |
| if (perms.send === true) allow.push(PermissionFlagsBits.SendMessages); |
| if (perms.send === false) deny.push(PermissionFlagsBits.SendMessages); |
|
|
| |
| if (perms.connect === true) allow.push(PermissionFlagsBits.Connect); |
| if (perms.connect === false) deny.push(PermissionFlagsBits.Connect); |
|
|
| |
| if (perms.speak === true) allow.push(PermissionFlagsBits.Speak); |
| if (perms.speak === false) deny.push(PermissionFlagsBits.Speak); |
|
|
| |
| if (perms.react === true) allow.push(PermissionFlagsBits.AddReactions); |
| if (perms.react === false) deny.push(PermissionFlagsBits.AddReactions); |
|
|
| |
| if (perms.readHistory === true) allow.push(PermissionFlagsBits.ReadMessageHistory); |
| if (perms.readHistory === false) deny.push(PermissionFlagsBits.ReadMessageHistory); |
|
|
| result.push({ |
| id: role.id || role, |
| allow, |
| deny, |
| }); |
| } |
|
|
| return result; |
| } |
|
|
| module.exports = { buildOverwrites }; |
|
|