From 21bcedcb1715ebb2829e0105483d2027be9df3b3 Mon Sep 17 00:00:00 2001 From: dongRogen <3601778801@qq.com> Date: Thu, 4 Aug 2022 11:40:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=20=E6=A3=80=E6=9F=A5mod?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=A4=84=E6=94=B9=E7=94=A8=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/top/jie65535/jcf/SubscribeHandler.kt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/top/jie65535/jcf/SubscribeHandler.kt b/src/main/kotlin/top/jie65535/jcf/SubscribeHandler.kt index f753020..980df73 100644 --- a/src/main/kotlin/top/jie65535/jcf/SubscribeHandler.kt +++ b/src/main/kotlin/top/jie65535/jcf/SubscribeHandler.kt @@ -123,14 +123,22 @@ class SubscribeHandler( private suspend fun checkUpdate(init: Boolean = false) = flow { val oldSet = PluginData.modsLastFile if (oldSet.isNotEmpty()) { + val fetchMods = service.getMods(oldSet.keys.toIntArray()) + .asSequence() + .map { it.id to it } + .toMap() for ((mod, old) in oldSet) { try { - val info = service.getMod(mod) - logger.info("模组更新【${info.name}】") - MOD_INFO_CACHE[mod] = info - val last = info.latestFilesIndexes[0].fileId + val new = fetchMods[mod] + if (new == null) { + emit(mod to -1) + continue + } + MOD_INFO_CACHE[mod] = new + val last = new.latestFilesIndexes[0].fileId if (old != last || init) { emit(mod to last) + logger.info("模组更新【${new.name}】") } } catch (e: Exception) { logger.warning("err msg: ${e.message}")