From 36004b3fc33e81b7bc680f246b557eafc055e757 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Fri, 31 Oct 2025 00:47:21 -0700 Subject: [PATCH] Fix level 8+ skill not being upgradeable --- .../emu/nebula/data/resources/CharacterSkillUpgradeDef.java | 6 ++++++ src/main/java/emu/nebula/util/JsonUtils.java | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/emu/nebula/data/resources/CharacterSkillUpgradeDef.java b/src/main/java/emu/nebula/data/resources/CharacterSkillUpgradeDef.java index 4eba494..fe7a209 100644 --- a/src/main/java/emu/nebula/data/resources/CharacterSkillUpgradeDef.java +++ b/src/main/java/emu/nebula/data/resources/CharacterSkillUpgradeDef.java @@ -2,6 +2,7 @@ package emu.nebula.data.resources; import emu.nebula.GameConstants; import emu.nebula.data.BaseDef; +import emu.nebula.data.GameData; import emu.nebula.data.ResourceType; import emu.nebula.game.inventory.ItemParamMap; @@ -52,5 +53,10 @@ public class CharacterSkillUpgradeDef extends BaseDef { } this.upgradeId = (this.Group * 100) + this.AdvanceNum; + + // Fix for duplicate skill upgrade ids + while (GameData.getCharacterSkillUpgradeDataTable().containsKey(this.getId())) { + this.upgradeId += 1; + } } } diff --git a/src/main/java/emu/nebula/util/JsonUtils.java b/src/main/java/emu/nebula/util/JsonUtils.java index f9c1309..1d03c08 100644 --- a/src/main/java/emu/nebula/util/JsonUtils.java +++ b/src/main/java/emu/nebula/util/JsonUtils.java @@ -2,6 +2,7 @@ package emu.nebula.util; import java.io.*; import java.nio.charset.StandardCharsets; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -98,7 +99,7 @@ public class JsonUtils { } public static Map loadToMap(InputStreamReader fileReader, Class keyType, Class valueType) throws IOException { - return gson.fromJson(fileReader, TypeToken.getParameterized(Map.class, keyType, valueType).getType()); + return gson.fromJson(fileReader, TypeToken.getParameterized(LinkedHashMap.class, keyType, valueType).getType()); } public static Map loadToMap(String filename, Class keyType, Class valueType) throws IOException {