权限相关说明
权限说明
bit 位 | 值 | 权限 | 说明 |
---|---|---|---|
0 | 1 | 管理员 | 拥有除删除服务器之外的所有权限。 |
1 | 2 | 查看频道 | 允许成员查看频道(私密频道除外)。 |
2 | 4 | 管理频道 | 允许成员创建、编辑、删除频道。 |
3 | 8 | 查看审核日志 | 允许成员在此房间内查看用户在房间内的操作。 |
4 | 16 | 管理角色权限 | 允许成员创建新的权限,可以编辑或删除比自身最高身份组限低的身份组。同时允许成员编辑自身可访问的频道的权限。 |
5 | 32 | 管理房间 | 允许成员编辑房间名称,查看所有邀请。 |
6 | 64 | 创建邀请 | 允许成员邀请新人加入服务器。 |
7 | 128 | 管理邀请 | 允许成员管理邀请。 |
8 | 256 | 修改昵称 | 允许用户修改自己在房间的昵称。 |
9 | 512 | 管理昵称 | 允许用户修改别人在房间的昵称。 |
10 | 1024 | 将某人踢出房间 | 允许成员将其他成员从此房间踢出。被踢出的成员如果获得新的邀请,可再次加入此房间。 |
11 | 2048 | 将某人踢出频道 | 允许成员将某人踢出频道。 |
12 | 4096 | 将某人加入房间黑名单 | 允许用户将其他用户加入房间黑名单,被加入黑名单的用户将永远无法加入此房间,直至被移出黑名单。 |
13 | 8192 | 禁言某人 | 允许用户对其他用户禁言,被禁言的用户无法在文字频道或语音频道中发言。 |
14 | 16384 | 发送消息 | 允许成员发送消息。 |
15 | 32768 | 上传文件 | 允许成员上传文件。 |
16 | 65536 | @全体、@在线和所有权限组 | 允许成员@全体成员或@在线成员,或@不同权限组的成员。 |
17 | 131072 | 添加表情回应 | 允许成员添加表情回应。 |
18 | 262144 | 管理消息 | 允许成员删除其他成员发出的消息或设置精华消息。 |
19 | 524288 | 接收离线消息 | 允许成员接收离线时房间内的消息。如果关闭此权限,成员只能接收在线时房间内的消息。 |
20 | 1048576 | 创建开黑邀约 | 允许成员创建开黑邀约。 |
21 | 2097152 | 管理开黑邀约 | 允许成员管理开黑邀约。 |
22 | 4194304 | 加入语音频道 | 允许成员加入语音频道,并听到其他成员发言。 |
23 | 8388608 | 语音频道内说话 | 允许成员在语音频道内说话。如果该权限未开启,则成员默认处于已静音状态,直至具备"静音成员"权限者解除其静音状态为止。 |
24 | 16777216 | 允许直接讲话 | 允许成员通过直接讲话的方式在语音频道内发言。如果该权限未开启,则成员需要使用按键说话的方式进行发言。 |
25 | 33554432 | 频道静音 | 静音频道中所有用户。 |
26 | 67108864 | 静音成员 | 被静音的成员说话将无法被他人听到。 |
27 | 134217728 | 移动成员 | 允许成员断开连接或在语音频道之间移动其他成员。 |
28 | 268435456 | 管理语句 | 管理语句。 |
29 | 536870912 | 修改频道内其他人的邀约 | 管理频道内其他人的邀约。 |
30 | 1073741824 | 管理表情 | 允许成员在此房间内上传、编辑、移除 emoji 和大表情。 |
31 | 2147483648 | 管理语音包 | 允许成员在此房间内上传、编辑、移除语音包。 |
32 | 4294967296 | 播放语音包 | 允许成员在房间播放语音包。 |
33 | 8589934592 | 播放伴奏 | 允许成员在房间共享伴奏。 |
34 | 17179869184 | 共享屏幕 | 允许成员在此房间内进行屏幕共享。 |
35 | 34359738368 | 发布组队 | 允许成员发布组队。 |
36 | 68719476736 | 使用 bot 命令 | 允许成员使用机器人指令,包括直接输入指令或选择输入框中的“使用机器人指令”。 |
角色权限permission 说明
用户的角色的权限是由多个值异或(⊕,xor)计算得到的,比如某个角色既拥有查看频道=2的权限,还有管理频道=4的权限,那么他的permission的值为 2⊕4 =6
如下是一段go语言的demo,permission的值为6
var (
ViewingChannel = 1 << 1 // 查看频道
EditChannel = 1 << 2 // 编辑、管理频道
)
func main() {
permission := ViewingChannel | EditChannel
println(permission)
}
根据某个角色的的permission值判断是否拥有某个行为的权限
比如该角色的权限值 permission = 6,我们需要判断该角色是否拥有查看频道的权限,如下是一段go语言的demo
func checkHavePermission(permissions int64, requiredPermission int64) bool {
if (permissions & 1) != 0 {
// 1是管理员权限什么都能做
return true
}
return (permissions & requiredPermission) != 0
}
角色Role字段解析
{
"name": "机器人",
"icon": "https://imgheybox.max-c.com/dev/avatar/2023/08/10/be2f127109038a6644c15ab9cf678b9e.png",
"color_list": [
15027858,
14985695
],
"id": "3378926863517753344",
"department_id": "3230476736336502784",
"permissions": "34359738369",
"type": 0,
"color": 0,
"position": 2,
"del_tag": 1,
"hoist": 1,
"mentionable": 0,
"creator": "0",
"create_time": 0
}
字段 | 类型 | 示例值 | 说明 |
---|---|---|---|
name | string | 机器人 | 角色名称。 |
icon | string | https://imgheybox.max-c.com/dev/avatar/2023/08/10/be2f127109038a6644c15ab9cf678b9e.png | 角色的图标,这里为空表示没有特定图标。 |
color_list | array | [15027858,14985695] | 渐变色的颜色数组,颜色值10进制 |
id | string | 3378926863517753344 | 角色的唯一标识 ID。 |
department_id | string | 3230476736336502784 | 所属部门的 ID。目前已经弃用 |
room_id | string | 3230476736336502784 | 房间 ID,与部门 ID 相同 |
permissions | string | 34359738369 | 权限值,具体参考 (权限说明) |
type | int | 0 | 类型标识,用于区分不同类型的角色具体参考(角色类型常量表) |
color | int | 0 | 颜色值10进制,在界面展示中用于区分不同角色。 |
position | int | 2 | 角色排序 |
hoist | int | 1 | 是否将该角色成员在右侧和普通成员区分显示,1是区分0是不区分 |
mentionable | int | 0 | 目前弃用字段 |
creator | string | 0 | 创建者标识,0 的话则为房间创建者 |
create_time | int64 | 0 | 创建时间戳,旧数据为0 |
角色类型常量表
值 | 说明 |
---|---|
0 | 默认角色类型 |
1 | 游戏角色类型 |
2 | 机器人角色类型 |
3 | 成员管理员类型 |
4 | 文本频道管理员类型 |
5 | 音频频道管理员类型 |
6 | 社区建设者类型 |
7 | 高级管理员类型 |
254 | 访客类型 |
255 | 所有用户角色类型 |
最后修改时间: 15 天前
权限说明
角色权限permission 说明
根据某个角色的的permission值判断是否拥有某个行为的权限
角色Role字段解析
角色类型常量表