由于 recaptcha.net 被屏蔽导致本站所有验证码可能都无法加载。
我们正在考虑切换验证码服务提供商,如果您无法注册和发帖请自行解决,带来的不便请谅解。
请阅读: 论坛规则 常见问题QA
源代码和文档: mamoe/mirai, docs.mirai.mamoe.net
闲聊TG群: @mirai_mamoe, Gitter群 mamoe/mirai
我用 IDEA 的 mirai-console 插件创建的项目 但插件给的最新版本只到2.9.2
a5f480ea-dfbf-4fc8-b1d7-b5a687c536c0-图片.png
然后我尝试把2.14.0打进去 然后就出现了这样的一幕
c352ce49-787b-46c8-870c-30f1738781ee-图片.png
点进去这一坨全是空的
5c40f355-9931-4d06-b109-6f1337218823-图片.png
接着我到 build.gradle.kts 里下调了几个版本 一直到 2.12.3 才不会报错 且上图的文件才有内容
.kts文件内容:
plugins { val kotlinVersion = "1.7.10" kotlin("jvm") version kotlinVersion kotlin("plugin.serialization") version kotlinVersion id("net.mamoe.mirai-console") version "2.14.0" }有无大佬知道怎样才能把version 改到 2.14.0 还不报错
或者是 我应该改什么才能用2.14.0
v1.6.1已更新
将新地图Broken Moon增加至地图提醒config 具体信息请查看Release描述satrsdownloadslicenseRelease
项目地址 这个插件可用于查询Apex英雄的 地图轮换 玩家信息 复制器轮换 猎杀门槛 官方活动新闻 以及 订阅玩家分数 订阅地图轮换 如果喜欢请点一个⭐Star,谢谢!!! 贡献者:EvolvedGhost ,感谢大佬! 使用中遇到的问题建议在 Issues 提出 如果你想自己编译 Clone源码 修改源码并保存 在项目根目录打开终端,输入./gradlew buildPlugin 等待编译完成后在./build/mirai里面拿编译完成的插件配置文件路径:config/pers.shennoter.apexlookup/config.yml
自定义指令文件路径:
config/pers.shennoter.apexlookup/customComm.yml
像图里这种BufferedImage、PictureMode、java.awt、graphic之类的字样的报错,一般都可以通过在mcl启动命令添加JVM参数-Djava.awt.headless=true解决
比如linux的mirai目录有一个名字叫“mcl”的文件,用记事本打开后你会看到$JAVA_BINARY -jar mcl.jar $*,把它改成$JAVA_BINARY -Djava.awt.headless=true -jar mcl.jar $*,就可以解决这类报错了,windows同理
Snipaste_2022-05-24_20-27-05.png
mirai-console 的扫码登录命令 临时实现。
https://github.com/MrXiaoM/mirai-console-dev-qrlogin
最近已知的风控
服务器最近似乎针对手表协议进行了更新,发送消息过快可能会导致机器人被风控无法再发送群消息。 该风控可通过让机器人频繁发送消息复现。一般来说通过密码登录皆为 code=45 若机器人无法发送群消息,请删除 cache 和 device.json 重新登录再试。 请尝试寻找降低消息发送速度的措施。请等待密码登录相关协议的更新。
这是什么最近二维码登录的 PR 合并了,但是我并没有找到登录命令,所以我打算写一份暂时用着。为了较快地能写出一套登录命令,大部分代码是抄的mirai原来的自动登录系统。
用法在 mirai 版本大于或等于 2.15.0-dev-27 的控制台中安装该插件,如果你不会下载开发版本,可在本文末尾加群下载一键包。你也可以使用最近的一个测试版本 2.15.0-M1
安装插件后启动,在控制台输入命令
qrlogin <QQ号>即可进行二维码登录,第一次进行二维码登录要求使用手机QQ扫码二维码确认,第二次及以后可自动使用登录会话来登录而无需扫码。建议在第一次登录后添加自动登录。
如果看不清控制台输出的二维码图片,可以在 ./data/top.mrxioam.qrlogin/ 找到二维码图片文件。
使用 ANDROID_WATCH 协议进行扫码登录时,需要 mirai 与你的手机处于同一网络环境,可以通过连接同一 WiFi 来实现。
如果你的 mirai 在服务器上,可尝试在服务器上搭建代理服务器,手机连接代理服务器再扫码。
你页可以在本地电脑扫码登录完成后退出登录,在服务器删除 ./bots/机器人QQ号 文件夹,将本地的 ./bots/机器人QQ号 文件夹传输到服务器,至少等待半小时再登录。
等待足够长的时间避免短时间内异地登录造成风控要求重新扫码,这个方法大概率可以成功,在已被标记风控的IP地址可能无法成功。
和 mirai-console 自带命令基本一致,只是命令前缀多了 qr,选项少了密码。
/qrLogin <qq> [protocol] # 扫码登录,协议可用 ANDROID_WATCH 和 MACOS,默认 ANDROID_WATCH /qrAutoLogin add <account> # 添加(扫码登录)自动登录 /qrAutoLogin clear # 清除(扫码登录)自动登录的所有配置 /qrAutoLogin list # 查看(扫码登录)自动登录账号列表 /qrAutoLogin remove <account> # 删除一个(扫码登录)自动登录账号 /qrAutoLogin removeConfig <account> <configKey> # 删除一个账号(扫码登录)自动登录的一个配置项 /qrAutoLogin setConfig <account> <configKey> <value> # 设置一个账号(扫码登录)自动登录的一个配置项添加 jvm 参数 -Dmirai.no-desktop 可以禁用窗口式扫码登录处理器。
添加 jvm 参数 -Dqrlogin.no-solver 可以禁止本插件修改登录解决器。
./gradlew buildPlugin非开发者可无视此部分。
对于想要使用 扫码登录 的 mirai-core 用户,请见 mirai 2.15.0-M1 的 Release Note,里面有扫码登录的操作方法。
或者参考本插件源码:
扫码登录版本一键包下载登录命令: QRLoginCommand.kt
修改登录解决器: QRLoginSolver.kt
加入群 1047497524 在群文件 Mirai 一键包 文件夹下载。
如果你觉得有用,请给本贴点赞,或到 Github 项目地址点一个标星 (Star)
捐助前往 爱发电 捐助我。
利用mcl-installer安装mcl后利用cmd启动输入./mcl会弹出系统找不到指定的路径。
(确定文件夹路径正确)
61d749d3-6d64-4c5c-b204-8a94fadc64c5-D0VTM4XVG$KM_%HME2@88LC.png
已经被这个问题困扰很久了
今天下午开始突然群聊不能发送转发的消息,不能发送正常消息,图片,但是可以分享网易云。好友一切正常 2.15mirai ANDROID_WATCH
2023-05-30 15:51:32 V/Bot.3620136843: [<$ǿĀD>布<$ÿĀ>响<$ÿĀ>丸<$ÿĀ>辣<$ǿĀD>(786634372)] 魔理沙的八卦炉(1244544779) -> 抽老婆
2023-05-30 15:51:35 V/Bot.3620136843: Group(786634372) <- [mirai:at:1244544779] 今天你的群友亲爱的是 [mirai:image:{F30A4FB2-EB91-47F0-F2AF-C25E0C745D78}.jpg, width=640, height=640, size=29877, type=UNKNOWN, isEmoji=false]
【鱼塘】(2731851326)哒!
2023-05-30 15:51:37 V/Bot.3620136843: [<$ǿĀD>布<$ÿĀ>响<$ÿĀ>丸<$ÿĀ>辣<$ǿĀD>(786634372)] 魔理沙的八卦炉(1244544779) -> #网易 大貔貅
2023-05-30 15:51:38 V/Bot.3620136843: Group(786634372) <- MusicShare(kind=NeteaseCloudMusic, title=大貔貅, summary=ONER, jumpUrl=https://y.music.163.com/m/song?id=2014304695, pictureUrl=http://p4.music.126.net/2okZp9SEpBMq74Dgahtapw==/109951168232352753.jpg, musicUrl=http://music.163.com/song/media/outer/url?id=2014304695.mp3, brief=[分享]大貔貅)
用mirai-http-api插件发送消息,返回值提示成功,mirai控制台上面也有显示,但是实际上却是没发出去消息,并且返回的messageId也为-1,请问有大佬知道怎么解决吗
更新批量添加回复
支持设置语音回复与导入语音模型
基于Yirimirai,修改自CjangCjengh的MoeGoe
下载链接1(github)
使用方法
需要mirai-api-http
记得修改config.json并与mirai-api-http中的port、key、qq保持一致
准备完成后运行bot.py即可
在voiceModel文件夹下新建文件夹,把.pth(模型文件)和config.json(配置文件)放进去,重启就可以看到了
下载模型
已修改配置文件的模型仓库,下载后放在项目对应文件夹下即可。
**使用上面第三个仓库时可忽略此步** 模型名称修改(重要): 多语种模型:后缀名前面加一个m,如yuuka.pth支持中日双语,则改成yuukam.pth 单语种模型:不用改名 配置文件修改: 模型来自saya佬:打开config.json修改speakers,把一大串speakers修改为一个(名称随意) | 中文名的speaker需要转unicode | https://www.xgjzx.cn/chinese 模型来自CjangCjengh:直接用原装配置文件即可 切换模型发送 sp查看全部可用角色(数量取决于你装了多少语音模型)
发送 [角色名]说XXXXX 即可
b6d0ee9e-a061-4a8f-9c28-baaffccb558b-image.png
你也可以选择一个默认的语音模型,发送 voice 可以查看功能列表,里面有写
杰洛特语音模型使用方式,从release单独下载Geralt.rar,命令触发前缀是en,
例如 en我的徽章在震动,这附近一定有年轻女术士。
其余同上
芝士群里的效果
80e5b48a-84ec-406d-9695-cd9d393058f9-4BE91D6F3860BD4DF0E145E0D5F75111.jpg
寻定制化开发插件的大佬需要有深度集成项目经历 待遇私聊
有兴趣加wx:chch0011223344
这段程序在服务器上跑了一个多月了,一直正常,但是这周突然频发有机器人不回复消息的情况,我刚开始以为是我的程序报错了,一查日志发现我的程序没问题,通过http发送群消息的时候,msg是SUCCESS,CODE也是0,但是消息就是没有回复到群里,messageId也是-1
请问这是什么原因?
替代文字
环境信息:
mirai :Version 2.15.0-M1
mirai-api-http:Version 2.9.1
登录方式:qrlogin 手表
7908402ED62A15DB5A58C6BDBD3BB3B2.png
GitHub: https://github.com/NicholasLD/TeachMeSth
如标题,广东移动家庭宽带真的是太棒了每天凌晨两点三十八分必断网几分钟,然后就~机器人就掉线拉~真的是太棒了呢~
请问各位是否有方法可以让某个机器人掉线然后重新登录这个机器人 或者是直接重启。本人有尝试过监听机器人掉线事件然后对接mcsmanager来重启,但是效果不是很好。
(掉线的控制台日志)
...2023-05-27 02:38:41 V/Bot.: Event: BotOfflineEvent.Dropped(bot=Bot(), cause=HeartbeatFailedException: ***.AliveHe
artbeat, recoverable=true, cause=PacketTimeoutException(message=***.AliveHeartbeat Scheduler: Timeout receiving action response, caus
e=null), reconnect=true)
2023-05-27 02:38:42 W/Bot.***: Connection lost, reconnecting... (HeartbeatFailedException: ***.AliveHeartbeat, recoverable=tru
e, cause=PacketTimeoutException(message=***.AliveHeartbeat Scheduler: Timeout receiving action response, cause=null))
2023-05-27 02:38:43 E/Bot.***: Exception on parsing packet.
java.lang.IllegalStateException: Exception in net.mamoe.mirai.internal.network.notice.group.GroupMessageProcessor@387af546 while processing
packet PbPushMsg.
at net.mamoe.mirai.internal.network.components.NoticeProcessorPipelineImpl.handleExceptionInProcess(NoticeProcessorPipeline.kt:105) at net.mamoe.mirai.internal.network.components.NoticeProcessorPipelineImpl.handleExceptionInProcess(NoticeProcessorPipeline.kt:80) at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process$suspendImpl(ProcessorPipeline.kt:289) at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process(ProcessorPipeline.kt) at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process$suspendImpl(ProcessorPipeline.kt:275) at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process(ProcessorPipeline.kt) at net.mamoe.mirai.internal.network.protocol.packet.chat.receive.OnlinePushPbPushGroupMsg.decode(OnlinePush.PbPushGroupMsg.kt:37) at net.mamoe.mirai.internal.network.components.PacketCodecImpl.processBody(PacketCodec.kt:492) at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline.processBody(CommonNetworkHandler.kt:157) at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline.access$processBody(CommonNetworkHandler.kt:102)
at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline$1$3$1.invokeSuspend(CommonNetworkHandler.kt:12 at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline$1$3$1.invoke(CommonNetworkHandler.kt) at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline$1$3$1.invoke(CommonNetworkHandler.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55) at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112) at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56) at kotlinx.coroutines.BuildersKt.launch(Unknown Source) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:47) at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source) at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline$1.invokeSuspend(CommonNetworkHandler.kt:126) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:833)Caused by: java.lang.IllegalStateException: Failed to download forward message `gKffPHglRRrjLpFL2gmuJkM7etqOSQ7XQZ369AAkwmolKMcb3qfhvE24Cy8m
j6Uo`
at net.mamoe.mirai.internal.MiraiImpl.downloadForwardMessage$suspendImpl(MiraiImpl.kt:709) at net.mamoe.mirai.internal.MiraiImpl.downloadForwardMessage(MiraiImpl.kt) at net.mamoe.mirai.internal.message.data.ForwardMessageInternal.refine(LongMessageInternal.kt:127) at net.mamoe.mirai.internal.message.DeepMessageRefiner.refineDeep(RefinableMessage.kt:191) at net.mamoe.mirai.internal.message.ReceiveMessageHandlerKt.toMessageChainOnline(ReceiveMessageHandler.kt:53) at net.mamoe.mirai.internal.message.ReceiveMessageHandlerKt.toMessageChainOnline$default(ReceiveMessageHandler.kt:46) at net.mamoe.mirai.internal.network.notice.group.GroupMessageProcessor.processImpl(GroupMessageProcessor.kt:177) at net.mamoe.mirai.internal.network.notice.group.GroupMessageProcessor.processImpl(GroupMessageProcessor.kt:42) at net.mamoeocessorPipeline.kt:287) ... 27 moreCaused by: java.lang.IllegalStateException: NetworkHandler is already closed.
at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$StateClosed.sendPacketImpl(CommonNetworkHandler.kt:389) at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler.sendPacketImpl(CommonNetworkHandler.kt:36) at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport.sendAndExpect(NetworkHandlerSupport.kt:123) at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport.sendAndExpect(NetworkHandlerSupport.kt:149) at net.mamoe.mirai.internal.network.handler.selector.SelectorNetworkHandler.sendAndExpect$suspendImpl(SelectorNetworkHandler.kt:103) at net.mamoe.mirai.internal.network.handler.selector.SelectorNetworkHandler.sendAndExpect(SelectorNetworkHandler.kt) at net.mamoe.mirai.internal.network.handler.NetworkHandler.sendAndExpect$default(NetworkHandler.kt:194) at net.mamoe.mirai.internal.MiraiImpl.downloadMultiMsgTransmit(MiraiImpl.kt:754) at net.mamoe.mirai.internal.MiraiImpl.downloadForwardMessage$suspendImpl(MiraiImpl.kt:707) ... 37 more“不好!这里要撑不下去了”
“A4 求救,A4 求救,A32 地区的沙雕数量超过阈值,即将突破防线!”
“什么!?啧。。”
“B8 已完成沙雕清除任务,现赶往 A32 地区”
“这样。。什么时候是个头啊。。”
如果想订阅本贴更新可以点击右上角铃铛🔔按钮
【持续时间】
1970.1.1 ~ 114514.12.31
【活动内容】
糟糕!沙雕小别墅遭到了从未知之处涌出的沙雕攻击,防御工事濒临崩溃,如果能用其他的方法击退它们的话。。
对了!沙雕图!
【参与方式】
在本贴中回复沙雕图,协助沙雕防御工事击退沙雕。
【活动奖励】
从其他 miraier 获取的沙雕图!是不是非常丰厚呢?
【注意事项】
遵守摸鱼区规则。
是沙雕图不是涩图!
【样例】
3c2dfb62-5555-4c00-a17b-d76715bf2088-image.png
如何在知道[mirai:image:{F4BBA84E-63DF-6839-00EE-2982CD2787F2}.png, width=89, height=106, size=9879, type=PNG, isEmoji=false]的时候自动将它保存到本地?请问有这样的插件或者实现方法吗?本人编程零基础萌新,希望有大佬愿意相助,非常感谢。
Login failed: NettyChannelException(message=null, cause=null)
2023-05-16 02:23:19 E/console: NettyChannelException(message=null, cause=null)
输入了login加qq号加密码就出现了这个,不知道是什么情况
这个插件只做一件事情,就是在收到戳一戳事件时,回复预设的消息。
这是一个开源插件,你可以在这里访问代码仓库,在这里下载最新发布文件
配置文件允许用户设置监听事件的优先级与是否在回复后拦截事件。
命令 /jnr add [weight] # 添加回复消息(权重默认为1) /jnr add <message> [weight] # 添加简单回复消息(权重默认为1) /jnr clear # 清空回复消息列表 /jnr list # 列出当前回复消息列表 /jnr remove <index> # 删除指定索引的回复消息 特殊消息设置回复消息为以下内容,代表特殊含义
#nudge 戳回去 #group.mute:30 禁言30s, 可以自定义禁言时间, 单位秒 使用示例Use example image
更新记录 v1.1.0新增特殊响应动作 #6 by @YehowahLiu
支持戳回去 #nudge 支持禁言 #group.mute:30 表示禁言30s