簡體   English   中英

Discord.py | 未定義的變量“用戶”錯誤

[英]Discord.py | Undefined variable 'user' Error

@commands.command()
    async def test(self, ctx, user_id : int):
        test= discord.Embed(title=f'A moderation action has been performed!', description='', color=0x90fd05)
        test.add_field(name='User Affected:', value={user.name}, inline=True)
        test.add_field(name='User ID:', value=f'`{user_id}`', inline=True)
        test.add_field(name='Moderator Name:', value=f'`{ctx.author}`', inline=True)
        test.add_field(name='Moderator ID:', value=f'`{ctx.author.id}`', inline=True)
        test.add_field(name='Action Performed:', value='`UnBan`', inline=True)\
        #test.timestamp = datetime.datetime.utcnow()
        test.set_author(name=f'{ctx.guild}', icon_url=ctx.guild.icon_url)
        test.set_thumbnail(url=user.avatar_url)
        await ctx.channel.send(embed=test)

我不斷收到以下錯誤:

test.add_field(name='User ID:', value=f'`{user_id}`', inline=True)

test.set_thumbnail(url=user.avatar_url)

這是為什么? 我是否需要在第二行添加任何內容? 我在谷歌上搜索,發現它的使用就像我做的一樣,但它不起作用......

您尚未定義user變量。 為了定義它,您可以使用guild.get_member(id)獲取discord.Member object 。 然后你可以使用user變量。

@commands.command()
async def test(self, ctx, user_id : int):
    user = ctx.guild.get_member(user_id)
    test= discord.Embed(title=f'A moderation action has been performed!', description='', color=0x90fd05)
    ...

user_iduser不同,您也沒有定義user ,如果您想獲得discord.Member實例,您可以使用MemberConverterGuild.get_member

使用MemberConverter

async def test(self, ctx, user: discord.Member): # This will work with mentions, names, ID's, nicknames..
    print(type(user)) # <class 'discord.member.Member`>
    # ...

使用Guild.get_member

async def test(self, ctx, user_id: int):
    user = ctx.guild.get_member(user_id)
    print(type(user)) # <class 'discord.member.Member`>
    # ...

參考:

暫無
暫無

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

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