java对MessageSource序列化怎么操作,用那个类
1
1130600015 发布的帖子
-
RE: 上传群文件回执问题
Bot bot = BotFactory.INSTANCE.newBot(new Long(account), password, new BotConfiguration() {{ setProtocol(MiraiProtocol.ANDROID_PAD); String proto = getProtocol().name(); setWorkingDir(new File(workDir)); File dir = new File(workDir); if (!dir.exists()) { dir.mkdirs(); } this.disableContactCache(); setCacheDir(new File("cache")); fileBasedDeviceInfo(account + "-" + proto + "-" + "device.json"); }}); GlobalEventChannel.INSTANCE.subscribeAlways(Event.class, event -> { System.out.println(event.getClass().getSimpleName()); }); bot.login(); Group group = GroupUtil.getDataGroup(); AbsoluteFolder root = group.getFiles().getRoot(); File file = new File("/Users/jiashu/Downloads/1.jpg"); root.uploadNewFile("/1.jpg", ExternalResource.create(file).toAutoCloseable()); //程序运行结果 BotOnlineEvent 2022-12-13 23:46:45 I/Bot 2567327040: Bot login successful. 2022-12-13 23:46:45 V/Net 2567327040: Send: OidbSvc.0x6d6_0(OidbSvc.0x6d6_0) GetMsgSuccess 2022-12-13 23:46:45 I/Net 2567327040: Syncing friend message history: Success. 2022-12-13 23:46:45 V/Net 2567327040: Send: OidbSvc.0x6d9_4(OidbSvc.0x6d9_4) 2022-12-13 23:46:45 V/Net 2567327040: Recv: OidbSvc.0x6d6_0 SendGroupMessageReceipt 2022-12-13 23:46:46 V/Bot 2567327040: Group(701096958) <- [mirai:file:1.jpg, id=/304fe63e-b561-4b14-81d1-583969cbc8ca, internalId=102, size=229529] 2022-12-13 23:46:46 V/Net 2567327040: Recv: OidbSvc.0x6d9_4 2022-12-13 23:46:46.137 INFO 35457 --- [ main] c.zjs.facesignin.FacesigninApplication : Started FacesigninApplication in 3.501 seconds (JVM running for 3.762) ConfigPush 2022-12-13 23:46:47 V/Net 2567327040: Saving bdh session to cache 2022-12-13 23:46:47 V/Net 2567327040: Send: ConfigPushSvc.PushResp(ConfigPushSvc.PushResp) 2022-12-13 23:46:47 V/Net 2567327040: Recv: ConfigPushSvc.PushReq
并没有groupmessageEvent,唯一看到的一个receipt当我去尝试获得这个实例的时候。idea告诉我使用了来自不同模块的 Kotlin 内部声明 ,所以我好像也获得不到这个reciept。代码如下
if (event instanceof GroupMessageProcessor.SendGroupMessageReceipt) -
RE: 上传群文件回执问题
经过不断尝试,发现以下办法可以实现这个需求。
新api无法实现需求public void uploadImage(String dir, String fileName, File image, Group group) { RemoteFile root = group.getFilesRoot(); //idea标注已弃用 RemoteFile remoteDir = root.resolve(dir); if (!remoteDir.exists()) { remoteDir.mkdir(); } RemoteFile remoteFile = remoteDir.resolve(fileName); MessageReceipt<Contact> receipt = remoteFile.uploadAndSend(image); }
目前只能找到废弃的api的办法,也是能实现需求。
但是需要注意的是:- 通过上述代码创建dir,再上传图片没有问题,但是已经存在的dir,通过resolve方法获得到的dir对应的remoteFile上传文件会报错
- 如果要上传到已经存在的文件夹,需要用root对应的remotefile获取到其listFilesa api 通过遍历的方式获取到你想要的remoteFile dir,再进行上传则不会报错。即通过resolve获得到的dir file无法进行文件的上传。
希望作者能尽快完善群文件新api对获取群文件上传消息回执的支持。感谢!