From 98135db0e3950c06c91df952ad53da660ec951b1 Mon Sep 17 00:00:00 2001 From: nea Date: Thu, 22 Dec 2022 21:40:18 +0100 Subject: PetLeveling: return stub exp ladder on misformed repo data --- .../moulberry/notenoughupdates/util/PetLeveling.kt | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/io/github/moulberry/notenoughupdates/util/PetLeveling.kt b/src/main/kotlin/io/github/moulberry/notenoughupdates/util/PetLeveling.kt index 0a9e37b9..56f84d54 100644 --- a/src/main/kotlin/io/github/moulberry/notenoughupdates/util/PetLeveling.kt +++ b/src/main/kotlin/io/github/moulberry/notenoughupdates/util/PetLeveling.kt @@ -91,17 +91,22 @@ object PetLeveling { } } + val stubExpLadder by lazy { + Utils.showOutdatedRepoNotification() + ExpLadder(listOf(1, 1)) + } + internal fun getPetLevelingForPet0(petIdWithoutRarity: String, rarity: Rarity): ExpLadder { - val petConstants = this.petConstants ?: Constants.PETS - var levels = petConstants["pet_levels"].asJsonArray.map { it.asLong }.toMutableList() - val customLeveling = petConstants["custom_pet_leveling"].asJsonObject[petIdWithoutRarity] - val offset = petConstants["pet_rarity_offset"].asJsonObject[rarity.name].asInt + val petConstants = this.petConstants ?: Constants.PETS ?: return stubExpLadder + var levels = petConstants["pet_levels"]?.asJsonArray?.map { it.asLong }?.toMutableList() ?: return stubExpLadder + val customLeveling = petConstants["custom_pet_leveling"]?.asJsonObject?.get(petIdWithoutRarity) + val offset = petConstants["pet_rarity_offset"]?.asJsonObject?.get(rarity.name)?.asInt ?: return stubExpLadder var maxLevel = 100 if (customLeveling is JsonObject) { - val customLevels by lazy { customLeveling["pet_levels"].asJsonArray.map { it.asLong } } + val customLevels by lazy { customLeveling["pet_levels"]?.asJsonArray?.map { it.asLong } } when (customLeveling["type"]?.asInt ?: 0) { - 1 -> levels.addAll(customLevels) - 2 -> levels = customLevels.toMutableList() + 1 -> levels.addAll(customLevels ?: return stubExpLadder) + 2 -> levels = customLevels?.toMutableList() ?: return stubExpLadder } maxLevel = customLeveling["max_level"]?.asInt ?: maxLevel } -- cgit