基于 AstrBot 官方插件规范开发的群聊轮盘赌游戏插件,采用现代化代码架构,提供刺激的左轮手枪对决体验。
- 🎯 规范开发:严格遵循AstrBot官方插件开发规范
- 🤖 AI交互:采用纯触发器架构,支持自然语言开启游戏、参与对决、查询状态
- ⚡ 指令优化:使用指令组结构,逻辑清晰
- ⚙️ 规则自定义:支持自定义弹膛数、固定装弹、禁止满膛等进阶规则
- 🎲 随机机制:随机装填、随机走火、随机惩罚
- ⏰ 超时机制:自动结束闲置游戏(300秒超时)
- 📊 状态管理:高效的并发游戏状态管理
想了解最新版本更新内容?请查看 CHANGELOG.md 文件获取详细的版本历史、功能改进和Bug修复记录。
- AstrBot v3.5.0+
- Python 3.10+
- 支持平台:NapCat(OneBot v11 协议)
在 AstrBot WebUI 的插件市场中搜索 "左轮手枪对决" 或 "astrbot_plugin_rg2",点击安装即可。
在插件界面右下角点击加号选择从链接安装输入 https://github.com/piexian/astrbot_plugin_rg2
- 配置插件参数(可选)
- 确保机器人有群管理权限
# 装填子弹(随机1-6发,所有人可用)
[指令前缀]装填
# 装填子弹(指定数量,1-6发,仅限管理员)
[指令前缀]装填 3
# 参与游戏,扣动扳机
[指令前缀]开枪
# 开启随机走火功能(仅限管理员)
[指令前缀]走火开
# 关闭随机走火功能(仅限管理员)
[指令前缀]走火关# 查看当前游戏状态
[指令前缀]左轮 状态
# 显示帮助信息
[指令前缀]左轮 帮助注意:[指令前缀]默认为/,可在AstrBot配置中修改。状态和帮助指令放入了左轮指令组,避免与其他插件冲突。如果输入[指令前缀]左轮会显示指令组的树形结构。
# 参与游戏,扣动扳机
[指令前缀]开枪
# 查看当前游戏状态
[指令前缀]左轮 状态
# 显示帮助信息
[指令前缀]左轮 帮助- 装填子弹(指定数量):
[指令前缀]装填 [数量]- 指定1-6发子弹,仅限管理员 - 走火控制:
[指令前缀]走火开或[指令前缀]走火关- 控制随机走火功能,仅限管理员
- 装填子弹(随机):
[指令前缀]装填- 随机装填1-6发子弹,所有人可用 - 参与游戏:
[指令前缀]开枪- 扣动扳机参与游戏 - 查询状态:
[指令前缀]左轮 状态- 查看当前游戏状态(剩余子弹、当前弹膛) - 查看帮助:
[指令前缀]左轮 帮助- 显示完整的使用说明和游戏规则
- 开启游戏:"来玩左轮手枪"、"轮盘赌"、"再来一局"、"开始游戏"、"play roulette"
- 参与游戏:"我也要玩"、"我也要参加"、"开枪"、"我来试试"、"shoot me"、"算我一个"
- 查询状态:"游戏状态"、"现在什么情况"、"还剩几发子弹"、"how many bullets left"、"check status"
提示:AI功能需要在AstrBot中启用AI对话功能才能使用。
- 射击:
[指令前缀]开枪- 扣动扳机参与游戏 - 状态查询:
[指令前缀]左轮 状态- 查看当前游戏状态(剩余子弹、当前弹膛) - 帮助:
[指令前缀]左轮 帮助- 显示完整的使用说明和游戏规则
插件支持可视化配置,可在 AstrBot 管理面板调整:
| 配置项 | 说明 | 默认值 | 建议范围 |
|---|---|---|---|
timeout_seconds |
游戏超时时间(秒) | 300 | 60-600 |
misfire_probability |
随机走火概率(0.0-1.0) | 0.003 | 0-0.01 |
min_ban_seconds |
最小禁言时长(秒) | 60 | 30-120 |
max_ban_seconds |
最大禁言时长(秒) | 300 | 120-600 |
max_bullet_count |
最大子弹数(即弹膛总数) | 6 | 1-100 |
fixed_bullet_count |
固定装弹数(0为随机) | 0 | 0-max_bullet_count |
no_full_chamber |
禁止满膛(随机装填时) | false | true/false |
hide_bullet_count |
隐藏装弹具体数量 | false | true/false |
end_on_full_rotation |
弹膛全实弹时直接结束 | false | true/false |
misfire_enabled_by_default |
新群默认开启走火 | false | true/false |
ai_trigger_delay |
AI工具触发延迟(秒) | 2 | 任意正整数 |
⚠️ 重要提示:修改AI工具相关配置(如ai_trigger_delay)后,需要重载插件才能生效。其他配置(如超时时间、走火概率等)会实时生效。
- 弹膛设置:6个弹膛,随机装填实弹
- 射击机制:轮流扣动扳机,空弹继续,实弹禁言
- 惩罚机制:中弹后随机禁言60-300秒
- 超时机制:装填后300秒内无操作自动结束
- 随机走火:群聊消息有0.3%概率触发走火(如开启)
- 数据持久化:走火配置自动保存,重启后保留
- 类型注解: 完整的类型提示
- 异步编程: 全异步处理,性能优异
- 错误处理: 完善的异常捕获机制
- 日志记录: 详细的操作日志
- 文档规范: 标准化的docstring注释
- 模块化: 功能分离,易于维护
- 可扩展: 支持功能扩展和定制
- 高性能: 高效的状态管理
- 内存安全: 自动资源清理
- 数据持久化: 配置自动保存和加载
本插件采用纯触发器架构,AI工具仅作为触发器,所有游戏逻辑、消息发送和用户交互均由主插件处理。
revolver_game - 左轮手枪游戏统一控制器
通过 action 参数控制不同操作,实现精确的游戏控制:
-
action: "start"- 启动新游戏(随机装填子弹)- 触发条件:"来玩/开始/开启左轮手枪游戏"、"装填子弹/准备游戏"、"再来一局/重新开始"、"play roulette/let's play"
- 权限说明:AI启动时统一随机装填,确保游戏公平性
- 处理方式:触发主插件处理游戏初始化、状态设置和消息发送
-
action: "join"- 参与游戏开枪射击- 触发条件:"我要玩/我要参加/算我一个"、"开枪/扣动扳机/我来试试"、"shoot me/my turn"、"我想参与"
- 处理方式:触发主插件处理射击逻辑、游戏结果和状态更新
-
action: "status"- 查询游戏进行状态- 触发条件:"游戏状态/情况怎么样"、"还剩几发子弹/现在什么情况"、"what's the status/how many bullets left"、"check game status"
- 处理方式:触发主插件处理状态查询和信息返回
- 事件驱动触发: 使用消息发送后钩子,精确等待AI消息完成
- 可配置延迟: 支持
ai_trigger_delay配置项调整触发时机 - 动态子弹显示: 显示实际装填的子弹数量,如"2弹上膛,杀机四伏"
- 统一控制:单一工具处理所有操作,简化AI调用逻辑
- 精确控制:通过参数明确区分不同操作类型
- 职责明确:AI工具仅负责触发,主插件负责所有业务逻辑
- 性能优化:减少工具数量,降低系统开销
- 易于维护:统一的错误处理和返回格式
- 消息一致:所有用户消息由主插件统一发送,确保风格一致
- 安全可靠:AI无法指定子弹数量,防止权限绕过
用户:我们来玩左轮手枪吧!
AI:🎯 用户名称 挑战命运!
🔫 装填 4 发子弹!
💀 谁敢扣动扳机?
用户:我也要玩!
AI:🎲 用户名称 逃过一劫!
用户:现在情况怎么样?
AI:🔫 游戏进行中
📊 剩余:3发子弹
🎯 第2膛
🍀 安全
用户:再来一局!
AI:🎯 用户名称 挑战命运!
🔫 装填 2 发子弹!
💀 谁敢扣动扳机?
采用简洁有力的现代文本风格:
- 装填:"🔫 用户名称 装填 3 发子弹!"
- 空弹:"🎲 咔哒!用户名称 逃过一劫!"
- 中弹:"💥 枪声炸响!用户名称 中弹倒地!"
- 走火:"💥 砰!手枪走火!用户名称 不幸中弹!"
详细的版本更新日志请查看 CHANGELOG.md 文件。
- v1.2.6 (2026-02-21) - 元数据更新:添加 AstrBot 版本要求和平台支持声明
- v1.2.5 (2026-01-22) - 自定义规则增强:支持弹膛数自定义、固定装弹、隐藏子弹数及逻辑重构
- v1.2.0 (2025-11-16) - 重大功能重构:统一AI工具、事件驱动触发机制、动态版本管理
- v1.1.1 (2025-11-14) - 优化 AI 工具为纯触发器模式,简化架构,提升性能
- v1.1.0 (2024-11-13) - 修复 AI 工具问题,添加参数支持
- v1.0.0 (2024-11-12) - 基于 AstrBot 官方规范全新开发,支持 AI 自然语言交互
- 权限要求:需要管理员权限才能使用
[指令前缀]装填 [数量]、[指令前缀]走火开、[指令前缀]走火关指令(注意:[指令前缀]装填不带参数时所有人可用) - 群聊专用:所有功能仅在群聊中可用,私聊无效
- 禁言功能:确保机器人有群管理权限,否则禁言会失败
- AI支持:需要在AstrBot中启用AI对话功能才能使用自然语言交互
- 游戏状态:同一时间一个群只能进行一个游戏
- 超时机制:游戏装填后300秒内无人操作会自动结束
- 数据持久化:走火配置会自动保存,重启插件后保留设置
- 管理员免疫:群主和管理员中弹后不会被禁言(显示免疫提示)
游戏无法开始?
- 检查是否有管理员权限
- 确认在群聊中使用
- 查看是否有进行中的游戏
AI功能不工作?
- 确保启用了AI对话功能
- 检查函数工具是否加载成功
- 确认自然语言意图清晰
禁言失败?
- 检查机器人群管理权限
- 确认目标用户可禁言
- 查看日志获取详细错误
如有问题请访问 GitHub仓库 提交issue。
本项目基于 astrbot_plugin_rg 进行修改和优化,感谢原作者 zgojin 的开源贡献!
🔫 准备好了吗?来一局刺激的左轮手枪对决吧!