refactor: narrow trpg roll message matching
This commit is contained in:
@ -1,7 +1,10 @@
|
|||||||
|
import re
|
||||||
|
|
||||||
import nonebot
|
import nonebot
|
||||||
from nonebot.adapters import Event
|
from nonebot.adapters import Event
|
||||||
from nonebot_plugin_alconna import UniMessage, UniMsg
|
from nonebot_plugin_alconna import UniMessage, UniMsg
|
||||||
|
|
||||||
|
from konabot.common.nb import match_keyword
|
||||||
from konabot.common.permsys import register_default_allow_permission, require_permission
|
from konabot.common.permsys import register_default_allow_permission, require_permission
|
||||||
from konabot.plugins.trpg_roll.core import RollError, roll_expression
|
from konabot.plugins.trpg_roll.core import RollError, roll_expression
|
||||||
|
|
||||||
@ -11,18 +14,15 @@ register_default_allow_permission(PERMISSION_KEY)
|
|||||||
|
|
||||||
|
|
||||||
matcher = nonebot.on_message(
|
matcher = nonebot.on_message(
|
||||||
rule=require_permission(PERMISSION_KEY),
|
rule=match_keyword.match_keyword(re.compile(r"^roll(?:\s+.+)?$", re.I))
|
||||||
|
& require_permission(PERMISSION_KEY),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@matcher.handle()
|
@matcher.handle()
|
||||||
async def _(event: Event, msg: UniMsg):
|
async def _(event: Event, msg: UniMsg):
|
||||||
text = msg.extract_plain_text().strip()
|
text = msg.extract_plain_text().strip()
|
||||||
lowered = text.lower()
|
expr = text[4:].strip()
|
||||||
if lowered == "roll" or lowered.startswith("roll "):
|
|
||||||
expr = text[4:].strip()
|
|
||||||
else:
|
|
||||||
return
|
|
||||||
|
|
||||||
if not expr:
|
if not expr:
|
||||||
await UniMessage.text("用法:roll 3d6 / roll d20+5 / roll 2d8+1d4+3 / roll 4dF").send(event)
|
await UniMessage.text("用法:roll 3d6 / roll d20+5 / roll 2d8+1d4+3 / roll 4dF").send(event)
|
||||||
|
|||||||
Reference in New Issue
Block a user