Closed 4o4E closed 1 year ago
我也遇到了,咋解决
我下午也遇到了
同问
可以先用cssxsh的fix-protocol-version
协议选择 ANDROID_PHONE
或者 ANDROID_PAD
我也
特意在38妇女节开238
可以先用cssxsh的fix-protocol-version
协议选择
ANDROID_PHONE
或者ANDROID_PAD
我的情况是使用ANDROID_WATCH协议会提示238 然后切换到ANDROID_PAD协议会提示版本过低
然后使用了fix-protocol-version这个插件后,不再提示版本过低。通过滑块验证+手机短信验证后,正常登录
可以先用cssxsh的fix-protocol-version 协议选择
ANDROID_PHONE
或者ANDROID_PAD
我的情况是使用ANDROID_WATCH协议会提示238 然后切换到ANDROID_PAD协议会提示版本过低
然后使用了fix-protocol-version这个插件后,不再提示版本过低。通过滑块验证+手机短信验证后,正常登录
请问怎么使用fix-protocol-version这个插件呢?
可以先用cssxsh的fix-protocol-version 协议选择
ANDROID_PHONE
或者ANDROID_PAD
我的情况是使用ANDROID_WATCH协议会提示238 然后切换到ANDROID_PAD协议会提示版本过低 然后使用了fix-protocol-version这个插件后,不再提示版本过低。通过滑块验证+手机短信验证后,正常登录
请问怎么使用fix-protocol-version这个插件呢?
到链接里下载jar放到plugins文件夹中,重新运行一遍就可以了,我的解决了
想问一下java+core的怎么解决 看了看楼上好像用的都是console(
想问一下java+core的怎么解决 看了看楼上好像用的都是console(
pc端的java版的怎么解决...
想问一下java+core的怎么解决 看了看楼上好像用的都是console(
参考插件源码
真难 Java 操作不了 MiraiProtocolInternal 类。。
使用了来自不同模块的 Kotlin 内部声明
想问一下大家,jar格式的插件是怎么安装的?我试着把链接里的jar文件放进去了,但还是报错
真难 Java 操作不了 MiraiProtocolInternal 类。。
使用了来自不同模块的 Kotlin 内部声明
所以你现在解决了吗,java要怎么才能调用MiraiProtocolInternal 里面的内容
真难 Java 操作不了 MiraiProtocolInternal 类。。
使用了来自不同模块的 Kotlin 内部声明
所以你现在解决了吗,java要怎么才能调用MiraiProtocolInternal 里面的内容
我也在等大佬指点-.-
直接把插件包导进去调用初始化方法就好了啊(
尝试让AI写一个反射来修改protocols,失败了。。
直接把插件包导进去调用初始化方法就好了啊(
大佬麻烦看一下,我把fix-protocol-version的gradle-wrapper.jar放进plugins里了,但还是报错235,请问需要对mirai做什么别的操作吗?
想问一下java+core的怎么解决 看了看楼上好像用的都是console(
编辑:我加了这个以后就能正常登录了,能否正常取决于账号情况。
package cn.robot.robot.utils;
import net.mamoe.mirai.utils.BotConfiguration;
import java.lang.reflect.Field;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Map;
public class FixProtocolVersion {
public static void fix(){
try {
Class<?> MiraiProtocolInternal = Class.forName("net.mamoe.mirai.internal.utils.MiraiProtocolInternal");
Field field = MiraiProtocolInternal.getFields()[0];
Object companion = field.get(Object.class);
EnumMap<BotConfiguration.MiraiProtocol, Object> protocols = (EnumMap<BotConfiguration.MiraiProtocol, Object>)companion.getClass().getMethod("getProtocols$mirai_core").invoke(companion);
Object pad = protocols.get(BotConfiguration.MiraiProtocol.ANDROID_PAD);
/*
* apkId: String,
id: Long,
ver: String,
sdkVer: String,
miscBitMap: Int,
subSigMap: Int,
mainSigMap: Int,
sign: String,
buildTime: Long,
ssoVersion: Int,
canDoQRCodeLogin: Boolean = false,
* */
Class<?> padClass = pad.getClass();
Map<String, Object> padData = new HashMap<String, Object>(){{
put("id", 537151218);
put("ver", "8.9.33.10335");
put("sdkVer", "6.0.0.2534");
put("buildTime", 1673599898L);
}};
for (Field f : padClass.getFields()) {
f.setAccessible(true);
if(padData.containsKey(f.getName())){
f.set(pad, padData.get(f.getName()));
}
f.setAccessible(false);
}
Object phone = protocols.get(BotConfiguration.MiraiProtocol.ANDROID_PHONE);
Map<String, Object> phoneData = new HashMap<String, Object>(){{
put("id", 537151682);
put("ver", "8.9.33.10335");
put("sdkVer", "6.0.0.2534");
put("buildTime", 1673599898L);
}};
for (Field f : padClass.getFields()) {
f.setAccessible(true);
if(padData.containsKey(f.getName())){
f.set(phone, phoneData.get(f.getName()));
}
f.setAccessible(false);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
想问一下java+core的怎么解决 看了看楼上好像用的都是console(
package cn.robot.robot.utils; import net.mamoe.mirai.utils.BotConfiguration; import java.lang.reflect.Field; import java.util.EnumMap; import java.util.HashMap; import java.util.Map; public class FixProtocolVersion { public static void fix(){ try { Class<?> MiraiProtocolInternal = Class.forName("net.mamoe.mirai.internal.utils.MiraiProtocolInternal"); Field field = MiraiProtocolInternal.getFields()[0]; Object companion = field.get(Object.class); EnumMap<BotConfiguration.MiraiProtocol, Object> protocols = (EnumMap<BotConfiguration.MiraiProtocol, Object>)companion.getClass().getMethod("getProtocols$mirai_core").invoke(companion); Object pad = protocols.get(BotConfiguration.MiraiProtocol.ANDROID_PAD); /* * apkId: String, id: Long, ver: String, sdkVer: String, miscBitMap: Int, subSigMap: Int, mainSigMap: Int, sign: String, buildTime: Long, ssoVersion: Int, canDoQRCodeLogin: Boolean = false, * */ Class<?> padClass = pad.getClass(); Map<String, Object> padData = new HashMap<String, Object>(){{ put("id", 537151218); put("ver", "8.9.33.10335"); put("sdkVer", "6.0.0.2534"); put("buildTime", 1673599898L); }}; for (Field f : padClass.getFields()) { f.setAccessible(true); if(padData.containsKey(f.getName())){ f.set(pad, padData.get(f.getName())); } f.setAccessible(false); } Object phone = protocols.get(BotConfiguration.MiraiProtocol.ANDROID_PHONE); Map<String, Object> phoneData = new HashMap<String, Object>(){{ put("id", 537151682); put("ver", "8.9.33.10335"); put("sdkVer", "6.0.0.2534"); put("buildTime", 1673599898L); }}; for (Field f : padClass.getFields()) { f.setAccessible(true); if(padData.containsKey(f.getName())){ f.set(phone, phoneData.get(f.getName())); } f.setAccessible(false); } } catch (Exception e) { e.printStackTrace(); } } }
-.-话说只有我一个人用了之后变 235错误的吗
想问一下java+core的怎么解决 看了看楼上好像用的都是console(
package cn.robot.robot.utils; import net.mamoe.mirai.utils.BotConfiguration; import java.lang.reflect.Field; import java.util.EnumMap; import java.util.HashMap; import java.util.Map; public class FixProtocolVersion { public static void fix(){ try { Class<?> MiraiProtocolInternal = Class.forName("net.mamoe.mirai.internal.utils.MiraiProtocolInternal"); Field field = MiraiProtocolInternal.getFields()[0]; Object companion = field.get(Object.class); EnumMap<BotConfiguration.MiraiProtocol, Object> protocols = (EnumMap<BotConfiguration.MiraiProtocol, Object>)companion.getClass().getMethod("getProtocols$mirai_core").invoke(companion); Object pad = protocols.get(BotConfiguration.MiraiProtocol.ANDROID_PAD); /* * apkId: String, id: Long, ver: String, sdkVer: String, miscBitMap: Int, subSigMap: Int, mainSigMap: Int, sign: String, buildTime: Long, ssoVersion: Int, canDoQRCodeLogin: Boolean = false, * */ Class<?> padClass = pad.getClass(); Map<String, Object> padData = new HashMap<String, Object>(){{ put("id", 537151218); put("ver", "8.9.33.10335"); put("sdkVer", "6.0.0.2534"); put("buildTime", 1673599898L); }}; for (Field f : padClass.getFields()) { f.setAccessible(true); if(padData.containsKey(f.getName())){ f.set(pad, padData.get(f.getName())); } f.setAccessible(false); } Object phone = protocols.get(BotConfiguration.MiraiProtocol.ANDROID_PHONE); Map<String, Object> phoneData = new HashMap<String, Object>(){{ put("id", 537151682); put("ver", "8.9.33.10335"); put("sdkVer", "6.0.0.2534"); put("buildTime", 1673599898L); }}; for (Field f : padClass.getFields()) { f.setAccessible(true); if(padData.containsKey(f.getName())){ f.set(phone, phoneData.get(f.getName())); } f.setAccessible(false); } } catch (Exception e) { e.printStackTrace(); } } }
-.-话说只有我一个人用了之后变 235错误的吗
我用了变45了(但是其他小号是好的)
想问一下java+core的怎么解决 看了看楼上好像用的都是console(
https://docs.mirai.mamoe.net/UsingSnapshots.html
version 取 2.15.0-dev-20
用了fix-protocol-version-1.0.0.mirai2.jar还是不行
可以先用cssxsh的fix-protocol-version 协议选择
ANDROID_PHONE
或者ANDROID_PAD
我的情况是使用ANDROID_WATCH协议会提示238 然后切换到ANDROID_PAD协议会提示版本过低
然后使用了fix-protocol-version这个插件后,不再提示版本过低。通过滑块验证+手机短信验证后,正常登录
大佬我本来也是238的,用了这个插件后变成237了,aoki部分协议238/235
我本来238,现在237,怎么搞... code=237, title=安全提醒, message=当前网络不稳定,登录失败。推荐使用常用设备或通过手机号登录。, errorInfo=)
请问,mirai登录了,但是接收不到消息是怎么回事?
2023-03-09 12:08:09 I/Bot.2507331475: Bot cancelled: Bot closed 2023-03-09 12:08:09 I/main: mirai-console started successfully.
下面一点消息都没有了
2023-03-09 12:21:05 W/stderr: ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
请问这是什么情况
路径问题,如果你是手动部署建议检查下
bot closed说明marai就没启动……
bot closed说明marai就没启动……
你说有没有可能是启动后才会close 或者在启动中出现问题导致close,,, 另外,是mirai...
我这是用windows整合包,机器人现在的情况是不理人,难绷呜呜呜
你说得对,我猜可能是前面mirai有一部分报错信息没截到
我这边是Ubuntu,不理人多重启几次setup就可以了,不过有人知道怎么解决228吗……具体该怎么做啊
总之我搞完了,qq登进去了,换了个qq用IPAD协议
我直接申请另一个号,放弃原先的号了,登上去又掉....
问题描述
新的登录失败类型
238
复现
.
mirai-core 版本
2.14.0
bot-protocol
IPAD
其他组件版本
No response
系统日志
网络日志
No response
补充信息
No response