#python #discord #discord.py #discord.py-rewrite
#python #Discord #discord.py #discord.py-переписать
Вопрос:
Я пытался создать экономическую систему в discord.py . Однако система вообще не работает. Всякий раз, когда я набираю!команда баланса вообще не отправляет embed. Он даже не выдает ошибку. Вот мой код:
@client.command()
async def balance(ctx):
user = ctx.author
await open_account(ctx.author)
users = await get_bank_data()
wallet_amt = users[str(user.id)]["wallet"]
bank_amt = users[str(user.id)]["bank"]
embed=discord.Embed(title=f"{ctx.author.name}'s Balance")
embed.add_field(name="Wallet:", value=wallet_amt, inline=False)
embed.add_field(name="Bank:", value=bank_amt, inline=False)
await ctx.send(embed=embed)
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
with open("bank.json", "w") as f:
json.dump(users, f)
return True
async def get_bank_data():
with open("bank.json", "r") as f:
users = json.load(f)
return users
Кто-нибудь может помочь мне определить ошибку? Я совсем новичок в discord.py
Комментарии:
1. Есть ли в файле bank.json какое-либо содержимое?
Ответ №1:
Логика вашей open_account()
функции всегда будет возвращать значение True, даже если if
условие выполнено, потому что отступ отменен. Если это связано с тем, как вы извлекаете данные, это может быть вашей проблемой.
Ответ №2:
@client.command(aliases=['bal'])
async def balance(ctx):
await open_account(ctx.author)
user = ctx.author
users = await get_bank_data()
wallet_amt = users[str(user.id)]["wallet"]
bank_amt = users[str(user.id)]["bank"]
em = discord.Embed(title=f'{ctx.author.name} Balance',color = discord.Color.red())
em.add_field(name="Wallet Balance", value=wallet_amt)
em.add_field(name='Bank Balance',value=bank_amt)
await ctx.send(embed= em)
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
with open('mainbank.json','w') as f:
json.dump(users,f)
return True
async def get_bank_data():
with open('mainbank.json','r') as f:
users = json.load(f)
return users
Это должно сработать измените имя файла json на правильное,
одна важная вещь, проверьте ваши функции сохранения и содержимое файла тоже
Комментарии:
1. Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и / или почему он решает проблему, улучшит долгосрочную ценность ответа.