为什么我的不和谐机器人的余额没有正确保存?

时间:2021-03-25 04:06:52

标签: python discord discord.py bots

我的机器人工作得非常好,一直在工作,直到我将它添加到第三个 Discord 服务器。它所在的第一台服务器是机器人测试服务器,然后是一个死服务器,现在是它的实际服务器。除了钱包银行功能外,机器人上的所有内容仍在工作。用户的余额不断下降。我的以前是40,现在是14?我对编码很陌生,我不知道为什么会这样。

import discord
from discord.ext import commands
import random
import os
import pickle 
from keep_alive import keep_alive

client = discord.Client()
client = commands.Bot(command_prefix = ["$", "Shakey"])

dataFilename = "data.pickle"

class Data():
  def __init__(self, wallet, bank):
    self.wallet = wallet
    self.bank = bank 

@client.event
async def on_ready():
  print ('luck noises')

def loadData():
  if os.path.isfile(dataFilename):
    with open(dataFilename, "rb") as file:
      return pickle.load(file)
  else:
    return dict()

def loadMemberData(memberID):
  data = loadData()

  if memberID not in data:
    return Data(0, 0)

  return data[memberID]

def saveMemberData(memberID, memberData):
  data = loadData()

  data[memberID] = memberData

  with open(dataFilename, "wb") as file:
    pickle.dump(data, file)

@client.command(aliases=['p'])
async def ping(ctx):
  await ctx.send('Pong!')

@client.command(aliases=['!'])
async def work(message):
  memberData = loadMemberData(message.author.id)

  memberData.wallet += 1
  await message.channel.send("+1 milkshake, keep up the good work.")

  saveMemberData(message.author.id, memberData)

@client.command(aliases=['?'])
async def bal(message):
  memberData = loadMemberData(message.author.id)

  embedVar = discord.Embed(title="{member}'s Balance".format(member=message.author.display_name))
  embedVar.add_field(name="Milkshakes", value=str(memberData.wallet))  
  await message.channel.send(embed=embedVar) 

keep_alive()
client.run(os.getenv('TOKEN'))

0 个答案:

没有答案