无法通过 RestUserMessage 获取消息

Can't get a message through RestUserMessage

遇到了一个奇怪的问题。初始化任何命令后,当用户添加反应时我无法收到消息。 DebugMode 没有向我显示任何异常,程序继续 运行,但代码只是在获取消息的行处停止。奇怪的是,重启程序后,如果命令没有初始化,我可以从频道中获取消息。

在这个GIF中,我预先初始化了命令“hi”。

命令代码:

public class Module : ModuleBase<SocketCommandContext>
{
    [Command("hi")]
    public async Task Hi()
    {
        string hi = "Hi";
    }
}

OnReaction 代码:

private async Task OnReactionAdded(Cacheable<IUserMessage, ulong> arg1, ISocketMessageChannel arg2, SocketReaction arg3)
{
    IEnumerable<IMessage> messages = await arg2.GetMessagesAsync(2).FlattenAsync();
    var message = (RestUserMessage)await arg2.GetMessageAsync(messages.First().Id); //Just stops the execution of the code after use any command
}

问题是 arg2 只接受 SocketUserMessage 而我试图通过 RestUserMessage 来完成。虽然目前还不清楚为什么在 bot 启动之前存在的消息可以通过 RestUserMessage 检索,而 bot 发送的新消息只能被 SocketUserMessage 读取。

我的代码:

private async Task OnReactionAdded(Cacheable<IUserMessage, ulong> arg1, ISocketMessageChannel arg2, SocketReaction arg3)
{
    IEnumerable<IMessage> messages = await arg2.GetMessagesAsync(2).FlattenAsync();
    var message = (SocketUserMessage)await arg2.GetMessageAsync(messages.First().Id); 
}