11
This commit is contained in:
+50
-2
@@ -5,16 +5,20 @@
|
|||||||
import json
|
import json
|
||||||
import shutil
|
import shutil
|
||||||
import pathlib
|
import pathlib
|
||||||
import asyncio
|
|
||||||
import inspect
|
import inspect
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
import asyncio
|
||||||
|
|
||||||
from astrbot.api.event import filter, AstrMessageEvent, MessageEventResult, MessageChain
|
from astrbot.api.event import filter, AstrMessageEvent, MessageEventResult, MessageChain, filter
|
||||||
from astrbot.api.star import Context, Star, register, StarTools
|
from astrbot.api.star import Context, Star, register, StarTools
|
||||||
from astrbot.api import logger
|
from astrbot.api import logger
|
||||||
from astrbot.api import AstrBotConfig
|
from astrbot.api import AstrBotConfig
|
||||||
import astrbot.api.message_components as Comp
|
import astrbot.api.message_components as Comp
|
||||||
|
from astrbot.core.utils.session_waiter import (
|
||||||
|
SessionController,
|
||||||
|
session_waiter,
|
||||||
|
)
|
||||||
|
|
||||||
from .jx3_data import JX3Service
|
from .jx3_data import JX3Service
|
||||||
from .async_task import AsyncTask
|
from .async_task import AsyncTask
|
||||||
@@ -270,6 +274,50 @@ class JX3Commands(Star):
|
|||||||
logger.error(f"功能函数执行错误: {e}")
|
logger.error(f"功能函数执行错误: {e}")
|
||||||
yield event.plain_result("猪脑过载,请稍后再试")
|
yield event.plain_result("猪脑过载,请稍后再试")
|
||||||
|
|
||||||
|
async def jx3_hong(self, event: AstrMessageEvent,name: str = "易筋经"):
|
||||||
|
"""剑三 宏 心法"""
|
||||||
|
# ① 调用你的搜索接口
|
||||||
|
macros = "已查询到的内容"
|
||||||
|
if not macros:
|
||||||
|
yield event.plain_result(f"未搜索到与【{name}】相关的宏")
|
||||||
|
return
|
||||||
|
|
||||||
|
yield event.plain_result(macros)
|
||||||
|
user_id = event.get_sender_id()
|
||||||
|
# ③ 进入等待用户选择阶段
|
||||||
|
@session_waiter(timeout=10)
|
||||||
|
async def macro_select_waiter(
|
||||||
|
controller: SessionController,
|
||||||
|
new_event: AstrMessageEvent
|
||||||
|
):
|
||||||
|
if new_event.get_sender_id() != user_id:
|
||||||
|
return
|
||||||
|
|
||||||
|
msg = new_event.message_str.strip()
|
||||||
|
logger.debug(msg)
|
||||||
|
|
||||||
|
if not msg.isdigit():
|
||||||
|
controller.stop()
|
||||||
|
return
|
||||||
|
|
||||||
|
# ✅ 关键:显式发送
|
||||||
|
await new_event.send(
|
||||||
|
new_event.plain_result(f"你输入的是:{msg}")
|
||||||
|
)
|
||||||
|
|
||||||
|
controller.stop()
|
||||||
|
|
||||||
|
try:
|
||||||
|
await macro_select_waiter(event) # type: ignore
|
||||||
|
except TimeoutError:
|
||||||
|
yield event.plain_result("选择宏超时,已取消")
|
||||||
|
except Exception:
|
||||||
|
logger.error("宏选择发生异常", exc_info=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async def jx3_jinjia(self, event: AstrMessageEvent,server: str = "", limit:str = "15"):
|
async def jx3_jinjia(self, event: AstrMessageEvent,server: str = "", limit:str = "15"):
|
||||||
"""剑三 金价 服务器"""
|
"""剑三 金价 服务器"""
|
||||||
|
|||||||
Reference in New Issue
Block a user