我一直试图使我的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。
答案 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
。您可以通过命令调用此函数,也可以将其设为命令,如果我理解正确的话。