MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    已解决 Bot定时主动发送一条消息

    技术交流板块
    5
    6
    821
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • ConstantineQAQ
      ConstantineQAQ 最后由 编辑

      我想写一个让bot在指定时间向指定联系人主动发消息的功能,该如何实现呢?

      1 条回复 最后回复 回复 引用 0
      • rong_xiaoli
        rong_xiaoli 最后由 编辑

        如果知道QQ号的话建议每隔1秒获取时间,然后和预定时间相减,之后时间到了就主动发送消息

        ConstantineQAQ 1 条回复 最后回复 回复 引用 0
        • ConstantineQAQ
          ConstantineQAQ @rong_xiaoli 最后由 编辑

          @rong_xiaoli 具体该怎么实现呢,我试了下用java里的Date获取时间,然后到时间再发送是成功了,但是因为我写在事件监听里面在,所以它不能主动发消息,得我先给他发,然后他再检测时间到没到,到了就发预定的消息,现在我是想让他主动发,但是我又不知道程序该写在哪里

          wssy001 1 条回复 最后回复 回复 引用 0
          • Mitr-yuzr
            Mitr-yuzr 摸鱼 最后由 编辑

            通过kotlin的Task和Timer实现,可以参考我写的定时请求插件

            1 条回复 最后回复 回复 引用 1
            • wssy001
              wssy001 ⭐2021⭐ @ConstantineQAQ 最后由 编辑

              @ConstantineQAQ 无非就是一个定时任务的编写 这里说一个原生方案, 用ScheduledExecutorService啊,JDK自带的,网上有使用方法

              1 条回复 最后回复 回复 引用 0
              • H
                hundun000 ⭐2021⭐ 最后由 hundun000 编辑

                你是基于core开发,还是开发插件?插件开发文档里有java的延时1秒执行一次的定时任务样例,如下是变为每秒执行一次可在此处检查定时任务:

                public final class JExample extends JavaPlugin {
                    public static final JExample INSTANCE = new JExample();
                
                    private JExample() {
                        // ...
                    }
                
                    @Override
                    public void onEnable() {
                        getScheduler().repeating(1000L, () -> System.out.println("每秒钟执行。"));
                    }
                }
                
                1 条回复 最后回复 回复 引用 0
                • Topic has been marked as solved  ConstantineQAQ ConstantineQAQ 
                • 1 / 1
                • First post
                  Last post
                Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact