发送后 10 秒使用 JDA 删除消息

Posted

技术标签:

【中文标题】发送后 10 秒使用 JDA 删除消息【英文标题】:use JDA delete message 10 seconds after sending 【发布时间】:2019-12-25 03:51:38 【问题描述】:

我正在制作一个不和谐的机器人,它发送一个嵌入来显示用户的库存(我正在制作一个游戏机器人)。为避免混乱,我想在 10-20 秒后删除该消息。任何人都知道我该怎么做(如果你完全理解这些问题,那么请不要说,“哦,你需要遵循等等等等格式”)。我正在将 Java Eclipse 与 JDA 一起使用。

是的,我已经查过了,但没有找到 JDA 的任何内容。

【问题讨论】:

【参考方案1】:

您可以使用queueAfter,这将延迟delete()提供的RestAction的执行。

public static void deleteAfter(Message message, int delay) 
    message.delete().queueAfter(delay, TimeUnit.SECONDS);

此方法可在您的 sendMessage 操作的成功回调中使用。

someMethod().queue((result) ->  // the type for "result" is the T in RestAction<T>
    System.out.println(result);
, (failure) ->  // failure is always a Throwable
    failure.printStackTrace();
);

我建议阅读文档和 wiki:

RestAction javadocs JDA wiki

【讨论】:

谢谢伙计。如果我还在制作机器人,这会有所帮助,哈哈

以上是关于发送后 10 秒使用 JDA 删除消息的主要内容,如果未能解决你的问题,请参考以下文章

如何根据反应发送消息,然后根据用户消息发送另一个消息?使用 JDA

JDA - 向特定频道发送消息

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

使用 JDA 制作的 Discord 机器人正在删除不正确的消息

如何使用 Java 中的 Discord JDA 在 Discord 上的特定时间发送消息

JDA - 发送消息