22
33from amrita .plugins .chat .API import (
44 ToolContext ,
5- ToolData ,
5+ on_tools ,
66)
77from nonebot import get_bot , logger
88from nonebot .adapters .onebot .v11 import MessageEvent
99
10- from amrita_plugin_omikuji .cache import cache_omikuji , get_cached_omikuji
11-
10+ from .cache import cache_omikuji , get_cached_omikuji
1211from .config import get_config
13- from .models import FUNC_META , OmikujiData
12+ from .models import FUNC_DEFINTION , OmikujiData
1413from .utils import generate_omikuji
1514
1615LEVEL = ["大吉" , "吉" , "中吉" , "小吉" , "末吉" , "凶" , "大凶" ]
@@ -34,7 +33,8 @@ def format_omikuji(data: OmikujiData, user_name: str | None = ""):
3433 return msg
3534
3635
37- async def omikuji (ctx : ToolContext ):
36+ @on_tools (FUNC_DEFINTION , custom_run = True , strict = True )
37+ async def omikuji (ctx : ToolContext ) -> str :
3838 logger .info ("获取御神签" )
3939 nb_event : MessageEvent = typing .cast (MessageEvent , ctx .event .get_nonebot_event ())
4040 is_group = hasattr (nb_event , "group_id" )
@@ -51,7 +51,4 @@ async def omikuji(ctx: ToolContext):
5151 return data .model_dump_json ()
5252 msg = format_omikuji (data )
5353 await bot .send (nb_event , msg )
54- ctx .matcher .cancel_nonebot_process ()
55-
56-
57- TOOL_DATA = ToolData (data = FUNC_META , func = omikuji , custom_run = True )
54+ return "Generated a omikuji for user."
0 commit comments