开始花钱罗......?

先查看包包

  • 包包check
# cogs/money.py
# 略
@bot.command()
async def bag(ctx):
    await open_account(ctx.author)
    user = ctx.author    
    users = await get_bank_data()
  • 这边要分2种情况,包包里有东西跟没东西
try:
    bag = users[str(user.id)]["bag"]
except:
    bag = []
  • 再来,就简单了
em = discord.Embed(title = "Bag", color = 0xFF5733)
em.set_thumbnail(url = user.avatar_url)
for item in bag:
    name = item["item"]
    amount = item["amount"]
    
    em.add_field(name = name, value = amount)
    
await ctx.send(embed = em)
  • 一样是用迭代的方式XD

建立起买东西的式子

async def buySomething(user, itemName, amount):
    name = None
    itemName = itemName.lower()
    for item in shop:
        Item_Name = item["name"].lower()
        if Item_Name == itemName:
            name = Item_Name
            price = item["price"]
            break
  • 在没输入好的情况下要返回错误
if name == None:
    return [False, 1]
  • 再来,计算皮包里的钱够不够
cost = price * amount
    
users = await get_bank_data()
bal = await update_bank(user)
    
if bal[0] < cost :
    return [False , 2] 
  • 写到这边,应该可以开始处理command了
@commands.command()
# amount = 1为默认
async def buy(self, ctx, item, amount = 1):
    pass
  • 再来,我们可以接收先前的返回值了
await open_account(ctx.author)
    
res = await buy_this(ctx.author, item, amount)
    
if res[0] == False :
    if res[1] == 1 :
        await ctx.send("没有这个东西喔")
        return
    if res[1] == 2 :
        await ctx.send(f"你的钱包里没有足够的钱去买 {item}")
        return
        
await ctx.send(f"你买到了 {amount} x{item}")
  • 到这边应该是没有什麽问题,这时候你点开json档,发现啥麽都没出现......

<<:  Day 09 - 智慧城市Go Smart Award 经历(3) - 得奖

>>:  【Day 12】使用 Systems Manager 的 Parameter Store 保存变数

Day 8:架设 Prometheus (0)

昨天简单介绍过 Prometheus 了,那麽今天我们就自己架一个来玩看看吧。尝试任何一个新工具的第...

企业资料通讯Week5 (1) | Catche 网页快取

完整参考连结在底下 甚麽是网页快取? 想一想大型网站如FB、IG,或是虾皮等购物网站,如果一次有很多...

邦帮忙乾净无广告自干版

安装 stylebot 进入 邦帮忙 打开 Stylebot 开启代码页 输入以下代码 .head...

Day11-动态元件

这章节是延伸v-if和v-show管理元件,如何用更简便的方式做tab页签。 v-bind:is 做...

Day18 - (补上昨天程序码) + BBT介绍

大家好,我是长风青云。早起跟朋友约、下午无缝接轨去帮弟弟搬宿、晚上一回到家就开始做ppt和发片。累瘫...