mirror of
https://github.com/LiteyukiStudio/LiteyukiBot.git
synced 2024-11-14 14:57:25 +08:00
1.8 KiB
1.8 KiB
title |
---|
liteyuki.message.matcher |
class Matcher
method __init__(self, rule: Rule, priority: int, block: bool)
说明: 匹配器
参数:
- rule: 规则
- priority: 优先级 >= 0
- block: 是否阻断后续优先级更低的匹配器
源代码
def __init__(self, rule: Rule, priority: int, block: bool):
"""
匹配器
Args:
rule: 规则
priority: 优先级 >= 0
block: 是否阻断后续优先级更低的匹配器
"""
self.rule = rule
self.priority = priority
self.block = block
self.handlers: list[EventHandler] = []
method handle(self) -> Callable[[EventHandler], EventHandler]
说明: 添加处理函数,装饰器
返回: 装饰器 handler
源代码
def handle(self) -> Callable[[EventHandler], EventHandler]:
"""
添加处理函数,装饰器
Returns:
装饰器 handler
"""
def decorator(handler: EventHandler) -> EventHandler:
self.handlers.append(handler)
return handler
return decorator
async method run(self, event: MessageEvent) -> None
说明: 运行处理函数
参数:
- event:
源代码
async def run(self, event: MessageEvent) -> None:
"""
运行处理函数
Args:
event:
Returns:
"""
if not await self.rule(event):
return
for handler in self.handlers:
try:
await handler(event)
except Exception:
traceback.print_exc()
var EventHandler = Callable[[MessageEvent], Coroutine[None, None, Any]]
- 类型:
TypeAlias