Skip to main content

nonebot-plugin-werewolf

✨ 简单的狼人杀插件 ✨

license pypi python ruff

wakatime pre-commit lint

NoneBot Registry Supported Adapters

📖 介绍

和朋友们来一场紧张刺激的狼人杀游戏

starify
Star History

💿 安装

使用 nb-cli 安装 在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装
nb plugin install nonebot-plugin-werewolf
使用包管理器安装

在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令

uv
uv add nonebot-plugin-werewolf
pdm
pdm add nonebot-plugin-werewolf
poetry
poetry add nonebot-plugin-werewolf
conda
conda install nonebot-plugin-werewolf
pip
pip install nonebot-plugin-werewolf

打开 nonebot2 项目根目录下的 pyproject.toml 文件, 在 [tool.nonebot] 部分追加写入

plugins = ["nonebot_plugin_werewolf"]

⚙️ 配置

在 nonebot2 项目的 .env 文件中添加如下配置:

配置项 必填 默认值 类型 说明
werewolf__enable_poke 否 True bool 是否使用戳一戳简化操作流程
werewolf__enable_button 否 False bool 是否在交互中添加按钮
werewolf__stop_command 否 stop str | set[str] 修改游戏进程中的 stop 命令
werewolf__require_at 否 True bool | RequireAtConfig 部分命令是否需要 at 机器人触发
werewolf__matcher_priority 否 - MatcherPriorityConfig 配置插件 matcher 注册的优先级
werewolf__use_cmd_start 否 None bool | None 是否使用配置项 COMMAND_START 来作为命令前缀

werewolf__enable_poke 仅在 OneBot V11 适配器 / Satori/chronocat 下生效

werewolf__enable_button 仅在 Telegram 适配器下通过测试,不保证在其他适配器的可用性,如有疑问欢迎提出。

werewolf__require_at 示例
# 所有命令均需 at 触发
werewolf__require_at=true

# 所有命令均不需 at 触发
werewolf__require_at=false

# 狼人杀命令需要 at, 中止游戏命令不需要 at
werewolf__require_at='{"start": true, "terminate": false}'

werewolf__matcher_priority 的 matcher 优先级参考 官方文档

  • 一般情况下不需要修改此配置, 插件的默认优先级可以参考 这里 的 MatcherPriorityConfig
  • 如果遇到与其他插件的命令冲突, 可考虑修改此处的优先级配置
  • 配置应填入 JSON 对象, 可用键: start terminate preset behavior in_game stop

werewolf__use_cmd_start 为 None 时,使用 alc 的 全局配置

🚀 使用

举例

众所周知, QQ 官方机器人对主动消息有次数限制 (参考)

因此,本插件可能无法在 adapter-qq 下正常运行

而对于野生机器人,现有协议端通常不支持或不建议使用临时私聊消息。

在使用本插件前,应当确保机器人可以正常向玩家发送私聊消息。即保证机器人与玩家为好友关系

📋 指令表

指令 权限 需要@ 范围 说明
werewolf/狼人杀 群员 是 群聊 [游戏外] 发起游戏 (进入准备阶段)
开始游戏 游戏发起者 否 群聊 [准备阶段] 游戏发起者开始游戏
结束游戏 游戏发起者/超级用户 否 群聊 [准备阶段] 游戏发起者/超级用户 结束游戏
当前玩家 群员 否 群聊 [准备阶段] 列出参与游戏的玩家列表
加入游戏 群员 否 群聊 [准备阶段] 玩家加入游戏
退出游戏 群员 否 群聊 [准备阶段] 玩家退出游戏
中止游戏 超级用户 是 群聊 [游戏内] 超级用户强制中止游戏
狼人杀预设 超级用户 否 任意 [游戏外] 超级用户编辑游戏预设
狼人杀配置 超级用户 否 任意 [游戏外] 超级用户编辑游戏配置
  • 超级用户 为 nonebot2 配置项中的 SUPERUSERS, 配置说明参考 官方文档

  • 发起游戏时添加 restart/重开, 可加载上一次游戏的玩家列表, 快速发起游戏。例: werewolf restart/狼人杀 重开

  • 狼人杀预设 命令用法可通过 狼人杀预设 --help 获取,或参考 游戏内容 部分的介绍

  • 狼人杀配置 命令用法可通过 狼人杀预设 --help 获取

  • 对于 OneBot V11 适配器和 Satori 适配器的 chronocat, 启用配置项 werewolf__enable_poke 后, 可以使用戳一戳代替 准备阶段 的 加入游戏 操作 和 游戏内的 stop 命令

  • 其他交互参考游戏内提示

🎭 游戏内容

插件中保存了一份 职业预设, 内容如下

总人数 狼人 神职 平民
6 1 2 3
7 2 2 3
8 2 3 3
9 2 4 3
10 3 4 3
11 3 5 3
12 4 5 3

职业预设可以通过命令 狼人杀预设 职业 ... 修改

示例
  • 命令: 狼人杀预设 职业 6 1 3 2

  • 上述命令指定当总人数为 6 时,狼人、神职、平民的数量分别为 1、3、2


对于狼人和神职的职业分配,默认有如下优先级:

  • 狼人: 狼人, 狼人, 狼王, 狼人
  • 神职: 女巫, 预言家, 猎人, 守卫, 白痴

职业分配优先级可以通过命令 狼人杀预设 狼人/神职 修改

示例

命令 狼人杀预设 狼人

  • 命令: 狼人杀预设 狼人 狼 狼王 狼 狼

  • 上述命令指定狼人的职业优先级为 狼人, 狼王, 狼人, 狼人

命令 狼人杀预设 神职

  • 命令: 狼人杀预设 神职 预言家 女巫 猎人 守卫 白痴

  • 上述命令指定神职的职业优先级为 预言家, 女巫, 猎人, 守卫, 白痴

对于 小丑 职业,当预设中的平民数量大于或等于 2 时,将有 一定概率 将其中一个平民替换为小丑。

小丑属于第三方阵营,胜利条件为在投票阶段被票出,在预言家查验及游戏进程判断时视作平民。

小丑生成概率可以通过命令 狼人杀预设 小丑 <概率> 设置,默认值为 0 (不生成小丑)。

🔧 已知问题

已知问题
  • 截止 chronocat v0.2.19, 调用 guild.member.get / user.get 均无法获取用户名,这将导致在交互过程中的玩家名显示为用户 ID

  • v1.1.6 添加的按钮操作在 discord 适配器中不可用, 已在 v1.1.12 禁用 (2e31d43)

📝 更新日志

更新日志
  • 2025.06.04 v1.1.13

    • 添加配置项 werewolf__use_cmd_start, 用于配置插件命令前缀
    • 调整 v1.1.11 优先级配置的默认值
  • 2025.06.01 v1.1.12

    • 禁用 discord 适配器中的按钮操作 以后会写适配的...吗?
  • 2025.04.20 v1.1.11

    • 添加配置项 werewolf__require_at, 用于配置命令是否需要 at 机器人触发
    • 添加配置项 werewolf__matcher_priority, 用于配置插件 matcher 注册优先级
  • 2025.04.17 v1.1.10

    • 添加狼人多选目标配置项显示
    • 在游戏开始时打乱并固定轮流发言模式的发言顺序 (#20)
  • 2025.04.15 v1.1.9

    • 添加游戏行为配置 werewolf_multi_select
    • 重构玩家类
    • 添加轮流发言模式缺失的 at 消息段 (#19)
  • 2025.02.13 v1.1.8

    • 优化交互按钮
    • 新增命令 狼人杀配置 用于调整游戏行为
    • 新增配置项 werewolf__stop_command
  • 2024.10.31 v1.1.7

    • Bug fix
  • 2024.10.31 v1.1.6

    • 新增超级用户中止游戏 (#7)
    • 新增快速发起上次游戏 (#8)
    • 准备阶段添加可选的交互按钮
    • 新增超级用户修改游戏预设 (#9)
  • 2024.10.23 v1.1.5

    • 添加对 chronocat:poke 的支持
    • 游戏内 stop 命令使用 COMMAND_START
    • 使用 anyio 重写并发逻辑
  • 2024.10.06 v1.1.3

    • 使用 RF-Tar-Railt/nonebot-plugin-uninfo 获取用户数据
    • 优化交互文本
  • 2024.09.18 v1.1.2

    • 修改 Python 需求为 >=3.10
  • 2024.09.11 v1.1.1

    • 修改 Python 需求为 >=3.11
    • 优化交互结果处理 可以在一局游戏中加入多个女巫了
  • 2024.09.09 v1.1.0

    • 新增职业 小丑
    • 修复守卫无法保护自己的 bug
    • 添加部分特殊职业的说明
    • 添加游戏过程中的日志输出
  • 2024.09.04 v1.0.7

    • 优先使用群名片作为玩家名
    • 支持通过配置项修改职业分配优先级
  • 2024.09.03 v1.0.6

    • 修复预言家查验狼王返回好人的 bug
  • 2024.09.03 v1.0.5

    • 优化玩家交互体验
    • 添加游戏结束后死亡报告
  • 2024.08.31 v1.0.1

    • 支持通过配置项修改职业预设
  • 2024.08.31 v1.0.0

    • 插件开源

🎉 鸣谢

Metadata

Release files for nonebot-plugin-werewolf 1.1.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nonebot-plugin-werewolf 1.1.13
File Size Uploaded Provenance Actions
nonebot_plugin_werewolf-1.1.13.tar.gz 43.1 kB With provenance Details for nonebot_plugin_werewolf-1.1.13.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for nonebot-plugin-werewolf 1.1.13
File Interpreter ABI Platform Actions
nonebot_plugin_werewolf-1.1.13-py3-none-any.whl Python 3 none any Details for nonebot_plugin_werewolf-1.1.13-py3-none-any.whl

Total release size: 92.3 kB

Release files / nonebot_plugin_werewolf-1.1.13.tar.gz

Download URL nonebot_plugin_werewolf-1.1.13.tar.gz
Size 43.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ed187d68bba38471552b6bb6e49d970f1915978d9565857abb89932c16f996e2
BLAKE2b-256 checksum
How to use checksums
7f9fce6938c93ad52acc5147720317c3c76696e43e029bf15f0019f53530630f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 4, 2025.

Transparency log

Release files / nonebot_plugin_werewolf-1.1.13-py3-none-any.whl

Download URL nonebot_plugin_werewolf-1.1.13-py3-none-any.whl
Size 49.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8af297561b54cbf19b73a08816138a8d38a2ca0266e54012fa204d8c419d0318
BLAKE2b-256 checksum
How to use checksums
db37fc7190ba139da1223134714c7374874a0d232cf6ee634cb1a3381b3686fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 4, 2025.

Transparency log

Security for nonebot-plugin-werewolf 1.1.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for nonebot_plugin_werewolf-1.1.13.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 4, 2025.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page