我正在使用Discord机器人,并且希望编辑该机器人以前发布的消息。我将消息ID存储到SQL数据库,然后检索它。
已正确找到该消息,但是该消息当前存储为fun getAllMediaFilesOnDevice(context: Context): {
//get the files like before...
//then post it to the mutable livedata to notify observers
mutableFiles.postValue(files)
}
,并且要使用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].");
}
的值为空
任何帮助将不胜感激
答案 0 :(得分:0)
感谢收到的评论,我已经开始工作了
将来在这个问题上苦苦挣扎的人都是我这样做的方式
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].");
}