astrbot_plugin_whitelistpro
一个功能强大的白名单插件,支持临时会话、好友私聊、群聊的独立控制和全局白名单。
功能特性
- 临时会话控制开关 - 可独立控制临时会话的消息过滤(仅作为开关,无白名单)
- 好友私聊白名单开关 - 可独立控制好友私聊的消息过滤
- 群聊白名单开关 - 可独立控制群聊的消息过滤
- 全局白名单 - 全局白名单中的会话将无视以上所有限制
- 请求事件独立放行 - 好友申请和群聊邀请等请求事件会独立放行,不受白名单限制
配置说明
控制开关
enable_temp_session_control: 启用临时会话控制开关(开启后所有临时会话将被阻止)enable_friend_message_whitelist: 启用好友私聊白名单(开启后只允许白名单中的好友私聊)enable_group_message_whitelist: 启用群聊白名单(开启后只允许白名单中的群聊)
白名单配置
- 好友私聊白名单:
friend_message_whitelist- 可直接输入QQ号(如:12345678),系统会自动匹配不同平台的格式 - 群聊白名单:
group_message_whitelist- 可直接输入QQ群号(如:123456789),系统会自动匹配不同平台的格式 - 全局白名单:
global_whitelist- 可直接输入QQ号或群号,系统会自动匹配
其他配置
platform_ids: 平台ID列表(可选)。插件会自动从配置中读取平台ID,如果无法读取,可手动填入。例如:["qq", "telegram", "discord"]log_blocked_messages: 是否记录被阻止的消息日志(默认:true)
使用方法
配置格式
直接输入QQ号或群号即可,系统会自动匹配不同平台的格式:
输入
12345678(QQ号)会自动匹配:qq:FriendMessage:12345678telegram:FriendMessage:12345678- 其他平台的相同格式
输入
123456789(群号)会自动匹配:qq:GroupMessage:123456789- 其他平台的相同格式
管理命令
所有管理命令都需要管理员权限(除了 list 命令)。
添加白名单
/awb add_wl <类型> <QQ号或群号>
类型:
friend: 好友私聊group: 群聊global: 全局
示例:
/awb add_wl friend 12345678
/awb add_wl group 123456789
/awb add_wl global 12345678
删除白名单
/awb del_wl <类型> <QQ号或群号>
查看列表
/awb list [类型]
不指定类型时显示所有列表的摘要,指定类型时显示该类型的详细列表。
工作逻辑
- 全局白名单检查 - 如果会话在全局白名单中,直接通过(无视所有限制)
- 请求事件检查 - 如果是好友申请、群聊邀请等请求事件,独立放行(不受白名单限制)
- 按消息类型检查:
- 临时会话(OTHER_MESSAGE):如果
enable_temp_session_control开启,直接阻止 - 好友私聊(FRIEND_MESSAGE):如果
enable_friend_message_whitelist开启,检查是否在白名单中 - 群聊(GROUP_MESSAGE):如果
enable_group_message_whitelist开启,检查是否在白名单中
- 临时会话(OTHER_MESSAGE):如果
注意事项
- 全局白名单优先级最高,会覆盖其他所有限制
- 请求事件独立放行:好友申请和群聊邀请等请求事件会独立放行,不受好友私聊和群聊白名单限制,确保可以正常接收和处理好友申请和群聊邀请
- 临时会话控制仅作为开关,开启后所有临时会话都会被阻止,没有白名单功能
- 白名单开关未开启时,允许所有消息通过
- 白名单开关开启但白名单为空时,允许所有消息通过
- 白名单开关开启且白名单不为空时,只有白名单中的消息才能通过
- 直接输入QQ号或群号即可,系统会自动匹配不同平台的格式
- 平台ID说明:
unified_msg_origin格式为平台ID:消息类型:会话ID,其中平台ID是用户在配置适配器时自定义的ID。插件会自动从配置中读取,如果无法读取,请在插件配置中手动填入platform_ids列表