diff --git a/changelog.md b/changelog.md index 64bc053..5ad09fd 100644 --- a/changelog.md +++ b/changelog.md @@ -21,6 +21,7 @@ These changes will (most likely) be included in the next version. - The reload command now also reloads global settings, e.g. the global messenger prefix. - Armor stands can now be placed in arenas and lobbies. - The new command `/ma ready` (`/ma rdy` for short) can be used as an alternative to the iron block for readying up. +- Total experience is now correctly stored, reset, and restored on arena join/leave. This fixes a potential bug where total experience could increase in the arena, but levels and progress would still get reset at arena end. Thanks to: - Sait for adding the /ma ready command diff --git a/src/main/java/com/garbagemule/MobArena/steps/SetExperience.java b/src/main/java/com/garbagemule/MobArena/steps/SetExperience.java index 6649afb..cf98bbe 100644 --- a/src/main/java/com/garbagemule/MobArena/steps/SetExperience.java +++ b/src/main/java/com/garbagemule/MobArena/steps/SetExperience.java @@ -3,6 +3,7 @@ package com.garbagemule.MobArena.steps; import org.bukkit.entity.Player; class SetExperience extends PlayerStep { + private int total; private int level; private float exp; @@ -12,15 +13,18 @@ class SetExperience extends PlayerStep { @Override public void run() { + total = player.getTotalExperience(); level = player.getLevel(); exp = player.getExp(); player.setExp(0); player.setLevel(0); + player.setTotalExperience(0); } @Override public void undo() { + player.setTotalExperience(total); player.setLevel(level); player.setExp(exp); }