From 4215b3953941649d9f36a4b4c0cc7fd257ce4348 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Sat, 20 Apr 2024 09:37:34 +0900 Subject: [PATCH] [F] Try to fix wacca uint overflow --- src/main/java/ext/Ext.kt | 1 + src/main/java/icu/samnyan/aqua/sega/wacca/WaccaServer.kt | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/ext/Ext.kt b/src/main/java/ext/Ext.kt index 7f0d83d2..b84f9844 100644 --- a/src/main/java/ext/Ext.kt +++ b/src/main/java/ext/Ext.kt @@ -134,6 +134,7 @@ fun Any.long() = when (this) { is String -> toLong() else -> 400 - "Invalid number: $this" } +fun Any.uint32() = long() and 0xFFFFFFFF fun Any.int() = long().toInt() operator fun Bool.unaryPlus() = if (this) 1 else 0 diff --git a/src/main/java/icu/samnyan/aqua/sega/wacca/WaccaServer.kt b/src/main/java/icu/samnyan/aqua/sega/wacca/WaccaServer.kt index ef5a26e1..6af2d4af 100644 --- a/src/main/java/icu/samnyan/aqua/sega/wacca/WaccaServer.kt +++ b/src/main/java/icu/samnyan/aqua/sega/wacca/WaccaServer.kt @@ -5,7 +5,6 @@ import icu.samnyan.aqua.net.db.AquaGameOptions import icu.samnyan.aqua.net.games.wacca.Wacca import icu.samnyan.aqua.net.utils.ApiException import icu.samnyan.aqua.sega.general.dao.CardRepository -import icu.samnyan.aqua.sega.wacca.WaccaDifficulty.INFERNO import icu.samnyan.aqua.sega.wacca.WaccaItemType.* import icu.samnyan.aqua.sega.wacca.WaccaItemType.NOTE_COLOR import icu.samnyan.aqua.sega.wacca.WaccaItemType.NOTE_SOUND @@ -47,7 +46,7 @@ class WaccaServer { init { init() } // DSL Functions - fun user(uid: Any) = if (uid == 0) null else rp.user.findByCardExtId(uid.long()) + fun user(uid: Any) = if (uid == 0) null else rp.user.findByCardExtId(uid.uint32()) fun options(u: WaccaUser?) = u?.let { rp.option.findByUser(u).associate { it.optId to it.value } } ?: emptyMap() fun itmGrp(u: WaccaUser) = rp.item.findByUser(u).groupBy { it.type }.mapValues { it.value.associateBy { it.itemId } } operator fun Map.get(type: WaccaOptionType) = getOrDefault(type.id, type.default) @@ -137,7 +136,7 @@ fun WaccaServer.init() { if (user(uid) != null) 404 - "User already exists" val u = rp.user.save(WaccaUser().apply { - card = cardRepo.findByExtId(uid.long())() ?: (404 - "Card not found") + card = cardRepo.findByExtId(uid.uint32())() ?: (404 - "Card not found") userName = name.toString() })