MiraiForum

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

    在mirai-console输入exit后自动发消息

    开发交流
    3
    5
    430
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • M
      Michael1015198808 最后由 Michael1015198808 编辑

      由于有时候机器人需要频繁重启以更新插件,所以想实现开关mcl时都在群里发送消息的功能。

      上线发送消息的功能可以通过

      eventChannel.subscribeAlways<BotOnlineEvent>{
          for ((group, message) in GreetingConfig.OnlineMessages) {
              bot.getGroup(group)?.sendMessage(if (message != "") message else "机器人已上线!")
          }
      }
      

      实现,但是将BotOnlineEvent改为BotOfflineEvent之后,并不能发送消息(可能是因为已经下线了?)。而在插件的onDisable里通过Bot.instances访问Bot实例时,发现已经清空了。
      所以我估计mcl对机器人和插件的顺序应该是

      • 注册插件
      • 登录机器人
      • 登出机器人
      • 解除插件

      那么,如何在mirai-console输入exit之后,让bot发送下线消息呢?

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

        不建议在上下线时随即发信息,很容易触发风控系统

        M 1 条回复 最后回复 回复 引用 1
        • Nambers
          Nambers 摸鱼 最后由 Nambers 编辑

          应该可以自己实现个指令 在里面先发送信息,然后再execute exit指令
          https://docs.mirai.mamoe.net/console/Commands.html#执行指令

          M 1 条回复 最后回复 回复 引用 0
          • M
            Michael1015198808 @Karlatemp 最后由 编辑

            @karlatemp 感谢您的回复。在我实装了上线自动发消息后,登陆了3~4次之后,我的号就被封了……
            根据我对log的查看,最后一次上线发完消息之后,过了2分钟就被强制下线了。
            希望能警示各位。

            1 条回复 最后回复 回复 引用 0
            • M
              Michael1015198808 @Nambers 最后由 编辑

              @nambers 您的方法确实可行,但其实我希望的是输入exit或者终端^C之后,bot都能在下线时自动发消息

              1 条回复 最后回复 回复 引用 0
              • 1 / 1
              • First post
                Last post
              Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact