From 671e17398e90405415dc526ddb06fae7f7e659a2 Mon Sep 17 00:00:00 2001 From: tastybento Date: Wed, 29 May 2019 00:12:33 -0700 Subject: [PATCH] Fix for level setting with different sized islands. https://github.com/BentoBoxWorld/BentoBox/issues/709 --- .../bentobox/level/listeners/IslandTeamListeners.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/world/bentobox/level/listeners/IslandTeamListeners.java b/src/main/java/world/bentobox/level/listeners/IslandTeamListeners.java index 9d51f74..dfe923e 100644 --- a/src/main/java/world/bentobox/level/listeners/IslandTeamListeners.java +++ b/src/main/java/world/bentobox/level/listeners/IslandTeamListeners.java @@ -39,6 +39,8 @@ public class IslandTeamListeners implements Listener { @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) public void onNewIsland(IslandCreatedEvent e) { + // Clear the island setting + addon.setInitialIslandLevel(e.getIsland(), 0L); if (e.getIsland().getOwner() != null && e.getIsland().getWorld() != null) { cil.putIfAbsent(e.getIsland(), new CalcIslandLevel(addon, e.getIsland(), () -> zeroLevel(e.getIsland()))); } @@ -46,6 +48,8 @@ public class IslandTeamListeners implements Listener { @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) public void onNewIsland(IslandResettedEvent e) { + // Clear the island setting + addon.setInitialIslandLevel(e.getIsland(), 0L); if (e.getIsland().getOwner() != null && e.getIsland().getWorld() != null) { cil.putIfAbsent(e.getIsland(), new CalcIslandLevel(addon, e.getIsland(), () -> zeroLevel(e.getIsland()))); } @@ -95,7 +99,8 @@ public class IslandTeamListeners implements Listener { private void zeroLevel(Island island) { if (cil.containsKey(island)) { - addon.setInitialIslandLevel(island, cil.get(island).getResult().getLevel()); + long level = cil.get(island).getResult().getLevel(); + addon.setInitialIslandLevel(island, level); cil.remove(island); } }