From e85d294d12018a183c25afaab5525e9eb5d3c6c6 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 26 Dec 2024 11:56:23 -0500 Subject: [PATCH] [+] Version cache --- .../aqua/sega/chusan/Chu3VersionHelper.kt | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/main/java/icu/samnyan/aqua/sega/chusan/Chu3VersionHelper.kt diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/Chu3VersionHelper.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/Chu3VersionHelper.kt new file mode 100644 index 00000000..8feb52cf --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/Chu3VersionHelper.kt @@ -0,0 +1,28 @@ +package icu.samnyan.aqua.sega.chusan + +import ext.logger +import icu.samnyan.aqua.sega.chusan.model.Chu3Repos +import org.springframework.stereotype.Component + + +@Component +class Chu3VersionHelper(val db: Chu3Repos) { + val log = logger() + + // Cache of + val cache: MutableMap = mutableMapOf() + + // Obtain the cabinet's most recent version + operator fun get(clientId: String): String { + // Try to find the version in the cache + cache[clientId]?.let { return it } + + // Not found, check the most recent user + return db.userData.findTopByLastClientIdOrderByLastPlayDateDesc(clientId)?.lastDataVersion + ?.also { cache[clientId] = it } ?: "2.25.13".also { log.warn("No version found for $clientId") } + } + + operator fun set(clientId: String, version: String) { + cache[clientId] = version + } +} \ No newline at end of file