iT邦幫忙

2021 iThome 鐵人賽

DAY 20
0
自我挑戰組

Discord-bot,從0開始到做出一個機器人系列 第 20

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

  • 分享至 

  • xImage
  •  

提款

  • 接下來,寫個提款功能
# 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 } 塊錢!!!")

上一篇
沒錢就跟別人要錢,別人的錢就是我的錢,但我的錢還是我的錢
下一篇
開始花錢囉......?
系列文
Discord-bot,從0開始到做出一個機器人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言