如何从频道中检索消息列表
How to retrieve a list of messages from a channel
我正在使用 Discord 机器人,我想编辑该机器人之前发布的消息。我将消息 ID 存储到 SQL 数据库,然后检索它。
消息已正确找到,但消息当前存储为 IMessage
并使用 ModifyAsync
我认为它需要 SocketUserMessage
所以我现在使用下面的行代码但是变量 EditMessage
没有被设置。
将变量message
转换为SocketUserMessage
var EditMessage = message as SocketUserMessage;
while (reader.Read())
{
ulong MessageID = (ulong)reader.GetInt64(0);
var message = await Context.Channel.GetMessageAsync(MessageID);
var EditMessage = message as SocketUserMessage;
await EditMessage.ModifyAsync(x => x.Content = "Test [Edited].");
}
获取错误:
Object reference not set to an instance of an object
这会因为 EditMessage
的值为 Null
任何帮助将不胜感激
感谢收到的评论,我已经开始工作了
任何人在未来遇到这个问题我都是这样做的
while (reader.Read())
{
ulong MessageID = (ulong)reader.GetInt64(0);
var message = (RestUserMessage)await Context.Channel.GetMessageAsync(MessageID);
await message.ModifyAsync(x => x.Content = "Test [Edited].");
}
我正在使用 Discord 机器人,我想编辑该机器人之前发布的消息。我将消息 ID 存储到 SQL 数据库,然后检索它。
消息已正确找到,但消息当前存储为 IMessage
并使用 ModifyAsync
我认为它需要 SocketUserMessage
所以我现在使用下面的行代码但是变量 EditMessage
没有被设置。
将变量message
转换为SocketUserMessage
var EditMessage = message as SocketUserMessage;
while (reader.Read())
{
ulong MessageID = (ulong)reader.GetInt64(0);
var message = await Context.Channel.GetMessageAsync(MessageID);
var EditMessage = message as SocketUserMessage;
await EditMessage.ModifyAsync(x => x.Content = "Test [Edited].");
}
获取错误:
Object reference not set to an instance of an object
这会因为 EditMessage
的值为 Null
任何帮助将不胜感激
感谢收到的评论,我已经开始工作了
任何人在未来遇到这个问题我都是这样做的
while (reader.Read())
{
ulong MessageID = (ulong)reader.GetInt64(0);
var message = (RestUserMessage)await Context.Channel.GetMessageAsync(MessageID);
await message.ModifyAsync(x => x.Content = "Test [Edited].");
}