mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
25 lines
989 B
Python
25 lines
989 B
Python
from nonebot.exception import MockApiException
|
|
from nonebot.adapters.onebot.v11 import Bot, MessageSegment
|
|
from utils.manager import group_manager
|
|
from utils.utils import get_message_text
|
|
from typing import Dict, Any
|
|
import re
|
|
|
|
|
|
@Bot.on_calling_api
|
|
async def handle_api_call(bot: Bot, api: str, data: Dict[str, Any]):
|
|
r = None
|
|
if (
|
|
(api == "send_msg" and data["message"] == "group_id" or api == "send_group_msg")
|
|
and (r := re.search("^\[\[_task\|(.*)]]", get_message_text(data["message"])))
|
|
and r.group(1) in group_manager.get_task_data().keys()
|
|
):
|
|
task = r.group(1)
|
|
group_id = data["group_id"]
|
|
if not await group_manager.check_group_task_status(group_id, task):
|
|
raise MockApiException(f"被动技能 {task} 处于关闭状态...")
|
|
else:
|
|
msg = str(data["message"][0])
|
|
msg = msg.replace(f"[[_task|{task}]]", "")
|
|
data["message"][0] = MessageSegment.text(msg)
|