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

Posted

技术标签:

【中文标题】Kotlin discord jda 无法通过 id 获取消息【英文标题】:Kotlin discord jda cannot get message by id 【发布时间】:2021-03-06 18:59:25 【问题描述】:

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

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

这是错误

【问题讨论】:

【参考方案1】:

在您的代码中,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)
    

【讨论】:

以上是关于Kotlin discord jda 无法通过 id 获取消息的主要内容,如果未能解决你的问题,请参考以下文章

Discord JDA 无法创建角色

Discord bot 无法使用 JDA 在 java 中发送消息

Discord JDA 依赖缺失

Discord JDA 保存邮件中包含的文件附件

#general 频道 Discord - 超时和 JDA 未收到消息

Java:从 Discord JDA 获取并返回邀请 url