提款、存款、汇款一次到位

提款

  • 接下来,写个提款功能
# cogs/money.py
@commands.command()
async def withdraw(self, ctx, amount = None):
    pass
  • 一样,先打开account
await open_account(ctx.author)
  • 再来,提款必须要有一个数字,如果没有,就return回去
if amount == None:
    await ctx.send("请输入数字")
    return 
  • 然後,再写一个函式
async def update_bank(user, change = 0, mode = "wallet"):
    pass
  • 然後......
users = await get_bank_data()
users[str(user.id)][mode] += change
  • 接着写入json
with open("bank.json", "w") as f:
    json.dump(users, f)
  • 然後回传一个变数
bal = [users[str(user.id)]["wallet"], users[str(user.id)]["bank"]]    
return bal
  • 回到上面,这个变数是你个人的银行有多少钱
bal = await update_bank(ctx.author)
amount = int(amount)
  • 以及,可添加台词(? 之类的
if amount > bal[1]:
    await ctx.send("你没这麽多钱拉干")
    return 
if amount > 200:
    await ctx.send("要小於200喔")
    return
if amount< 0:
    await ctx.send("北七喔,钱有负的喔")
    return
  • 最後别忘了回传阿
await update_bank(ctx.author, amount)
await update_bank(ctx.author, -1*amount, "bank")

await ctx.send(f"你提款了 { amount } 块钱!!!")

存款

  • 依照上面那个部分稍微修改一下
# cogs/money.py
@commands.command()
async def deposit(ctx, amount = None):
    pass
  • 只要改一个部分......
await update_bank(ctx.author, -1 * amount)
await update_bank(ctx.author, amount, "bank")
  • 对,就这样XD

汇款

  • 接下来写个汇款系统
# cogs/money.py
@commands.command()
async def send(ctx, member:discord.Member, amount = None):
    await open_account(ctx.author)
    await open_account(member)
  • 前面几乎一样
if amount == None:
    await ctx.send("请输入数字")
    return 
bal = await update_bank(ctx.author)
  • 比较不一样的地方可以自己取舍
if amount == "all":
     amount = bal[0]
amount = int(amount)
if amount > bal[1]:
    await ctx.send("你没这麽多钱拉干")
    return 
if amount< 0:
    await ctx.send("北七喔,钱有负的喔")
    return
  • 一样,打开get_bank_data()
await update_bank(ctx.author, -1 * amount, "bank")
await update_bank(member, amount, "bank")
  • 接着加上,文字叙述
member = str(member)
member = member.split("#")[0]
await ctx.send(f"你给了{ member } { amount } 块钱!!!")

<<:  Day5 「开机」学习 Lua - 变数型别与宣告

>>:  [面试]了解自己的市场价值,分析面试管道优劣

【Day10】 声音转换概述 - 再次出发!

前言 在经过前面 9 天的准备之後,我们终於有些本钱可以涉足这个领域了,整理一下我们现在所掌握的 知...

画一个三角形(下)

大家好,我是西瓜,你现在看到的是 2021 iThome 铁人赛『如何在网页中绘制 3D 场景?从 ...

[Day01] Tableau 轻松学 - 前言

前言 不论是在 IT 抑或是其他产业中,终究会遇到需将手上大量的数据视觉化,并转为有用的商业智能 (...

搞懂 P2P 技术 (2) - STUN x TURN x ICE

前言 上一篇介绍完中心化、去中心化、分布式网路以及 IPv4、NAT、NAT 类型,但我们依旧还有些...

Thunkable学习笔记 3 - 读取Realtime Database的值(Firebase)

於Realtime Database内手动建立如下图的资料, 试着使用thunkable读取, 测试...