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 bot 无法使用 JDA 在 java 中发送消息