Discord.net GetMessagesAsync()返回null

时间:2018-12-08 19:51:11

标签: c# discord.net

我一直试图使我的Discord BOT 在特定的Discord频道中获取X条消息列表。但是到目前为止,我尝试过的所有方法最终都将null返回给创建用于存储所述列表的本地变量。

我向Disordd.net的Discord小组寻求帮助,但是没有人可以帮助我解决我的问题。

我的代码如下:

public async Task OnDeleteDiscordMessage()
    {
        IEnumerable<IMessage> messages = await discordSocketClient.GetGuild(guildID).GetTextChannel(channelID).GetMessagesAsync(10).Flatten();

        foreach (IMessage message in messages)
        {
            Console.WriteLine(message);
        }
    }

控制台不返回任何内容,使用断点,我能够注意到变量“ message”返回null。

1 个答案:

答案 0 :(得分:1)

public async Task OnDeleteDiscordMessage()
        {
            var messages = await Context.Channel.GetMessagesAsync(10).FlattenAsync();
            foreach (var message in messages)
            {
                Console.WriteLine(message.Content);
            }
        }

您首先将通道的最后 10 条消息存储在一个变量中,然后遍历每条消息并执行某些操作,在您的情况下,您编写了一条控制台行。最后一件事,为了获取消息的文本,我们使用 message.Content。您可以通过命令调用此函数,也可以将其设为命令,如果我理解正确的话。