所以,我正在尝试创建一个give命令,但每次运行它时,都会出现这个问题:Command raise an exception: TypeError: 'Member' object is not subscriptable。这是我的代码:
@client.command()
async def givecoke(message, amount, memberuser: discord.Member):
await open_account(message.author)
user = message.author
users = await get_bank_data()
memberuser[str(user.id)]["Roblox Coke"] += amount
user[str(user.id)]["Roblox Code"] -= amount
em = discord.Embed(title = f"Done!",color = random.randint(0, 0xffffff))
await message.send(embed=em)
with open("db.json","w") as f:
json.dump(users,f)
这是我的代码的底部
async def open_account(user):
users = await get_bank_data()
if str(user.id) in users:
return False
else:
users[str(user.id)] = {}
users[str(user.id)]["wallet"] = 0
users[str(user.id)]["bank"] = 0
#thanks
users[str(user.id)]["thanks"] = 0
#tradeable stuff
users[str(user.id)]["B737"] = 1
users[str(user.id)]["B747"] = 0
users[str(user.id)]["B757"] = 0
users[str(user.id)]["B767"] = 0
users[str(user.id)]["B777"] = 0
users[str(user.id)]["B787"] = 0
users[str(user.id)]["BombardierCRJ700"] = 0
users[str(user.id)]["Concorde"] = 0
users[str(user.id)]["MC-DC10"] = 0
users[str(user.id)]["MC-DC11"] = 0
users[str(user.id)]["A320"] = 1
users[str(user.id)]["A330"] = 0
users[str(user.id)]["A340"] = 0
users[str(user.id)]["A350"] = 0
users[str(user.id)]["A380"] = 0
users[str(user.id)]["Cookie"] = 0
users[str(user.id)]["Roblox Coke"] = 0
users[str(user.id)]["Coffee"] = 0
with open("db.json", "w") as f:
json.dump(users,f)
return True
async def get_bank_data():
with open("db.json", "r") as f:
users = json.load(f)
return users
async def update_bank(user,change = 0,mode = "wallet"):
users = await get_bank_data()
users[str(user.id)][mode] += change
with open("db.json", "w") as f:
json.dump(users,f)
bal = [users[str(user.id)]["wallet"],users[str(user.id)]["bank"]]
return bal```