feat(guild-roles): permission UI for connect and speak in voice
Extend PERMISSION_META, maskToPermissionView, and ALL_PERMISSIONS_MASK for CONNECT_VOICE (64) and SPEAK_IN_VOICE (128).
This commit is contained in:
+19
-1
@@ -8,7 +8,9 @@ const ALL_PERMISSIONS_MASK =
|
||||
PERMISSION.DELETE_ANY_MESSAGE |
|
||||
PERMISSION.MODERATE_MEMBERS |
|
||||
PERMISSION.MANAGE_MESSAGES |
|
||||
PERMISSION.SEND_MESSAGES
|
||||
PERMISSION.SEND_MESSAGES |
|
||||
PERMISSION.CONNECT_VOICE |
|
||||
PERMISSION.SPEAK_IN_VOICE
|
||||
|
||||
/** UI + editor metadata (Discord-style permission toggles). */
|
||||
const PERMISSION_META = [
|
||||
@@ -18,6 +20,18 @@ const PERMISSION_META = [
|
||||
label: 'Send messages',
|
||||
description: 'Send messages and add reactions in text channels'
|
||||
},
|
||||
{
|
||||
flag: PERMISSION.CONNECT_VOICE,
|
||||
key: 'connectVoice',
|
||||
label: 'Connect voice',
|
||||
description: 'Join voice and stage channels'
|
||||
},
|
||||
{
|
||||
flag: PERMISSION.SPEAK_IN_VOICE,
|
||||
key: 'speakInVoice',
|
||||
label: 'Speak in voice',
|
||||
description: 'Transmit audio in voice (without this, listen-only)'
|
||||
},
|
||||
{
|
||||
flag: PERMISSION.MANAGE_GUILD,
|
||||
key: 'manageGuild',
|
||||
@@ -74,6 +88,8 @@ function maskHasPermission (mask, perm) {
|
||||
function maskToPermissionView (mask) {
|
||||
return {
|
||||
sendMessages: maskHasPermission(mask, PERMISSION.SEND_MESSAGES),
|
||||
connectVoice: maskHasPermission(mask, PERMISSION.CONNECT_VOICE),
|
||||
speakInVoice: maskHasPermission(mask, PERMISSION.SPEAK_IN_VOICE),
|
||||
deleteAny: maskHasPermission(mask, PERMISSION.DELETE_ANY_MESSAGE),
|
||||
manageChannels: maskHasPermission(mask, PERMISSION.MANAGE_CHANNELS),
|
||||
manageGuild: maskHasPermission(mask, PERMISSION.MANAGE_GUILD),
|
||||
@@ -85,6 +101,8 @@ function maskToPermissionView (mask) {
|
||||
function viewToMask (view = {}) {
|
||||
let mask = 0
|
||||
if (view.sendMessages) mask |= PERMISSION.SEND_MESSAGES
|
||||
if (view.connectVoice) mask |= PERMISSION.CONNECT_VOICE
|
||||
if (view.speakInVoice) mask |= PERMISSION.SPEAK_IN_VOICE
|
||||
if (view.manageGuild) mask |= PERMISSION.MANAGE_GUILD
|
||||
if (view.manageChannels) mask |= PERMISSION.MANAGE_CHANNELS
|
||||
if (view.manageMessages) mask |= PERMISSION.MANAGE_MESSAGES
|
||||
|
||||
Reference in New Issue
Block a user