簡體   English   中英

Discord.py - 檢查其他用戶的余額

[英]Discord.py - check balance of other users

我制作的機器人有一個經濟系統,你可以通過!bal來檢查你的余額。 但是我希望其他用戶可以檢查您的余額,並且您也可以檢查其他用戶的余額。 但現在我只知道如何編碼,您只能檢查自己的余額。 我如何更改代碼,以便您可以通過輸入他們的 ID 或提及他們來檢查其他用戶的余額?

async def balance(ctx):
    await open_account(ctx.author)
    user = ctx.author

    users = await get_bank_data()

    lvsAmt = users[str(user.id)]["leaves"]
    tckAmt = users[str(user.id)]["tickets"]
    gemAmt = users[str(user.id)]["gems"]

    em = discord.Embed(
        title=f"{ctx.author.mention}'s Balance",
        description=
        f"<:zoa_leaves:918778938707279883> {lvsAmt}\n<:zoa_ticket:918774141400801330> {tckAmt}\n<:zoa_gems:918777349946888212> {gemAmt}",
        color=0xe9a9a9)
    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)]["leaves"] = 0
        users[str(user.id)]["tickets"] = 0
        users[str(user.id)]["gems"] = 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

我試圖將ctx.author更改為ctx.user但它不起作用

您可以在命令中添加member參數: async def balance(ctx, member: discord.Member = None):

async def balance(ctx, member: discord.Member):
    user = member or ctx.author
    await open_account(user)
    users = await get_bank_data()
    lvsAmt = users[str(user.id)]["leaves"]
    tckAmt = users[str(user.id)]["tickets"]
    gemAmt = users[str(user.id)]["gems"]

    em = discord.Embed(
        title=f"{user.mention}'s Balance",
        description=
        f"<:zoa_leaves:918778938707279883> {lvsAmt}\n<:zoa_ticket:918774141400801330> {tckAmt}\n<:zoa_gems:918777349946888212> {gemAmt}",
        color=0xe9a9a9)
    await ctx.send(embed=em)

然后用戶將能夠通過鍵入類似[your_prefix]bal @User#1234的內容來使用該命令。

如果有人需要它,這是我現在使用的代碼,它工作正常!

@client.command(aliases=['bal'])
async def balance(ctx, member: discord.Member=None):
    if member is None:
      member = ctx.author

    user = member or ctx.author
    await open_account(user)
    users = await get_bank_data()
    lvsAmt = users[str(user.id)]["leaves"]
    tckAmt = users[str(user.id)]["tickets"]
    gemAmt = users[str(user.id)]["gems"]

    em = discord.Embed(
        title=f"{user.mention}'s Balance",
        description=
        f"<:zoa_leaves:918778938707279883> {lvsAmt}\n<:zoa_ticket:918774141400801330> {tckAmt}\n<:zoa_gems:918777349946888212> {gemAmt}",
        color=0xe9a9a9)
    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)]["leaves"] = 0
        users[str(user.id)]["tickets"] = 0
        users[str(user.id)]["gems"] = 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM