nonebot-plugin-werewolf 1.1.6__py3-none-any.whl → 1.1.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nonebot_plugin_werewolf/__init__.py +1 -1
- nonebot_plugin_werewolf/config.py +76 -18
- nonebot_plugin_werewolf/constant.py +54 -46
- nonebot_plugin_werewolf/exception.py +2 -4
- nonebot_plugin_werewolf/game.py +193 -166
- nonebot_plugin_werewolf/matchers/__init__.py +1 -0
- nonebot_plugin_werewolf/matchers/depends.py +4 -4
- nonebot_plugin_werewolf/matchers/edit_behavior.py +205 -0
- nonebot_plugin_werewolf/matchers/edit_preset.py +11 -11
- nonebot_plugin_werewolf/matchers/message_in_game.py +3 -1
- nonebot_plugin_werewolf/matchers/poke/chronocat_poke.py +8 -5
- nonebot_plugin_werewolf/matchers/poke/ob11_poke.py +3 -3
- nonebot_plugin_werewolf/matchers/start_game.py +213 -175
- nonebot_plugin_werewolf/matchers/superuser_ops.py +3 -3
- nonebot_plugin_werewolf/models.py +31 -19
- nonebot_plugin_werewolf/player_set.py +10 -8
- nonebot_plugin_werewolf/players/__init__.py +1 -1
- nonebot_plugin_werewolf/players/can_shoot.py +15 -15
- nonebot_plugin_werewolf/players/civilian.py +1 -1
- nonebot_plugin_werewolf/players/guard.py +16 -14
- nonebot_plugin_werewolf/players/hunter.py +1 -1
- nonebot_plugin_werewolf/players/idiot.py +3 -3
- nonebot_plugin_werewolf/players/{joker.py → jester.py} +4 -5
- nonebot_plugin_werewolf/players/player.py +93 -29
- nonebot_plugin_werewolf/players/prophet.py +11 -10
- nonebot_plugin_werewolf/players/werewolf.py +63 -31
- nonebot_plugin_werewolf/players/witch.py +29 -12
- nonebot_plugin_werewolf/players/wolfking.py +1 -1
- nonebot_plugin_werewolf/utils.py +106 -7
- {nonebot_plugin_werewolf-1.1.6.dist-info → nonebot_plugin_werewolf-1.1.8.dist-info}/METADATA +27 -20
- nonebot_plugin_werewolf-1.1.8.dist-info/RECORD +35 -0
- {nonebot_plugin_werewolf-1.1.6.dist-info → nonebot_plugin_werewolf-1.1.8.dist-info}/WHEEL +1 -1
- nonebot_plugin_werewolf-1.1.6.dist-info/RECORD +0 -34
- {nonebot_plugin_werewolf-1.1.6.dist-info → nonebot_plugin_werewolf-1.1.8.dist-info}/LICENSE +0 -0
- {nonebot_plugin_werewolf-1.1.6.dist-info → nonebot_plugin_werewolf-1.1.8.dist-info}/top_level.txt +0 -0
@@ -6,7 +6,7 @@ from .player import Player
|
|
6
6
|
from .werewolf import Werewolf
|
7
7
|
|
8
8
|
|
9
|
-
@Player.register_role(Role.
|
9
|
+
@Player.register_role(Role.WOLFKING, RoleGroup.WEREWOLF)
|
10
10
|
class WolfKing(CanShoot, Werewolf):
|
11
11
|
@override
|
12
12
|
async def notify_role(self) -> None:
|
nonebot_plugin_werewolf/utils.py
CHANGED
@@ -1,20 +1,32 @@
|
|
1
|
+
import abc
|
1
2
|
import functools
|
2
3
|
import itertools
|
3
4
|
from collections import defaultdict
|
4
|
-
from typing import TYPE_CHECKING, Any, ClassVar, Generic,
|
5
|
+
from typing import TYPE_CHECKING, Any, ClassVar, Generic, ParamSpec, TypeVar
|
5
6
|
|
6
7
|
import anyio
|
7
8
|
import anyio.streams.memory
|
8
|
-
from
|
9
|
+
from nonebot.adapters import Bot, Event
|
10
|
+
from nonebot.internal.matcher import current_bot
|
11
|
+
from nonebot_plugin_alconna.uniseg import (
|
12
|
+
Button,
|
13
|
+
FallbackStrategy,
|
14
|
+
Keyboard,
|
15
|
+
Receipt,
|
16
|
+
Target,
|
17
|
+
UniMessage,
|
18
|
+
)
|
9
19
|
from nonebot_plugin_uninfo import Session
|
10
20
|
|
11
|
-
from .
|
21
|
+
from .config import config
|
22
|
+
from .constant import STOP_COMMAND, stop_command_prompt
|
12
23
|
|
13
24
|
if TYPE_CHECKING:
|
14
25
|
from .player_set import PlayerSet
|
15
26
|
from .players import Player
|
16
27
|
|
17
28
|
T = TypeVar("T")
|
29
|
+
P = ParamSpec("P")
|
18
30
|
|
19
31
|
|
20
32
|
def check_index(text: str, arrlen: int) -> int | None:
|
@@ -106,7 +118,10 @@ def as_player_set(*player: "Player") -> "PlayerSet":
|
|
106
118
|
|
107
119
|
|
108
120
|
class ObjectStream(Generic[T]):
|
109
|
-
|
121
|
+
class Unset: ...
|
122
|
+
|
123
|
+
__UNSET: ClassVar[Unset] = Unset()
|
124
|
+
|
110
125
|
_send: anyio.streams.memory.MemoryObjectSendStream[T]
|
111
126
|
_recv: anyio.streams.memory.MemoryObjectReceiveStream[T]
|
112
127
|
_closed: anyio.Event
|
@@ -119,7 +134,7 @@ class ObjectStream(Generic[T]):
|
|
119
134
|
await self._send.send(obj)
|
120
135
|
|
121
136
|
async def recv(self) -> T:
|
122
|
-
result = self.
|
137
|
+
result: Any = self.__UNSET
|
123
138
|
|
124
139
|
async def _recv() -> None:
|
125
140
|
nonlocal result
|
@@ -134,10 +149,10 @@ class ObjectStream(Generic[T]):
|
|
134
149
|
tg.start_soon(_recv)
|
135
150
|
tg.start_soon(_cancel)
|
136
151
|
|
137
|
-
if result is self.
|
152
|
+
if result is self.__UNSET:
|
138
153
|
raise anyio.EndOfStream
|
139
154
|
|
140
|
-
return
|
155
|
+
return result
|
141
156
|
|
142
157
|
def close(self) -> None:
|
143
158
|
self._closed.set()
|
@@ -148,3 +163,87 @@ class ObjectStream(Generic[T]):
|
|
148
163
|
|
149
164
|
async def wait_closed(self) -> None:
|
150
165
|
await self._closed.wait()
|
166
|
+
|
167
|
+
|
168
|
+
def _btn(label: str, text: str, /) -> Button:
|
169
|
+
return Button(flag="input", label=label, text=text)
|
170
|
+
|
171
|
+
|
172
|
+
def add_stop_button(msg: str | UniMessage, label: str | None = None) -> UniMessage:
|
173
|
+
if isinstance(msg, str):
|
174
|
+
msg = UniMessage.text(msg)
|
175
|
+
|
176
|
+
stop = stop_command_prompt()
|
177
|
+
return msg.keyboard(_btn(label or stop, stop))
|
178
|
+
|
179
|
+
|
180
|
+
def add_players_button(msg: str | UniMessage, players: "PlayerSet") -> UniMessage:
|
181
|
+
if isinstance(msg, str):
|
182
|
+
msg = UniMessage.text(msg)
|
183
|
+
|
184
|
+
pls = list(enumerate(players, 1))
|
185
|
+
while pls:
|
186
|
+
msg = msg.keyboard(*(_btn(p.name, str(i)) for i, p in pls[:3]))
|
187
|
+
pls = pls[3:]
|
188
|
+
return msg
|
189
|
+
|
190
|
+
|
191
|
+
class SendHandler(abc.ABC, Generic[P]):
|
192
|
+
bot: Bot
|
193
|
+
target: Event | Target
|
194
|
+
reply_to: bool | None = None
|
195
|
+
last_msg: UniMessage | None = None
|
196
|
+
last_receipt: Receipt | None = None
|
197
|
+
|
198
|
+
def update(self, target: Event | Target, bot: Bot | None = None) -> None:
|
199
|
+
self.bot = bot or current_bot.get()
|
200
|
+
self.target = target
|
201
|
+
|
202
|
+
async def _edit(self) -> None:
|
203
|
+
last = self.last_receipt
|
204
|
+
if (
|
205
|
+
config.enable_button
|
206
|
+
and self.last_msg is not None
|
207
|
+
and last is not None
|
208
|
+
and last.editable
|
209
|
+
):
|
210
|
+
await last.edit(self.last_msg.exclude(Keyboard))
|
211
|
+
|
212
|
+
async def _send(self, message: UniMessage) -> None:
|
213
|
+
if not config.enable_button:
|
214
|
+
message = message.exclude(Keyboard)
|
215
|
+
receipt = await message.send(
|
216
|
+
target=self.target,
|
217
|
+
bot=self.bot,
|
218
|
+
reply_to=self.reply_to,
|
219
|
+
fallback=FallbackStrategy.ignore,
|
220
|
+
)
|
221
|
+
self.last_msg = message
|
222
|
+
self.last_receipt = receipt
|
223
|
+
|
224
|
+
@abc.abstractmethod
|
225
|
+
def solve_msg(
|
226
|
+
self,
|
227
|
+
msg: UniMessage,
|
228
|
+
*args: P.args,
|
229
|
+
**kwargs: P.kwargs,
|
230
|
+
) -> UniMessage:
|
231
|
+
raise NotImplementedError
|
232
|
+
|
233
|
+
async def send(
|
234
|
+
self,
|
235
|
+
msg: str | UniMessage,
|
236
|
+
*args: P.args,
|
237
|
+
**kwargs: P.kwargs,
|
238
|
+
) -> Receipt:
|
239
|
+
msg = UniMessage.text(msg) if isinstance(msg, str) else msg
|
240
|
+
msg = self.solve_msg(msg, *args, **kwargs)
|
241
|
+
|
242
|
+
async with anyio.create_task_group() as tg:
|
243
|
+
tg.start_soon(self._edit)
|
244
|
+
tg.start_soon(self._send, msg)
|
245
|
+
|
246
|
+
if TYPE_CHECKING:
|
247
|
+
assert self.last_receipt is not None
|
248
|
+
|
249
|
+
return self.last_receipt
|
{nonebot_plugin_werewolf-1.1.6.dist-info → nonebot_plugin_werewolf-1.1.8.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: nonebot-plugin-werewolf
|
3
|
-
Version: 1.1.
|
3
|
+
Version: 1.1.8
|
4
4
|
Summary: 适用于 Nonebot2 的狼人杀插件
|
5
5
|
Author-email: wyf7685 <wyf7685@163.com>
|
6
6
|
License: MIT
|
@@ -10,12 +10,12 @@ Project-URL: bug-tracker, https://github.com/wyf7685/nonebot-plugin-werewolf/iss
|
|
10
10
|
Requires-Python: >=3.10
|
11
11
|
Description-Content-Type: text/markdown
|
12
12
|
License-File: LICENSE
|
13
|
-
Requires-Dist: nonebot2
|
14
|
-
Requires-Dist: nonebot-plugin-alconna
|
15
|
-
Requires-Dist: nonebot-plugin-localstore
|
16
|
-
Requires-Dist: nonebot-plugin-uninfo
|
17
|
-
Requires-Dist: nonebot-plugin-waiter
|
18
|
-
Requires-Dist: anyio
|
13
|
+
Requires-Dist: nonebot2>=2.3.3
|
14
|
+
Requires-Dist: nonebot-plugin-alconna>=0.52.1
|
15
|
+
Requires-Dist: nonebot-plugin-localstore>=0.7.1
|
16
|
+
Requires-Dist: nonebot-plugin-uninfo>=0.4.0
|
17
|
+
Requires-Dist: nonebot-plugin-waiter>=0.7.1
|
18
|
+
Requires-Dist: anyio>=4.6.0
|
19
19
|
|
20
20
|
<div align="center">
|
21
21
|
<a href="https://v2.nonebot.dev/store">
|
@@ -32,20 +32,13 @@ _✨ 简单的狼人杀插件 ✨_
|
|
32
32
|
[](./LICENSE)
|
33
33
|
[](https://pypi.python.org/pypi/nonebot-plugin-werewolf)
|
34
34
|
[](https://www.python.org/)
|
35
|
-
|
36
|
-
[](https://github.com/astral-sh/uv)
|
37
35
|
[](https://github.com/astral-sh/ruff)
|
38
|
-
[](https://pycqa.github.io/isort/)
|
39
|
-
[](https://github.com/psf/black)
|
40
|
-
[](https://github.com/Microsoft/pyright)
|
41
36
|
|
42
37
|
[](https://wakatime.com/badge/user/b097681b-c224-44ec-8e04-e1cf71744655/project/70a7f68d-5625-4989-9476-be6877408332)
|
43
38
|
[](https://results.pre-commit.ci/latest/github/wyf7685/nonebot-plugin-werewolf/master)
|
44
|
-
[](https://github.com/wyf7685/nonebot-plugin-werewolf/actions/workflows/pypi-publish.yml)
|
39
|
+
[](https://github.com/wyf7685/nonebot-plugin-werewolf/actions/workflows/lint.yml)
|
46
40
|
|
47
41
|
<!-- https://github.com/lgc2333/nonebot-registry-badge -->
|
48
|
-
|
49
42
|
[](https://registry.nonebot.dev/plugin/nonebot-plugin-werewolf:nonebot_plugin_werewolf)
|
50
43
|
[](https://registry.nonebot.dev/plugin/nonebot-plugin-werewolf:nonebot_plugin_werewolf)
|
51
44
|
|
@@ -108,10 +101,11 @@ _✨ 简单的狼人杀插件 ✨_
|
|
108
101
|
|
109
102
|
在 nonebot2 项目的 `.env` 文件中添加如下配置:
|
110
103
|
|
111
|
-
| 配置项 | 必填 | 默认值 |
|
112
|
-
| :-----------------------: | :---: | :-----: |
|
113
|
-
| `werewolf__enable_poke` | 否 | `True` |
|
114
|
-
| `werewolf__enable_button` | 否 | `False` |
|
104
|
+
| 配置项 | 必填 | 默认值 | 说明 |
|
105
|
+
| :-----------------------: | :---: | :-----: | :--------------------------: |
|
106
|
+
| `werewolf__enable_poke` | 否 | `True` | 是否使用戳一戳简化操作流程 |
|
107
|
+
| `werewolf__enable_button` | 否 | `False` | 是否在交互中添加按钮 |
|
108
|
+
| `werewolf__stop_command` | 否 | `stop` | 修改游戏进程中的 `stop` 命令 |
|
115
109
|
|
116
110
|
`werewolf__enable_poke` 仅在 `OneBot V11` 适配器 / `Satori/chronocat` 下生效
|
117
111
|
|
@@ -150,11 +144,14 @@ _✨ 简单的狼人杀插件 ✨_
|
|
150
144
|
| `退出游戏` | 群员 | 否 | 群聊 | _[准备阶段]_ 玩家退出游戏 |
|
151
145
|
| `中止游戏` | 超级用户 | 是 | 群聊 | _[游戏内]_ 超级用户强制中止游戏 |
|
152
146
|
| `狼人杀预设` | 超级用户 | 否 | 任意 | _[游戏外]_ 超级用户编辑游戏预设 |
|
147
|
+
| `狼人杀配置` | 超级用户 | 否 | 任意 | _[游戏外]_ 超级用户编辑游戏配置 |
|
153
148
|
|
154
149
|
- 发起游戏时添加 `restart`/`重开`, 可加载上一次游戏的玩家列表, 快速发起游戏。例: `werewolf restart`/`狼人杀 重开`
|
155
150
|
|
156
151
|
- `狼人杀预设` 命令用法可通过 `狼人杀预设 --help` 获取,或参考 [游戏内容](#游戏内容) 部分的介绍
|
157
152
|
|
153
|
+
- `狼人杀配置` 命令用法可通过 `狼人杀预设 --help` 获取
|
154
|
+
|
158
155
|
- 对于 `OneBot V11` 适配器和 `Satori` 适配器的 `chronocat`, 启用配置项 `werewolf__enable_poke` 后, 可以使用戳一戳代替 _准备阶段_ 的 `加入游戏` 操作 和 游戏内的 `stop` 命令
|
159
156
|
|
160
157
|
- _其他交互参考游戏内提示_
|
@@ -242,6 +239,16 @@ _✨ 简单的狼人杀插件 ✨_
|
|
242
239
|
|
243
240
|
<!-- CHANGELOG -->
|
244
241
|
|
242
|
+
- 2025.02.13 v1.1.8
|
243
|
+
|
244
|
+
- 优化交互按钮
|
245
|
+
- 新增命令 `狼人杀配置` 用于调整游戏行为
|
246
|
+
- 新增配置项 `werewolf__stop_command`
|
247
|
+
|
248
|
+
- 2024.10.31 v1.1.7
|
249
|
+
|
250
|
+
- *Bug fix*
|
251
|
+
|
245
252
|
- 2024.10.31 v1.1.6
|
246
253
|
|
247
254
|
- 新增超级用户中止游戏 (#7)
|
@@ -0,0 +1,35 @@
|
|
1
|
+
nonebot_plugin_werewolf/__init__.py,sha256=LbJAHz_mAXZlSUmxAAF6dmfaiSfKnV5VRBZU0Ln2tDo,931
|
2
|
+
nonebot_plugin_werewolf/config.py,sha256=yFngZVp4yoc2v5uJ_Invwu2K6a90gjBiSDnMDLtltzQ,3120
|
3
|
+
nonebot_plugin_werewolf/constant.py,sha256=VU0fVdO_adbbRWaeynxoD1RQ_9GUuzUz-iuoIs8SQSE,1932
|
4
|
+
nonebot_plugin_werewolf/exception.py,sha256=SP9RdzsREB6PtpRfhZjxqybtvO0aw48hpN9QMU9jDZY,366
|
5
|
+
nonebot_plugin_werewolf/game.py,sha256=fak8DuWUKhPuuW3plT0Qv0D0yawAq8CTb6cBC8r1Fp0,19229
|
6
|
+
nonebot_plugin_werewolf/models.py,sha256=nE8QY2tag_Jrj6oXBVa6pM4BzxDEIquuuQo5yP-ev78,1865
|
7
|
+
nonebot_plugin_werewolf/player_set.py,sha256=zhri5GdE8YpQn7aK21dYifMwSFVQ2rGE-5o9EQ51THE,2604
|
8
|
+
nonebot_plugin_werewolf/utils.py,sha256=ZuXN1nyI7RtxrvSmnaNmNe62BoO9cXB0aaIPiM8YiL8,6766
|
9
|
+
nonebot_plugin_werewolf/matchers/__init__.py,sha256=lQ9AZDEWgtbP-W8KWvjkEYc_UfTHSUwjaGdZ7PT3z0E,219
|
10
|
+
nonebot_plugin_werewolf/matchers/depends.py,sha256=TITA2brcyHSavFA3K_HgqkoQtkwxdM8miyEKafcfZz4,1343
|
11
|
+
nonebot_plugin_werewolf/matchers/edit_behavior.py,sha256=9y5_JSlDgPadzRC7zRS050_L4jUvHy5dJb18_VXPVtI,6521
|
12
|
+
nonebot_plugin_werewolf/matchers/edit_preset.py,sha256=PXABbjhQM0DiKfEqjOMKtSrJs2fKoVh91iTJlVD3hKA,8089
|
13
|
+
nonebot_plugin_werewolf/matchers/message_in_game.py,sha256=Lm9VqZcnAU023SJ6R8LH-3-tSp8KRtmOJ4x4dTZGb1o,969
|
14
|
+
nonebot_plugin_werewolf/matchers/start_game.py,sha256=C8wCpvAETNP1K3lrW6KVc23PaeiXJ_zgkJ_mk7ejamA,11951
|
15
|
+
nonebot_plugin_werewolf/matchers/superuser_ops.py,sha256=oz-znCaraxCJS08Ox1xcbhC0X-Uy-WXeNYTH1LgT2zU,700
|
16
|
+
nonebot_plugin_werewolf/matchers/poke/__init__.py,sha256=gYysvGjztN3iDQpX6v5nkPT195FXnk7fqP9kzByTES0,220
|
17
|
+
nonebot_plugin_werewolf/matchers/poke/chronocat_poke.py,sha256=EjkJflxPLu9_rm-4vQqud9FVqDoQN68WcDJD_Ok2yH8,4082
|
18
|
+
nonebot_plugin_werewolf/matchers/poke/ob11_poke.py,sha256=8jmguMaVb80Rp4Z0KmVoQrTgLW_0UB75P2xlsAhSAgQ,2656
|
19
|
+
nonebot_plugin_werewolf/players/__init__.py,sha256=HvxLDkRS6mcT_IxCqEVdvFL8qh-EjBYNONpgCbM2RSw,382
|
20
|
+
nonebot_plugin_werewolf/players/can_shoot.py,sha256=XWjnf2_u29ciozu7ln9CH1eX9uoc9ZbxIL3WVPsgCYE,1887
|
21
|
+
nonebot_plugin_werewolf/players/civilian.py,sha256=QaDZFwgBp52VOnm5TqL0f_4JrtnS4ryHT5g2cisfjD8,155
|
22
|
+
nonebot_plugin_werewolf/players/guard.py,sha256=OKafOQ7VW0si45QJsWmdfYyK1QkTNLIVNj0bMy4v8AE,1223
|
23
|
+
nonebot_plugin_werewolf/players/hunter.py,sha256=E2CY7nP8UfbGh8Aj-LvuUX987YP513RM8hlZ4q-dy0g,193
|
24
|
+
nonebot_plugin_werewolf/players/idiot.py,sha256=mj76o5DdCX7gPkHkxAe6OB4l-LrbjvPgP-uGASMhArQ,1431
|
25
|
+
nonebot_plugin_werewolf/players/jester.py,sha256=XA_d9mCkVhdsbkrm4KEhb0hMyGFdlPEnpbTH_8Z0QGQ,828
|
26
|
+
nonebot_plugin_werewolf/players/player.py,sha256=zo1Q7RTFvFiH7eLj0060ebXn5l8OAMIUGzriuc8O_4c,8819
|
27
|
+
nonebot_plugin_werewolf/players/prophet.py,sha256=SbzsiaK-ty7bNwvysI5DLCNDwbZg5KyDTj37eOv7kYQ,945
|
28
|
+
nonebot_plugin_werewolf/players/werewolf.py,sha256=XSeXXgtzEXMo9iSAErWhLKlM02kmUHfL4-Q0iBwy6MM,4457
|
29
|
+
nonebot_plugin_werewolf/players/witch.py,sha256=gLFYN-IF1chlXs-BZiQ1g99A3o_qjg4YvftLlBx65Nw,2853
|
30
|
+
nonebot_plugin_werewolf/players/wolfking.py,sha256=93_VBZJSZfnsnLHENgZwhQOCAUwgClfTP1zJxm0taWk,438
|
31
|
+
nonebot_plugin_werewolf-1.1.8.dist-info/LICENSE,sha256=B_WbEqjGr6GYVNfEJPY31T1Opik7OtgOkhRs4Ig3e2M,1064
|
32
|
+
nonebot_plugin_werewolf-1.1.8.dist-info/METADATA,sha256=tzbbeG-N9sF_GiFq9WU77cuzBCJoBErHc2cEDxi1Ylo,11744
|
33
|
+
nonebot_plugin_werewolf-1.1.8.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
34
|
+
nonebot_plugin_werewolf-1.1.8.dist-info/top_level.txt,sha256=wLTfg8sTKbH9lLT9LtU118C9cTspEBJareLsrYM52YA,24
|
35
|
+
nonebot_plugin_werewolf-1.1.8.dist-info/RECORD,,
|
@@ -1,34 +0,0 @@
|
|
1
|
-
nonebot_plugin_werewolf/__init__.py,sha256=ZomfjWnGRnFuh3I__spYbLRE1Z3wTUthwXzc5x8YPJw,931
|
2
|
-
nonebot_plugin_werewolf/config.py,sha256=bMRRqNVWNsFDKyijxZZYPN7DCAf9bYf2MdfbPXE239w,1287
|
3
|
-
nonebot_plugin_werewolf/constant.py,sha256=_ngw2xtXVZMTQXQ0gv4l9h4Lo1jq5v28fKLOGJ7G57o,1796
|
4
|
-
nonebot_plugin_werewolf/exception.py,sha256=2F2kZsMaRIa7jOiIQJiM10K7Z59ouCpaZENcnEcEEXQ,398
|
5
|
-
nonebot_plugin_werewolf/game.py,sha256=xU8IcrWQNRUjzfPIAbm1XCeshwfy8SWgxapUP1_NGOw,18925
|
6
|
-
nonebot_plugin_werewolf/models.py,sha256=ljWy6BaTVyIK4Ng-wUVRteBLZe2pQLf8l3yWFZzWXHQ,1505
|
7
|
-
nonebot_plugin_werewolf/player_set.py,sha256=84hZOOAaPjTyZZDje6mNy7zm4G5UH2nGDq1pvDNFT9w,2538
|
8
|
-
nonebot_plugin_werewolf/utils.py,sha256=PBgadYdF3IQbaVPjcmstmsOGddfPvj8rcbiYQllHFYY,4096
|
9
|
-
nonebot_plugin_werewolf/matchers/__init__.py,sha256=BnzEDmW8n1wkyI-un0DYXt2k_6CFv6NE8itZ2daw4zQ,174
|
10
|
-
nonebot_plugin_werewolf/matchers/depends.py,sha256=poMQJ7Mzd3IZFvh2MvnfYdnnb2c-r6XFK_IOr50PL3o,1321
|
11
|
-
nonebot_plugin_werewolf/matchers/edit_preset.py,sha256=gKd1csoR9u4VoeulTtxUUgxsOdgB0SDC1FMxMRdgw5I,8087
|
12
|
-
nonebot_plugin_werewolf/matchers/message_in_game.py,sha256=lW0TMC85B-g9wZQcL7Q-LQSYyvO4-uem3Ye1szX2hU8,837
|
13
|
-
nonebot_plugin_werewolf/matchers/start_game.py,sha256=YM4VGKpV8GQ29SgPh0jvWUHnx8onAvx_m4RWyeuRxmc,10187
|
14
|
-
nonebot_plugin_werewolf/matchers/superuser_ops.py,sha256=Xjsmwzkt6Y-M_QlQwUL0EXN_fDqEqKSM4fcLk9fTvDY,685
|
15
|
-
nonebot_plugin_werewolf/matchers/poke/__init__.py,sha256=gYysvGjztN3iDQpX6v5nkPT195FXnk7fqP9kzByTES0,220
|
16
|
-
nonebot_plugin_werewolf/matchers/poke/chronocat_poke.py,sha256=SrFN8dQELFVDR5US9sOcE2gaOnH7AFiRVVK2RNa-Y5o,4023
|
17
|
-
nonebot_plugin_werewolf/matchers/poke/ob11_poke.py,sha256=LROxtbauw4xbB8UKglsx6b6hkKWs_17HmgK4NTXW1HY,2640
|
18
|
-
nonebot_plugin_werewolf/players/__init__.py,sha256=djAI5XxR2I-XvnH-lVqX_YCHB_AiT-6jdmwFE1ffN_0,379
|
19
|
-
nonebot_plugin_werewolf/players/can_shoot.py,sha256=Z0AR_jCfcU1ps5629sWB_mH8O_iVLy8-DyePgBfznNA,1814
|
20
|
-
nonebot_plugin_werewolf/players/civilian.py,sha256=9m-bgzqHji-9Aejl2TnchSIRw_SZpKLqCGdaEWXhopc,155
|
21
|
-
nonebot_plugin_werewolf/players/guard.py,sha256=gHPlIfBXtQ8MSoWvucIIq0XrJQx9KIIKIVl-jwAHhgc,1132
|
22
|
-
nonebot_plugin_werewolf/players/hunter.py,sha256=q17IjSXt5knDAc49NbV0NCwNW7qASqODUNgC0L1zqeI,193
|
23
|
-
nonebot_plugin_werewolf/players/idiot.py,sha256=jz13BN4BsYcmiZdTwSlXUm4yc0KR8GUmQmq2GI7_Kzo,1431
|
24
|
-
nonebot_plugin_werewolf/players/joker.py,sha256=n_jlddGMpFJ0O0sc_1J6IybfPsPJSWeS4GC0S6IZoTk,826
|
25
|
-
nonebot_plugin_werewolf/players/player.py,sha256=hEbGRF5vrgKYKKEC5DB3JUIG6SEyvoHTYGZUqHPjf8Q,6953
|
26
|
-
nonebot_plugin_werewolf/players/prophet.py,sha256=wrTR8BnktiZ8aEI4VzYa5kt4GXyFnyi5wZmCO933-rE,917
|
27
|
-
nonebot_plugin_werewolf/players/werewolf.py,sha256=jZMzYE0LiwsxO8XHMlWRk25XO5gGe24t87NqzLc3I4A,3287
|
28
|
-
nonebot_plugin_werewolf/players/witch.py,sha256=FOM_MMKUjO6QpOQK9JvHq9zwa4GTVCVnW7UtPgT_BTw,2360
|
29
|
-
nonebot_plugin_werewolf/players/wolfking.py,sha256=Y_G1eDdFYGTip5Pl9Sz0OvPsP0aiiFH8NkfGiFu7r1E,438
|
30
|
-
nonebot_plugin_werewolf-1.1.6.dist-info/LICENSE,sha256=B_WbEqjGr6GYVNfEJPY31T1Opik7OtgOkhRs4Ig3e2M,1064
|
31
|
-
nonebot_plugin_werewolf-1.1.6.dist-info/METADATA,sha256=pBGQnG8aePnlLEcZBlF_BqrIe4Y4O8oMK5mFwPGLWwg,11954
|
32
|
-
nonebot_plugin_werewolf-1.1.6.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
33
|
-
nonebot_plugin_werewolf-1.1.6.dist-info/top_level.txt,sha256=wLTfg8sTKbH9lLT9LtU118C9cTspEBJareLsrYM52YA,24
|
34
|
-
nonebot_plugin_werewolf-1.1.6.dist-info/RECORD,,
|
File without changes
|
{nonebot_plugin_werewolf-1.1.6.dist-info → nonebot_plugin_werewolf-1.1.8.dist-info}/top_level.txt
RENAMED
File without changes
|