@luanyaolingwu 谢谢,aoki很好用,生成的信息比丁真还真,把之前常用设备的信息提取出来了希望能稳定。但是我还有其他号也是这个常用设备,已经不敢登第二个了。
xiaojiedev 发布的帖子
-
RE: 有关登陆错误/device.json的疑问
-
RE: 有关登陆错误/device.json的疑问
@luanyaolingwu 问下你跑Mirai Android的设备和安卓版本,我用安卓12的pixel3手机跑不出来设备真实信息,和你这个不相似,和电脑生成的很相似……
-
RE: OpenAI ChatBot 插件,已添加预设功能(为啥你们都想整猫娘)
在群聊中,AI可以识别发言来自谁吗?
获取调用机器人的群成员昵称(或者截取一部分),将昵称作为发言的前缀调用AI,比如。
Human1:
AI:
Human2:
AI:
这个在网页中是可以做到的,AI也能很好的应付多角色聊天,但是我发现友商的插件都是把群聊作为单聊处理的,无法识别是哪个群成员在发言。 -
RE: B站订阅插件,动态、视频、直播订阅 @全体成员
我在前5楼的问题通过回滚mirai版本已解决。谢谢您!!
控制台偶发一条报错,未见功能异常,但是提示请汇报,就来粘贴一下2022-03-11 16:33:20 W/bilibili-helper: LiveWaiter with 45218583 数据加载异常,请汇报给开发者 kotlinx.serialization.json.internal.JsonDecodingException: Expected class kotlinx.serialization.json.JsonObject as the serialized body of xyz.cssxsh.bilibili.data.BiliRoomSimple, but had class kotlinx.serialization.json.JsonNull at kotlinx.serialization.json.internal.JsonExceptionsKt.JsonDecodingException(JsonExceptions.kt:24) at kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.beginStructure(TreeJsonDecoder.kt:332) at kotlinx.serialization.json.internal.JsonTreeDecoder.beginStructure(TreeJsonDecoder.kt:234) at xyz.cssxsh.bilibili.data.BiliRoomSimple$$serializer.deserialize(Live.kt:58) at xyz.cssxsh.bilibili.data.BiliRoomSimple$$serializer.deserialize(Live.kt:58) at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63) at kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeSerializableValue(TreeJsonDecoder.kt:51) at kotlinx.serialization.internal.TaggedDecoder.decodeSerializableValue(Tagged.kt:206) at kotlinx.serialization.internal.TaggedDecoder$decodeSerializableElement$1.invoke(Tagged.kt:279) at kotlinx.serialization.internal.TaggedDecoder.tagBlock(Tagged.kt:296) at kotlinx.serialization.internal.TaggedDecoder.decodeSerializableElement(Tagged.kt:279) at xyz.cssxsh.bilibili.data.BiliUserInfo$$serializer.deserialize(User.kt:25) at xyz.cssxsh.bilibili.data.BiliUserInfo$$serializer.deserialize(User.kt:25) at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:63) at kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeSerializableValue(TreeJsonDecoder.kt:51) at kotlinx.serialization.json.internal.TreeJsonDecoderKt.readJson(TreeJsonDecoder.kt:24) at kotlinx.serialization.json.Json.decodeFromJsonElement(Json.kt:119) at xyz.cssxsh.bilibili.api.UserKt$getUserInfo$$inlined$json$1.invokeSuspend(Api.kt:129) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:15) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:93) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:15) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:93) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:191) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:147) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:15) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:93) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:39) at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
-
RE: B站订阅插件,动态、视频、直播订阅 @全体成员
作者您好,我实在弄不明白了,来求助一下。
启动Mirai时控制台报错:
2022-03-10 22:39:00 W/bilibili-helper: 相关类加载失败,请安装 https://github.com/cssxsh/mirai-selenium-plugin java.lang.NoClassDefFoundError: xyz/cssxsh/mirai/plugin/MiraiSeleniumPlugin
截图功能无法使用,但是前置插件 xyz.cssxsh.mirai:mirai-selenium-plugin 我确定已经正常安装启用,浏览器内核已经下载和setup了,前置模块没有报过错。
我该怎么解决这个问题?
系统:Windows Server 2012 R2
Java:jdk-16.0.2
安装的plugin和版本:22:46:20 [INFO] iTXTech Mirai Console Loader version 1.2.2-60c67fb 22:46:20 [INFO] https://github.com/iTXTech/mirai-console-loader 22:46:20 [INFO] This program is licensed under GNU AGPL v3 22:46:21 [INFO] Package: org.bouncycastle:bcprov-jdk15on Channel: stable Type: libs Version: 1.64 Locked: false 22:46:21 [INFO] Package: net.mamoe:mirai-console Channel: beta Type: libs Version: 2.11.0-M1 Locked: false 22:46:21 [INFO] Package: net.mamoe:mirai-console-terminal Channel: beta Type: libs Version: 2.11.0-M1 Locked: false 22:46:21 [INFO] Package: net.mamoe:mirai-core-all Channel: beta Type: libs Version: 2.11.0-M1 Locked: false 22:46:21 [INFO] Package: org.itxtech:mcl-addon Channel: c122 Type: plugins Version: 1.2.2 Locked: false 22:46:21 [INFO] Package: xyz.cssxsh.mirai:mirai-device-generator Channel: stable Type: plugins Version: 1.0.1 Locked: false 22:46:21 [INFO] Package: net.mamoe:chat-command Channel: stable Type: plugins Version: 0.5.1 Locked: false 22:46:21 [INFO] Package: xyz.cssxsh.mirai:mirai-selenium-plugin Channel: stable Type: plugins Version: 2.0.8 Locked: false 22:46:21 [INFO] Package: xyz.cssxsh:bilibili-helper Channel: stable Type: plugins Version: 1.4.10 Locked: false
edit: 补充一下……是在模板里加入#screenshot 后才有“相关类加载失败”的报错,如果不加#screenshot ,就不会有那条报错。
-
RE: 有没有什么办法自定义插件回复的触发语句呢?
@hundun000 感谢大大提供的方案——
我认为/<指令> <指令>
这种形式还是咱bot开发者/搭建者调试的时候用比较合适。
如果用户能用 自然语言 来 触发回复 会比较好,挺希望插件开发者能考虑 “设计成支持两种表达方式” 的。
就好像 tb 和 jd 的电商客服机器人,虽然是固定回复,很蠢萌,大多情况下没什么用,但是交互的时候,也不需要用户打斜杠对吧XD -
RE: 有没有什么办法自定义插件回复的触发语句呢?
@nambers 感谢大大帮助!如果需要让我研究Mirai的文档,自己写插件,那就只能暂缓考虑了哈哈!因为我是初学的Java苦手,
做简单的Java课设实验还犯愁(上个月的事)。其实您展示的Mirai
prefixOptional (指令前缀可选)
属性也可以满足一部分需求了。虽然没有重发插件
那样灵活,但是不用打斜杠,体验还是可以上升一个档次的。最后再谢谢提供插件~拜读代码,安装测试中……
-
有没有什么办法自定义插件回复的触发语句呢?
有一些使用chat-command的插件,可以在聊天里发送以斜杠“/”开头的指令来调用一些功能。
但是我想自定义这些功能的触发语句该怎么办呢?有没有解决方法?因为我感觉打斜杠不太方便,或者觉得这样触发太生硬。比如Arknights Helper插件,我想把“/公招 狙击干员 群攻”改为“狙击干员和群攻有什么?”,让这两句话都可以触发一样的功能。
想要实现这个,我首先想到的是“铃心自定义”插件的“【重发】”变量,铃心自定义官方文档如下
>调用回复< 【重发XXX】填写在回复中,触发后相当于机器人再次收到内容为XXX的消息。(发送者/群组 不变)。重发后的消息不受各类开关限制。等重发的内容处理完毕才继续执行。 【重发[RD:QQ]XXX】 重发重定向。将发送者重定向为QQ,请带上[]。 【线程重发XXX】 同【重发】,只是该重发将启动新的线程,不再等待重发完毕才继续执行。 重发屏蔽: 即重发指令只执行命令不实施发送消息,具体指令【重发屏蔽xxx】 【线程重发屏蔽xxx】。
只可惜“铃心自定义”是一款古早的插件,不能在Mirai下原生运行,只能在Mirai Native下运行(我个人理解为“兼容模式”),这导致了“【重发】”这个变量测试失效了,我的这个想法实现不了。
各位有没有更好的方案?求大神qwq