mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
🐛 修复插件使用问题
This commit is contained in:
parent
531ce3a13c
commit
d6c1ae681f
@ -193,9 +193,7 @@ class ShopManage:
|
|||||||
"group_id": group_id,
|
"group_id": group_id,
|
||||||
"num": num,
|
"num": num,
|
||||||
"text": text,
|
"text": text,
|
||||||
"session": session,
|
|
||||||
"goods_name": goods.name,
|
"goods_name": goods.name,
|
||||||
"message": message,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -203,6 +201,8 @@ class ShopManage:
|
|||||||
cls,
|
cls,
|
||||||
args: MappingProxyType,
|
args: MappingProxyType,
|
||||||
param: ShopParam,
|
param: ShopParam,
|
||||||
|
session: Uninfo,
|
||||||
|
message: UniMsg,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
) -> dict:
|
) -> dict:
|
||||||
"""解析参数
|
"""解析参数
|
||||||
@ -221,6 +221,8 @@ class ShopManage:
|
|||||||
"kwargs": kwargs,
|
"kwargs": kwargs,
|
||||||
**param.to_dict(),
|
**param.to_dict(),
|
||||||
**param.extra_data,
|
**param.extra_data,
|
||||||
|
"session": session,
|
||||||
|
"message": message,
|
||||||
}
|
}
|
||||||
for key in list(param_json.keys()):
|
for key in list(param_json.keys()):
|
||||||
if key not in args:
|
if key not in args:
|
||||||
@ -232,6 +234,8 @@ class ShopManage:
|
|||||||
cls,
|
cls,
|
||||||
goods: Goods,
|
goods: Goods,
|
||||||
param: ShopParam,
|
param: ShopParam,
|
||||||
|
session: Uninfo,
|
||||||
|
message: UniMsg,
|
||||||
run_type: Literal["after", "before"],
|
run_type: Literal["after", "before"],
|
||||||
**kwargs,
|
**kwargs,
|
||||||
):
|
):
|
||||||
@ -247,9 +251,13 @@ class ShopManage:
|
|||||||
for func in fun_list:
|
for func in fun_list:
|
||||||
if args := inspect.signature(func).parameters:
|
if args := inspect.signature(func).parameters:
|
||||||
if asyncio.iscoroutinefunction(func):
|
if asyncio.iscoroutinefunction(func):
|
||||||
await func(**cls.__parse_args(args, param, **kwargs))
|
await func(
|
||||||
|
**cls.__parse_args(args, param, session, message, **kwargs)
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
func(**cls.__parse_args(args, param, **kwargs))
|
func(
|
||||||
|
**cls.__parse_args(args, param, session, message, **kwargs)
|
||||||
|
)
|
||||||
elif asyncio.iscoroutinefunction(func):
|
elif asyncio.iscoroutinefunction(func):
|
||||||
await func()
|
await func()
|
||||||
else:
|
else:
|
||||||
@ -260,6 +268,8 @@ class ShopManage:
|
|||||||
cls,
|
cls,
|
||||||
goods: Goods,
|
goods: Goods,
|
||||||
param: ShopParam,
|
param: ShopParam,
|
||||||
|
session: Uninfo,
|
||||||
|
message: UniMsg,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
) -> str | UniMessage | None:
|
) -> str | UniMessage | None:
|
||||||
"""运行道具函数
|
"""运行道具函数
|
||||||
@ -275,9 +285,13 @@ class ShopManage:
|
|||||||
if goods.func:
|
if goods.func:
|
||||||
if args:
|
if args:
|
||||||
return (
|
return (
|
||||||
await goods.func(**cls.__parse_args(args, param, **kwargs))
|
await goods.func(
|
||||||
|
**cls.__parse_args(args, param, session, message, **kwargs)
|
||||||
|
)
|
||||||
if asyncio.iscoroutinefunction(goods.func)
|
if asyncio.iscoroutinefunction(goods.func)
|
||||||
else goods.func(**cls.__parse_args(args, param, **kwargs))
|
else goods.func(
|
||||||
|
**cls.__parse_args(args, param, session, message, **kwargs)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
if asyncio.iscoroutinefunction(goods.func):
|
if asyncio.iscoroutinefunction(goods.func):
|
||||||
return await goods.func()
|
return await goods.func()
|
||||||
@ -330,12 +344,12 @@ class ShopManage:
|
|||||||
)
|
)
|
||||||
if num > param.max_num_limit:
|
if num > param.max_num_limit:
|
||||||
return f"{goods_info.goods_name} 单次使用最大数量为{param.max_num_limit}..."
|
return f"{goods_info.goods_name} 单次使用最大数量为{param.max_num_limit}..."
|
||||||
await cls.run_before_after(goods, param, "before", **kwargs)
|
await cls.run_before_after(goods, param, session, message, "before", **kwargs)
|
||||||
result = await cls.__run(goods, param, **kwargs)
|
result = await cls.__run(goods, param, session, message, **kwargs)
|
||||||
await UserConsole.use_props(
|
await UserConsole.use_props(
|
||||||
session.user.id, goods_info.uuid, num, PlatformUtils.get_platform(session)
|
session.user.id, goods_info.uuid, num, PlatformUtils.get_platform(session)
|
||||||
)
|
)
|
||||||
await cls.run_before_after(goods, param, "after", **kwargs)
|
await cls.run_before_after(goods, param, session, message, "after", **kwargs)
|
||||||
if not result and param.send_success_msg:
|
if not result and param.send_success_msg:
|
||||||
result = f"使用道具 {goods.name} {num} 次成功!"
|
result = f"使用道具 {goods.name} {num} 次成功!"
|
||||||
return result
|
return result
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user