Mirai-console插件要怎么实现仅靠一张图片实现指令?
-
群员发送一张特定图片(例如“色图来.jpg”),插件根据这张图片作出反应,要如何进行实现?
mirai-console-example-plugin(https://github.com/Him188/mirai-console-example-plugin/blob/master/src/main/kotlin/org/example/my/plugin/MyPluginMain.kt )中的CommandSender.test需要发送“/指令名 参数 [图片]”才能进行反应,如何通过只发送“[图片]”就进行反应?
希望能给我参考下代码 -
可以使用直接监听,mirai-console 命令框架不支持直接图片命令的形式
object TesterPlugin : KotlinPlugin(......) { override fun onEnable() { globalEventChannel().subscribeAlways<MessageEvent> { // do something... } } }
-
Mirai Console 内置的消息解析器不支持通过单个图片触发指令. 若有兴趣, 你可以覆盖默认的
CommandCallParser
来实现自定义的消息到指令的解析. 通常也可以使用 @Karlatemp 提供的方法, 只是没有统一权限管理, 指令列表管理等. -
你要找的是不是"色图来.jpg"原理....不知道可不可以通过图片md5来判断。mirai-console我不清楚
-
示例
// msg 类型为 MessageChain for (SingleMessage sm : msg){ if(sm instanceof Image){ if(checkImage(sm)){ //do sth. } } }
我忘了图片类型是 OnlineImage 还是啥了,自行寻找吧