无法让我的经济 discord.py 排行榜发挥作用

Cant make my economy discord.py leaderboard to work

我用 replit 和 discord.py 编写了这个机器人,但我无法让排行榜正常工作。不知道为什么。我按照 CodeWithSwastik 教程 ep 4 link -> https://www.youtube.com/watch?v=dI3_DWhfT8U

我想要的是做一个排行榜,显示前 5 名最有钱的人 我使用 json 文件作为数据库(我不推荐它,但我知道如何使用它所以我使用它) json 一个人的例子 ->

        "coins": 12253,
        "job": "none",
        "expirience": 0,
        "inventory": [],
        "bank": 10000
    }

排行榜命令代码->

@bot.command(aliases=['lb'])
async def leaderboard(ctx, pepol_to_show = 5):
  data = await get_bank_data()
  
  lb = {}
  total = []

  for user in data:
    name = int(user)
    total_amount = data[user]["coins"] + data[user]["bank"]
    lb[total_amount] = name
    total.append(total_amount)

  total = sorted(total,reverse=True)

  em4 = discord.Embed(title = f"Top {pepol_to_show} Richest people", description = "Who has the most potatoes (Wallet + Bank)", color = discord.Colour.red())
  index = 1
  for amt in total:
    id_ = lb[amt]
    member = bot.get_usser(id_)
    name = member.name
    em4.add_field(name = f"{index}. {name}", value = f"{amt}", inline = False)
    if index == pepol_to_show:
      break
    else:
      index += 1

  await ctx.reply(embed=em4)
    
    
async def get_bank_data():
  with open("users.json", "r") as f:
    data = json.load(f)

  return data

当我 运行 lb 命令不一致时没有发送任何东西,我得到 0 个错误。不知道为什么 为什么这不起作用?我需要做什么来修复它?

  1. 这里有错字 member = bot.get_usser(id_)。应该只是 get_user。我测试过,否则代码工作正常。
  2. 您需要设置错误处理程序才能在使用 on_command_error 事件发送命令时查看错误

或者只是本地错误处理程序来查看问题所在

@leaderboard.error
async def leaderboard_error(ctx, error):
    print(error)
    print(type(error))

你可以在使用 traceback 模块

完成一些工作后获得整个回溯