新增用户使用道具,花费金币及用途记录表以及更细致的金币使用依赖注入

This commit is contained in:
HibiKier
2022-10-15 21:21:23 +08:00
parent 4f3f8de734
commit cb0938721c
7 changed files with 42 additions and 15 deletions
+2 -3
View File
@@ -2,9 +2,6 @@ from typing import Callable, Union, Tuple, Optional
from nonebot.adapters.onebot.v11 import MessageSegment, Message
from nonebot.plugin import require
require("use")
require("shop_handle")
class ShopRegister(dict):
def __init__(self, *args, **kwargs):
@@ -94,6 +91,8 @@ class ShopRegister(dict):
return lambda func: add_register_item(func)
async def load_register(self):
require("use")
require("shop_handle")
from basic_plugins.shop.use.data_source import register_use, func_manager
from basic_plugins.shop.shop_handle.data_source import register_goods
# 统一进行注册
+24
View File
@@ -0,0 +1,24 @@
from nonebot.adapters.onebot.v11 import GroupMessageEvent
from nonebot.internal.matcher import Matcher
from nonebot.internal.params import Depends
from models.user_shop_gold_log import UserShopGoldLog
from models.bag_user import BagUser
from utils.message_builder import at
def cost_gold(gold: int):
"""
说明:
插件方法调用使用金币
参数:
:param gold: 金币数量
"""
async def dependency(matcher: Matcher, event: GroupMessageEvent):
if (await BagUser.get_gold(event.user_id, event.group_id)) < gold:
await matcher.finish(at(event.user_id) + f"金币不足..该功能需要{gold}金币..")
await BagUser.spend_gold(event.user_id, event.group_id, gold)
await UserShopGoldLog.add_shop_log(event.user_id, event.group_id, 2, matcher.plugin_name, gold, 1)
return Depends(dependency)