Kotlin discord jda 无法通过 id 获取消息

Kotlin discord jda cannot get message by id

我正在尝试通过输入消息的 ID 来获取消息。我看到这是在一个例子中完成的,但它使用了旧的 discordjda,当我现在尝试时,我得到了这个奇怪的错误,我不知道如何解决它。我尝试将其转换为不同的值但没有成功

e.channel.history.getMessageById(userMessageFunction.b) {
    m ->
    if (e.message.timeCreated.isAfter(m.creationTime)) {
        userMessageFunction.c.accept(e.message)
        messageInteractivesQueue.remove(interactive)
    }
}

这是错误

在您的代码中,userMessageFunction.b 之后的大括号被视为
lambda 表达式,因此您的代码与此代码相同。

e.channel.history.getMessageById(userMessageFunction.b, m -> {
    if (e.message.timeCreated.isAfter(m.creationTime)) {
        userMessageFunction.c.accept(e.message)
        messageInteractivesQueue.remove(interactive)
    }
})

如果您想收到消息,请使用channel#retrieveMessageById
所以你可以像这样改变你的代码。

e.channel.retrieveMessageById(userMessageFunction.b).queue {
    if (e.message.timeCreated.isAfter(it.creationTime)) {
        userMessageFunction.c.accept(e.message)
        messageInteractivesQueue.remove(interactive)
    }
}

或者这个

e.channel.history.getMessageById(userMessageFunction.b).let {
    if (e.message.timeCreated.isAfter(it.creationTime)) {
        userMessageFunction.c.accept(e.message)
        messageInteractivesQueue.remove(interactive)
    }
}