【问题标题】:Discord.py get user object from id/tagDiscord.py 从 id/tag 获取用户对象
【发布时间】:2019-06-27 05:35:14
【问题描述】:

所以我试图从 id 或标签中获取用户对象,但是我使用的是用户帐户而不是机器人帐户,所以我不能使用 get_user_info() 有没有办法在用户帐户上执行此操作?

【问题讨论】:

    标签: discord discord.py


    【解决方案1】:

    如果您使用的是commands,则可以使用转换器:

    @bot.command(pass_context=True)
    async def mycommand(ctx, user: discord.User):
        # user is a User object
    

    否则,您可以使用Client.get_all_members 获取您可以看到的所有Member 对象。

    from discord.utils import get
    
    user = get(bot.get_all_members(), id="1234")
    if user:
        # found the user
    else:
        # Not found the user
    

    【讨论】:

    • id是公会id还是用户id?
    【解决方案2】:

    你可以使用:

    ctx.message.server.get_member(id) or message.server.get_member(id) # id must be of type int
    

    这将返回一个discord.Member 对象。

    【解决方案3】:

    如果你知道用户 id,我建议改用bot.get_user(user_id)。

    【讨论】:

    • olny 如果缓存有它就可以工作。否则使用 fetch_user
    【解决方案4】:
    ctx.message.server.get_member(id) or message.server.get_member(id)
    

    我无法对上一个答案发表评论(因为声誉问题),但请确保 id 是 int type here。

    【讨论】:

      【解决方案5】:

      对我来说,只有这个有效,所以如果其他都无效,你可以试试这个:

      user = await message.guild.query_members(user_ids=[userid]) # list of members with userid
      user = user[0] # there should be only one so get the first item in the list
      

      【讨论】:

        【解决方案6】:

        这也将返回您的用户对象,但不返回您的成员对象。想要会员对象请关注AJ Lee's answer

        user = await client.fetch_user(user_id)
        

        【讨论】:

          【解决方案7】:

          好的,有很多方法可以做到这一点,但我使用这个

          @commands.command()
          async def id(self, ctx, *, user_id):
              user = ctx.message.guild.get_member(user_id) or None
              if user != None:
                  # Found the user
                  ctx.send(user)
              else:
                  # Can't find the user
                  ctx.send("**Try that again**, this time add a user's id(**of this server**)")
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-12-25
            • 2021-07-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-01-18
            • 2021-04-28
            • 1970-01-01
            相关资源
            最近更新 更多