当前位置: 首页 > 知识库问答 >
问题:

使JDA Discord Bot延迟编写消息

盖和泰
2023-03-14

我目前正试图让我的JDA机器人写一条消息,如果它留下一个语音通道。然后在消息发送后3秒钟,它应该会跟着另一条消息。

我已经尝试过用RestAction来做这件事,但我只能弄清楚如何删除延迟消息。

代码如下所示:

channel.sendMessage("You told me to leave, so I left"); //I shortened the message command here

//Then with a delay of 3 seconds it should do this
channel.sendMessage("That was mean");

我希望有人能在这里帮助我。非常感谢您的帮助!

共有1个答案

施文彬
2023-03-14

每个RestAction都有一个queueBy(long, TimeUnit),可以用来延迟它:

channel.sendMessage("Hello").queueAfter(10, TimeUnit.SECONDS);
 类似资料:
  • 主要内容:1 load加载延迟消息数据,1.1 parseDelayLevel解析延迟等级,2 start启动调度消息服务,3 DeliverDelayedMessageTimerTask投递延迟消息任务,3.1 executeOnTimeup执行延迟消息投递,3.2 scheduleNextTimerTask下一个调度任务,3.3 correctDeliverTimestamp校验投递时间,3.4 messageTimeup恢复正常消息,,基于RocketMQ release-4.9.3,深入

  • 我正在使用Spring Kafka1.0.3来消费kafka消息。Kafka的2个主题,每个主题有1个分区。在java代码中,有2@KafKalistener来消费每个主题消息。ConcurrentKafkaListenerContainerFactory的并发设置为1。但消息有时会延迟20秒以上。 有人知道为什么吗? 添加调试日志,并且延迟不是每次都可以,有时也可以:

  • 如何使用Apache Kafka生成/使用延迟消息?标准的Kafka(和Java的kafka-client)功能似乎没有这个特性。我知道我自己可以用标准的等待/通知机制来实现它,但是它看起来不是很可靠,所以任何建议和好的实践都很感谢。 找到相关问题,但没有帮助。正如我所看到的:Kafka基于从文件系统的顺序读取,并且只能用于直接读取主题,保持消息的顺序。我说的对吗?

  • 我们在RHEL 7.0 VM上部署了一个Java/spring/Tomcat应用程序,它使用AlejandRorivera/Embedded-RabbitMQ,一旦部署了war,它就启动Rabbitmq服务器,并连接到它。我们有多个队列用来处理和过滤事件。 流程如下所示: 我们接收到的事件->发布事件队列->侦听器类筛选事件->发布到另一个队列进行处理->我们发布到另一个队列进行日志记录。 问题是

  • CP正在使用我们的REST API从他们在新加坡的服务器发送推送。

  • 此应用程序收到 但是,当不存在web套接字会话,并且JMSProducer将消息发送到QueueSenderSessionBean中的目标“jms/notificationQueue”时,消息会立即在NotificationEndpoint中使用。这不是我的意图。 我的目的是让队列保留消息,直到用户连接到NotificationEndpoint。如果用户没有连接到NotificationEndpo