channels - 自定义聊天频道管理表
基于 AzerothCore Characters 数据库 · 玩家创建的自定义聊天频道配置表
📋 表概述
channels 表管理玩家通过 /join 命令创建的自定义聊天频道。记录频道的名称、所属队伍/阵营、公告开关、所有权模式、密码和最后使用时间等配置信息。
- 自定义聊天频道
- 频道密码保护
- 队伍/阵营归属
- 公告开关管理
主键为 channelId(自增)。name 为频道名称(唯一标识)。该表属于 Channel System 模块,配合 channels_bans 和 channels_rights 使用。
📊 表结构
| 字段名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| channelId | int UNSIGNED | AUTO_INCREMENT | 频道ID(主键,自增) |
| name | varchar(128) | NOT NULL | 频道名称 |
| team | int UNSIGNED | NOT NULL | 所属队伍/阵营(0=全体,1=联盟,2=部落) |
| announce | tinyint UNSIGNED | 1 | 加入/离开公告(0=关闭,1=开启) |
| ownership | tinyint UNSIGNED | 1 | 所有权模式(0=公共,1=私人) |
| password | varchar(32) | NULL | 频道密码(NULL=无密码) |
| lastUsed | int UNSIGNED | NOT NULL | 最后使用时间(Unix时间戳) |
🔍 重要字段详解
🏳️ team - 阵营限制
详细说明:INT UNSIGNED类型,限制频道的阵营访问范围。
- 0 = 全阵营可用(跨阵营频道)
- 1 = 仅联盟可用
- 2 = 仅部落可用
- 由创建频道的玩家阵营决定
🔒 ownership - 所有权模式
详细说明:控制频道的管理权限。
- 0 = 公共频道(无所有者,任何人可加入)
- 1 = 私人频道(有所有者,成员管理需要权限)
- 私人频道可设置密码、封禁等管理操作
🔑 password - 频道密码
详细说明:VARCHAR(32),NULL表示无密码保护。
- 设置密码后,玩家需输入正确密码才能加入频道
- 使用
/join 频道名 密码加入有密码的频道 - 密码以明文形式存储在数据库中
💡 SQL示例
示例1:查看所有活跃频道
SELECT
channelId, name, team, ownership,
FROM_UNIXTIME(lastUsed) AS last_used
FROM channels
ORDER BY lastUsed DESC;示例2:清理长期未使用的频道
DELETE FROM channels
WHERE lastUsed < UNIX_TIMESTAMP() - 2592000;❓ 常见问题
Q1: 频道密码忘记怎么办?
直接查询 password 字段:
SELECT name, password FROM channels WHERE name = '你的频道名';Q2: 频道没有玩家后会自动删除吗?
不会自动删除。频道记录会一直保留直到 lastUsed 超过阈值后手动清理。空频道不影响性能。