不和谐成员的history()函数什么都不返回

时间:2020-10-31 15:48:41

标签: python discord discord.py

我一直在尝试使用member.history()方法获取自己的消息历史记录。但是我得到的只是一个空asyncIterator,里面没有任何东西。

import discord
from discord.ext import commands

client = commands.Bot(command_prefix = ".",intents=discord.Intents.all())

@client.event
async def on_ready():
    print('Bot is ready')

@client.command()
async def test(ctx):
    me = ctx.guild.get_member_named("Slade")
    print(me)
    async for message in me.history(limit=5):
        print(message)

client.run("token would go here")

上面的代码唯一打印的是就绪消息以及我自己的不一致名称和标签。 我在做什么错了?

2 个答案:

答案 0 :(得分:0)

执行以下操作

messages = await channel.history(limit=5).flatten()

这将返回消息列表。

所以您的功能将是:

@client.command()
async def test(ctx):
    me = ctx.guild.get_member_named("Slade")
    print(me)
    messages = []
    for channel in ctx.guild.channels:
        message = await channel.history(limit=5).flatten()
        messages.append(message)
    for message in messages:
        print(message[0].content)
    ```

This returns for you 5 messages of every channel in your server.

答案 1 :(得分:0)

找出问题所在。出于某些原因,member.history()user.history()函数都返回与漫游器相关的私有DM ,而不是公会消息历史记录。