🐛 修复使用道具错误 (#1790)

This commit is contained in:
HibiKier 2024-12-21 23:52:17 +08:00 committed by GitHub
parent a34e433ebf
commit 3a197c0c1d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 24 deletions

View File

@ -14,7 +14,6 @@ from nonebot_plugin_alconna import (
on_alconna, on_alconna,
store_true, store_true,
) )
from nonebot_plugin_session import EventSession
from nonebot_plugin_uninfo import Uninfo from nonebot_plugin_uninfo import Uninfo
from zhenxun.configs.utils import BaseBlock, PluginExtraData from zhenxun.configs.utils import BaseBlock, PluginExtraData
@ -23,6 +22,7 @@ from zhenxun.utils.depends import UserName
from zhenxun.utils.enum import BlockType, PluginType from zhenxun.utils.enum import BlockType, PluginType
from zhenxun.utils.exception import GoodsNotFound from zhenxun.utils.exception import GoodsNotFound
from zhenxun.utils.message import MessageUtils from zhenxun.utils.message import MessageUtils
from zhenxun.utils.platform import PlatformUtils
from ._data_source import ShopManage, gold_rank from ._data_source import ShopManage, gold_rank
@ -107,35 +107,29 @@ _matcher.shortcut(
@_matcher.assign("$main") @_matcher.assign("$main")
async def _(session: EventSession, arparma: Arparma): async def _(session: Uninfo, arparma: Arparma):
image = await ShopManage.build_shop_image() image = await ShopManage.build_shop_image()
logger.info("查看商店", arparma.header_result, session=session) logger.info("查看商店", arparma.header_result, session=session)
await MessageUtils.build_message(image).send() await MessageUtils.build_message(image).send()
@_matcher.assign("my-cost") @_matcher.assign("my-cost")
async def _(session: EventSession, arparma: Arparma): async def _(session: Uninfo, arparma: Arparma):
if session.id1: logger.info("查看金币", arparma.header_result, session=session)
logger.info("查看金币", arparma.header_result, session=session) gold = await ShopManage.my_cost(
gold = await ShopManage.my_cost(session.id1, session.platform) session.user.id, PlatformUtils.get_platform(session)
await MessageUtils.build_message(f"你的当前余额: {gold}").send(reply_to=True) )
else: await MessageUtils.build_message(f"你的当前余额: {gold}").send(reply_to=True)
await MessageUtils.build_message("用户id为空...").send(reply_to=True)
@_matcher.assign("my-props") @_matcher.assign("my-props")
async def _(session: EventSession, arparma: Arparma, nickname: str = UserName()): async def _(session: Uninfo, arparma: Arparma, nickname: str = UserName()):
if session.id1: logger.info("查看道具", arparma.header_result, session=session)
logger.info("查看道具", arparma.header_result, session=session) if image := await ShopManage.my_props(
if image := await ShopManage.my_props( session.user.id, nickname, PlatformUtils.get_platform(session)
session.id1, ):
nickname, await MessageUtils.build_message(image.pic2bytes()).finish(reply_to=True)
session.platform, return await MessageUtils.build_message("你的道具为空捏...").send(reply_to=True)
):
await MessageUtils.build_message(image.pic2bytes()).finish(reply_to=True)
return await MessageUtils.build_message("你的道具为空捏...").send(reply_to=True)
else:
await MessageUtils.build_message("用户id为空...").send(reply_to=True)
@_matcher.assign("buy") @_matcher.assign("buy")
@ -163,7 +157,7 @@ async def _(
bot: Bot, bot: Bot,
event: Event, event: Event,
message: UniMsg, message: UniMsg,
session: EventSession, session: Uninfo,
arparma: Arparma, arparma: Arparma,
name: Match[str], name: Match[str],
num: Query[int] = AlconnaQuery("num", 1), num: Query[int] = AlconnaQuery("num", 1),
@ -177,7 +171,9 @@ async def _(
bot, event, session, message, name.result, num.result, "" bot, event, session, message, name.result, num.result, ""
) )
logger.info( logger.info(
f"使用道具 {name}, 数量: {num}", arparma.header_result, session=session f"使用道具 {name.result}, 数量: {num.result}",
arparma.header_result,
session=session,
) )
if isinstance(result, str): if isinstance(result, str):
await MessageUtils.build_message(result).send(reply_to=True) await MessageUtils.build_message(result).send(reply_to=True)

View File

@ -332,7 +332,9 @@ class ShopManage:
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, "before", **kwargs)
result = await cls.__run(goods, param, session, **kwargs) result = await cls.__run(goods, param, session, **kwargs)
await UserConsole.use_props(session.id1, goods_info.uuid, num, session.platform) # type: ignore await UserConsole.use_props(
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, "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} 次成功!"