diff --git a/CHANGELOG.md b/CHANGELOG.md index 9eb033f..330babd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,5 +2,6 @@ - ### Fixed: - Fixed emi error log +- Fixed resetCurrentXp being overridden by skill state copy on respawn causing xp duplication ### Changed: - Tweaked AdditionZ fishing experience compat \ No newline at end of file diff --git a/src/main/java/net/levelz/init/EventInit.java b/src/main/java/net/levelz/init/EventInit.java index 31b1909..3213d4c 100644 --- a/src/main/java/net/levelz/init/EventInit.java +++ b/src/main/java/net/levelz/init/EventInit.java @@ -51,11 +51,6 @@ public static void init() { ServerPlayerEvents.AFTER_RESPAWN.register((oldPlayer, newPlayer, alive) -> { LevelManager newLevelManager = ((LevelManagerAccess) newPlayer).getLevelManager(); - if (ConfigInit.CONFIG.resetCurrentXp) { - newLevelManager.setLevelProgress(0); - newLevelManager.setTotalLevelExperience(0); - } - if (ConfigInit.CONFIG.levelRetainPercentage < 100) { LevelManager oldLevelManager = ((LevelManagerAccess) oldPlayer).getLevelManager(); float levelRetainPercentageFloat = ConfigInit.CONFIG.levelRetainPercentage / 100; @@ -103,6 +98,11 @@ public static void init() { } else { PacketHelper.updatePlayerSkills(newPlayer, oldPlayer); + if (ConfigInit.CONFIG.resetCurrentXp) { + newLevelManager.setLevelProgress(0); + newLevelManager.setTotalLevelExperience(0); + } + PacketHelper.updateLevels(newPlayer); for (Skill skill : LevelManager.SKILLS.values()) { LevelHelper.updateSkill(newPlayer, skill);