channels_rights - 频道权限与规则配置
基于 AzerothCore Characters 数据库 · 自定义聊天频道权限和规则设置表
📋 表概述
channels_rights 表配置了每个自定义聊天频道的详细权限和规则,包括发言延迟、加入/延迟消息、频道管理员列表等。此表是对 channels 表的权限补充,通过频道名称关联。
- 发言延迟控制
- 自定义消息设置
- 管理员列表管理
- 权限标记配置
主键为 name(频道名称)。与 channels 表通过 name 字段关联。该表存储各频道的详细信息权限配置。
📊 表结构
| 字段名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| name | varchar(128) | NOT NULL | 频道名称(主键) |
| flags | int UNSIGNED | NOT NULL | 频道权限标记(位掩码) |
| speakdelay | int UNSIGNED | NOT NULL | 发言冷却时间(秒) |
| joinmessage | varchar(255) | '' | 加入频道时显示的消息 |
| delaymessage | varchar(255) | '' | 发言延迟提示消息 |
| moderators | text | NULL | 频道管理员列表(GUID列表) |
🔍 重要字段详解
🏷️ flags - 权限标记
详细说明:INT UNSIGNED 按位标记,控制频道的各种权限。
- 位0(值1) = 需要密码
- 位1(值2) = 仅管理员可发言
- 位2(值4) = 仅成员可发言
- 多个权限可组合使用(位或运算)
⏱️ speakdelay - 发言延迟
详细说明:INT UNSIGNED,控制玩家在频道中发消息的冷却时间。
- 单位:秒
- speakdelay=0 → 无限制
- speakdelay=5 → 每条消息间隔至少5秒
- 防止刷屏和广告
👤 moderators - 管理员列表
详细说明:TEXT类型,存储频道管理员的角色GUID列表。
- 格式通常为逗号或空格分隔的GUID列表
- 管理员有封禁/解封/设置权限等管理功能
- NULL表示无管理员(频道所有者即为管理员)
💡 SQL示例
示例1:查看某频道权限配置
SELECT
name, flags, speakdelay,
joinmessage, delaymessage, moderators
FROM channels_rights
WHERE name = 'Trade';示例2:设置发言延迟为3秒
UPDATE channels_rights
SET speakdelay = 3
WHERE name = 'Global';❓ 常见问题
Q1: channels_rights 和 channels 表有什么区别?
channels 表存储频道基本信息(名称、阵营、密码等),channels_rights 表存储频道的详细权限规则(发言延迟、管理员列表、标记等)。两者通过 name 关联。
Q2: 如何设置频道仅管理员可发言?
UPDATE channels_rights SET flags = flags | 2 WHERE name = '频道名';,取消用 flags = flags & ~2。