来提交你的插件吧!
有疑问?来看看呗!

插件详情

🔫 左轮手枪对决 logo

🔫 左轮手枪对决

一个刺激的群聊轮盘游戏插件。支持管理员装填子弹、用户开枪对决、随机走火等功能,提供完整的游戏体验和AI自然语言交互支持。

小游戏
轮盘
版本v1.2.0
作者piexian
Star2
更新2025/11/27

插件说明

🔫 左轮手枪对决

基于 AstrBot 官方插件规范开发的群聊轮盘赌游戏插件,采用现代化代码架构,提供刺激的左轮手枪对决体验。

AstrBot Plugin
Version
Python

✨ 核心特性

  • 🎯 规范开发:严格遵循AstrBot官方插件开发规范
  • 🤖 AI交互:采用纯触发器架构,支持自然语言开启游戏、参与对决、查询状态
  • ⚡ 指令优化:使用指令组结构,逻辑清晰
  • 🔒 权限控制:管理员专用功能,安全可靠
  • 🎲 随机机制:随机装填、随机走火、随机惩罚
  • ⏰ 超时机制:自动结束闲置游戏(300秒超时)
  • 🛡️ 错误处理:完善的异常捕获和日志记录
  • 📊 状态管理:高效的并发游戏状态管理

📋 更新日志

想了解最新版本更新内容?请查看 CHANGELOG.md 文件获取详细的版本历史、功能改进和Bug修复记录。

🚀 快速开始

安装要求

  • AstrBot v4.5.0+
  • Python 3.10+

安装插件

方法一:插件市场(推荐)

在 AstrBot WebUI 的插件市场中搜索 "左轮手枪对决" 或 "astrbot_plugin_rg2",点击安装即可。

方法二:Git 克隆

  1. 克隆插件到 AstrBot 插件目录
cd AstrBot/data/plugins
git clone https://github.com/piexian/astrbot_plugin_rg2
  1. 在 WebUI 中启用插件
  2. 配置插件参数(可选)
  3. 确保机器人有群管理权限

基础使用

独立指令(最常用)

# 装填子弹(随机1-6发,所有人可用)
[指令前缀]装填

# 装填子弹(指定数量,1-6发,仅限管理员)
[指令前缀]装填 3

# 参与游戏,扣动扳机
[指令前缀]开枪

# 开启随机走火功能(仅限管理员)
[指令前缀]走火开

# 关闭随机走火功能(仅限管理员)
[指令前缀]走火关

指令组指令(避免冲突)

# 查看当前游戏状态
[指令前缀]左轮 状态

# 显示帮助信息
[指令前缀]左轮 帮助

注意:[指令前缀]默认为/,可在AstrBot配置中修改。状态和帮助指令放入了左轮指令组,避免与其他插件冲突。如果输入[指令前缀]左轮会显示指令组的树形结构。

用户指令

# 参与游戏,扣动扳机
[指令前缀]开枪

# 查看当前游戏状态
[指令前缀]左轮 状态

# 显示帮助信息
[指令前缀]左轮 帮助

🎮 游戏功能

管理员专属功能

  • 装填子弹(指定数量):[指令前缀]装填 [数量] - 指定1-6发子弹,仅限管理员
  • 走火控制:[指令前缀]走火开 或 [指令前缀]走火关 - 控制随机走火功能,仅限管理员

所有用户可用功能

  • 装填子弹(随机):[指令前缀]装填 - 随机装填1-6发子弹,所有人可用
  • 参与游戏:[指令前缀]开枪 - 扣动扳机参与游戏
  • 查询状态:[指令前缀]左轮 状态 - 查看当前游戏状态(剩余子弹、当前弹膛)
  • 查看帮助:[指令前缀]左轮 帮助 - 显示完整的使用说明和游戏规则

AI自然语言交互

  • 开启游戏:"来玩左轮手枪"、"轮盘赌"、"再来一局"、"开始游戏"、"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
misfire_enabled_by_default 新群默认开启走火 false true/false
ai_trigger_delay AI工具触发延迟(秒) 2 任意正整数

⚠️ 重要提示:修改AI工具相关配置(如 ai_trigger_delay)后,需要重载插件才能生效。其他配置(如超时时间、走火概率等)会实时生效。

🎯 游戏规则

  1. 弹膛设置:6个弹膛,随机装填实弹
  2. 射击机制:轮流扣动扳机,空弹继续,实弹禁言
  3. 惩罚机制:中弹后随机禁言60-300秒
  4. 超时机制:装填后300秒内无操作自动结束
  5. 随机走火:群聊消息有0.3%概率触发走火(如开启)
  6. 数据持久化:走火配置自动保存,重启后保留

🔧 技术特性

代码规范

  • 类型注解: 完整的类型提示
  • 异步编程: 全异步处理,性能优异
  • 错误处理: 完善的异常捕获机制
  • 日志记录: 详细的操作日志
  • 文档规范: 标准化的docstring注释

架构设计

  • 模块化: 功能分离,易于维护
  • 可扩展: 支持功能扩展和定制
  • 高性能: 高效的状态管理
  • 内存安全: 自动资源清理
  • 数据持久化: 配置自动保存和加载

🤖 AI功能详情

纯触发器架构

本插件采用纯触发器架构,AI工具仅作为触发器,所有游戏逻辑、消息发送和用户交互均由主插件处理。

统一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.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 自然语言交互

⚠️ 注意事项

  1. 权限要求:需要管理员权限才能使用 [指令前缀]装填 [数量]、[指令前缀]走火开、[指令前缀]走火关 指令(注意:[指令前缀]装填 不带参数时所有人可用)
  2. 群聊专用:所有功能仅在群聊中可用,私聊无效
  3. 禁言功能:确保机器人有群管理权限,否则禁言会失败
  4. AI支持:需要在AstrBot中启用AI对话功能才能使用自然语言交互
  5. 游戏状态:同一时间一个群只能进行一个游戏
  6. 超时机制:游戏装填后300秒内无人操作会自动结束
  7. 数据持久化:走火配置会自动保存,重启插件后保留设置
  8. 管理员免疫:群主和管理员中弹后不会被禁言(显示免疫提示)

🐛 故障排除

游戏无法开始?

  • 检查是否有管理员权限
  • 确认在群聊中使用
  • 查看是否有进行中的游戏

AI功能不工作?

  • 确保启用了AI对话功能
  • 检查函数工具是否加载成功
  • 确认自然语言意图清晰

禁言失败?

  • 检查机器人群管理权限
  • 确认目标用户可禁言
  • 查看日志获取详细错误

📞 支持

如有问题请访问 GitHub仓库 提交issue。

🙏 致谢

本项目基于 astrbot_plugin_rg 进行修改和优化,感谢原作者 zgojin 的开源贡献!

🔫 准备好了吗?来一局刺激的左轮手枪对决吧!

AstrBot LogoAstrBot 插件市场社区

AstrBot 插件市场 是一个开放的插件分享平台,欢迎开发者们贡献优质插件。本站致力于为 AstrBot 用户提供高质量扩展,帮助您快速找到喜欢的插件,并鼓励社区伙伴分享使用心得、提出改进建议。

相关链接

官方项目主站 官方插件市场 官方项目仓库 侧边展示主站

开发相关

插件开发文档 快速提交插件 官方项目文档

© 2026 AstrBot 插件市场 Made with by Community