🐛 修复使用道具错误 (#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,
store_true,
)
from nonebot_plugin_session import EventSession
from nonebot_plugin_uninfo import Uninfo
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.exception import GoodsNotFound
from zhenxun.utils.message import MessageUtils
from zhenxun.utils.platform import PlatformUtils
from ._data_source import ShopManage, gold_rank
@ -107,35 +107,29 @@ _matcher.shortcut(
@_matcher.assign("$main")
async def _(session: EventSession, arparma: Arparma):
async def _(session: Uninfo, arparma: Arparma):
image = await ShopManage.build_shop_image()
logger.info("查看商店", arparma.header_result, session=session)
await MessageUtils.build_message(image).send()
@_matcher.assign("my-cost")
async def _(session: EventSession, arparma: Arparma):
if session.id1:
logger.info("查看金币", arparma.header_result, session=session)
gold = await ShopManage.my_cost(session.id1, session.platform)
await MessageUtils.build_message(f"你的当前余额: {gold}").send(reply_to=True)
else:
await MessageUtils.build_message("用户id为空...").send(reply_to=True)
async def _(session: Uninfo, arparma: Arparma):
logger.info("查看金币", arparma.header_result, session=session)
gold = await ShopManage.my_cost(
session.user.id, PlatformUtils.get_platform(session)
)
await MessageUtils.build_message(f"你的当前余额: {gold}").send(reply_to=True)
@_matcher.assign("my-props")
async def _(session: EventSession, arparma: Arparma, nickname: str = UserName()):
if session.id1:
logger.info("查看道具", arparma.header_result, session=session)
if image := await ShopManage.my_props(
session.id1,
nickname,
session.platform,
):
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)
async def _(session: Uninfo, arparma: Arparma, nickname: str = UserName()):
logger.info("查看道具", arparma.header_result, session=session)
if image := await ShopManage.my_props(
session.user.id, nickname, PlatformUtils.get_platform(session)
):
await MessageUtils.build_message(image.pic2bytes()).finish(reply_to=True)
return await MessageUtils.build_message("你的道具为空捏...").send(reply_to=True)
@_matcher.assign("buy")
@ -163,7 +157,7 @@ async def _(
bot: Bot,
event: Event,
message: UniMsg,
session: EventSession,
session: Uninfo,
arparma: Arparma,
name: Match[str],
num: Query[int] = AlconnaQuery("num", 1),
@ -177,7 +171,9 @@ async def _(
bot, event, session, message, name.result, num.result, ""
)
logger.info(
f"使用道具 {name}, 数量: {num}", arparma.header_result, session=session
f"使用道具 {name.result}, 数量: {num.result}",
arparma.header_result,
session=session,
)
if isinstance(result, str):
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}..."
await cls.run_before_after(goods, param, "before", **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)
if not result and param.send_success_msg:
result = f"使用道具 {goods.name} {num} 次成功!"