【问题标题】:Discord.py returning user's name when I asked for user's display_name当我询问用户的显示名称时,Discord.py 返回用户的名称
【发布时间】:2022-12-30 12:22:03
【问题描述】:

当我尝试获取用户的显示名称时,它会返回他们的 Discord 名称。 无论我尝试什么方法,display_name 都不会出现在返回列表中。

只是为了理解它,如果用户提及显示名称中带有“no ping”的人,它将遍历服务器中的所有频道以查找最近 10 分钟内提及的内容。

    for i in range(len(message.mentions)):  # Unimportant, just for clarity
        if "no ping" in message.mentions[i].display_name.lower() or \  # Unimportant, just for clarity
                "unavailable" in message.mentions[i].display_name.lower() or \  # Unimportant, just for clarity
                "unavailable" in message.mentions[i].display_name.lower():  # Unimportant, just for clarity


            counter = 0
            text_channel_list = []
            for TextChannel in message.guild.channels:
                if str(TextChannel.type) == 'text':
                    text_channel_list.append(TextChannel.id)

            prev = datetime.datetime.now() - datetime.timedelta(minutes=10)

            for i in range(len(text_channel_list)):
                channel = client.get_channel(text_channel_list[i])
                msg = await channel.history(limit=None, after=prev).flatten()
                for message2 in msg:
                    if message2.author == message.author:
                        for i in range(len(message2.mentions)):
                            print(message2.mentions[i].display_name)  # This will return the user's Discord name, I want it to return the Server display name.
                            if "no ping" in message2.mentions[i].display_name.lower():
                                counter += 1

【问题讨论】:

    标签: python discord return


    【解决方案1】:

    我刚刚遇到这个问题并通过将意图范围扩大到所有人来解决它:

    client = discord.Client(intents=discord.Intents.all())
    

    希望这对某人有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-19
      • 2019-08-08
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多