在mirai-console输入exit后自动发消息
-
由于有时候机器人需要频繁重启以更新插件,所以想实现开关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发送下线消息呢?
-
不建议在上下线时随即发信息,很容易触发风控系统
-
应该可以自己实现个指令 在里面先发送信息,然后再execute exit指令
https://docs.mirai.mamoe.net/console/Commands.html#执行指令 -
@karlatemp 感谢您的回复。在我实装了上线自动发消息后,登陆了3~4次之后,我的号就被封了……
根据我对log的查看,最后一次上线发完消息之后,过了2分钟就被强制下线了。
希望能警示各位。 -
@nambers 您的方法确实可行,但其实我希望的是输入exit或者终端^C之后,bot都能在下线时自动发消息