【问题标题】:Kotlin discord jda cannot get message by idKotlin discord jda 无法通过 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)
    }
}

这是错误

【问题讨论】:

    标签: kotlin discord discord-jda


    【解决方案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)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-05-04
      • 2022-01-05
      • 2020-10-20
      • 2021-07-06
      • 2021-07-26
      • 2021-02-06
      • 2022-11-16
      • 2021-04-19
      • 2021-06-17
      相关资源
      最近更新 更多