# AccessControl **Repository Path**: miroliu/AccessControl ## Basic Information - **Project Name**: AccessControl - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-17 - **Last Updated**: 2025-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AccessControl 权限控制插件 这是一个用于管理QQ机器人访问权限的插件。它提供了完整的权限管理功能,包括私聊权限控制、群聊权限控制,以及群聊中的黑白名单模式。 建议使用/ac 帮助 查看帮助 ## 安装 配置完成 [LangBot](https://github.com/RockChinQ/LangBot) 主程序后使用管理员账号向机器人发送命令即可安装: ``` !plugin get https://github.com/sanxianxiaohuntun/AccessControl ``` 或查看详细的[插件安装说明](https://docs.langbot.app/plugin/plugin-intro.html#%E6%8F%92%E4%BB%B6%E7%94%A8%E6%B3%95) 首先在插件目录plugins\AccessControl\config.yaml文件 修改管理员qq如下方 ``` admins: - 123456789 其中123456789修改为自己QQ号 ``` ## 功能特性 - 管理员系统 - 私聊白名单管理 - 群聊白名单管理 - 群聊黑白名单模式 - 群成员白名单管理 - 群成员黑名单管理 - 使用YAML配置文件持久化存储 - 完整的命令行管理接口 - /ac 帮助 查看帮助 ## 配置文件说明 配置文件位于 `plugins/AccessControl/config.yaml`,格式如下: ```yaml admins: # 管理员ID列表 - 123456789 group_modes: # 群组模式设置 '123456789': blacklist # 群ID: 模式(whitelist/blacklist) group_user_blacklist: # 群组黑名单用户 '123456789': # 群ID - 12345678 # 用户ID group_user_whitelist: # 群组白名单用户 '348774756': # 群ID - 87654321 # 用户ID group_whitelist: # 允许的群组ID列表 - 348774756 private_whitelist: # 允许私聊的用户ID列表 - 12345678 ``` ## 权限判定逻辑 ### 1. 私聊权限判定 - 用户是管理员 -> 允许 - 用户在私聊白名单中 -> 允许 - 其他情况 -> 拒绝 ### 2. 群聊权限判定 - 用户是管理员 -> 允许 - 群不在白名单中 -> 拒绝 - 群在白名单中,根据群组模式判断: - 白名单模式: - 用户在群白名单中 -> 允许 - 用户不在群白名单中 -> 拒绝 - 群没有设置白名单 -> 拒绝 - 黑名单模式: - 用户在群黑名单中 -> 拒绝 - 用户不在群黑名单中 -> 允许 - 群没有设置黑名单 -> 允许 ## 命令使用说明 所有命令都需要管理员权限才能使用。命令格式统一为 `/ac <命令> [参数1] [参数2]` ### 基础管理命令 1. 查看当前配置 ``` /ac 查看配置 ``` 2. 管理员管理 ``` /ac 添加管理员 <用户ID> # 添加一个管理员 /ac 删除管理员 <用户ID> # 移除一个管理员 ``` 3. 私聊白名单管理 ``` /ac 添加私聊 <用户ID> # 添加用户到私聊白名单 /ac 删除私聊 <用户ID> # 从私聊白名单移除用户 ``` ### 群聊管理命令 1. 群聊白名单管理 ``` /ac 添加群聊 <群ID> # 添加群到白名单(默认为白名单模式) /ac 删除群聊 <群ID> # 从白名单移除群(同时会清除该群的所有相关配置) ``` 2. 群聊模式设置 ``` /ac 设置模式 <群ID> 白名单 # 设置群为白名单模式 /ac 设置模式 <群ID> 黑名单 # 设置群为黑名单模式 ``` 3. 群成员白名单管理(白名单模式下使用) ``` /ac 添加群白名单 <群ID> <用户ID> # 添加用户到群白名单 /ac 删除群白名单 <群ID> <用户ID> # 从群白名单移除用户 ``` 4. 群成员黑名单管理(黑名单模式下使用) ``` /ac 添加群黑名单 <群ID> <用户ID> # 添加用户到群黑名单 /ac 删除群黑名单 <群ID> <用户ID> # 从群黑名单移除用户 ``` ## 使用示例 1. 设置管理员 ``` /ac 添加管理员 123456789 ``` 2. 添加群并设置为黑名单模式 ``` /ac 添加群聊 123456789 /ac 设置模式 123456789 黑名单 ``` 3. 在黑名单模式下管理用户 ``` /ac 添加群黑名单 123456789 123456789 # 限制该用户访问 /ac 删除群黑名单 123456789 123456789 # 解除该用户限制 ``` 4. 切换到白名单模式并管理用户 ``` /ac 设置模式 123456789 白名单 /ac 添加群白名单 123456789 123456789 # 允许该用户访问 /ac 删除群白名单 123456789 123456789 # 移除该用户访问权限 ``` ## 注意事项 1. 管理员拥有最高权限,不受任何限制 2. 群必须先添加到白名单才能进行其他操作 3. 删除群聊时会同时清除该群的所有相关配置 4. 白名单模式下,必须明确添加用户到白名单才能访问 5. 黑名单模式下,只有被添加到黑名单的用户无法访问 6. 建议定期使用 `/ac 查看配置` 检查当前设置 ## 依赖要求 - Python 3.8+ - pyyaml >= 6.0.1 ## 安装方法 1. 将插件文件夹复制到 `plugins` 目录 2. 安装依赖:`pip install pyyaml` 3. 重启机器人 4. 使用 `/ac 添加管理员 <你的QQ号>` 设置第一个管理员 ## 常见问题 1. 命令无响应 - 检查是否有管理员权限 - 确认命令格式是否正确 2. 群成员无法访问 - 白名单模式:检查用户是否在白名单中 - 黑名单模式:检查用户是否在黑名单中 - 确认群是否在群聊白名单中 3. 配置未生效 - 使用 `/ac 查看配置` 检查当前配置 - 重启机器人使配置生效