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)
}
}
我正在尝试通过输入消息的 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)
}
}