diff --git a/plugin/src/main/java/com/alttd/cometskyblock/island/gui/UpgradesGUI.java b/plugin/src/main/java/com/alttd/cometskyblock/island/gui/UpgradesGUI.java
index 12121a3..97d43c4 100644
--- a/plugin/src/main/java/com/alttd/cometskyblock/island/gui/UpgradesGUI.java
+++ b/plugin/src/main/java/com/alttd/cometskyblock/island/gui/UpgradesGUI.java
@@ -53,6 +53,7 @@ public class UpgradesGUI extends GUIInventory {
}
island.cobblegenLevel(island.cobblegenLevel() + 1);
player.sendRichMessage(islandMessages.cobbeGen().upgraded(), Placeholder.parsed("level", "" + island.cobblegenLevel() + ""));
+ player.closeInventory();
decorate(player);
}));
// Level
@@ -62,11 +63,13 @@ public class UpgradesGUI extends GUIInventory {
"" + Experience.getExpToNextIslandLevel(island.level()) + " experience required to level up!"
),event -> {
int xp = Experience.getExpToNextIslandLevel(island.level());
- if (player.getTotalExperience() < xp) {
+ if (player.getLevel() >= 0 && player.getTotalExperience() < xp) {
player.sendRichMessage(islandMessages.level().requiredXp(), Placeholder.parsed("requiredxp", "" + xp + ""));
return;
}
- Experience.changeExp(player, - xp);
+ int totalExperience = player.getTotalExperience();
+ player.setTotalExperience(totalExperience - xp);
+ player.setExperienceLevelAndProgress(totalExperience - xp);
island.level(island.level() + 1);
player.sendRichMessage(islandMessages.level().upgraded());
decorate(player);