From 39e294eaf6040fa1f198ca242d35cfea3fcae08b Mon Sep 17 00:00:00 2001 From: tastybento Date: Sat, 4 Jul 2020 15:46:36 -0700 Subject: [PATCH] Fixes bug where top ten was cleared after reloading. https://github.com/BentoBoxWorld/Level/issues/163 --- src/main/java/world/bentobox/level/Level.java | 12 ++++++++++-- .../java/world/bentobox/level/LevelsManager.java | 3 ++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/world/bentobox/level/Level.java b/src/main/java/world/bentobox/level/Level.java index 63bb2f2..7b052fd 100644 --- a/src/main/java/world/bentobox/level/Level.java +++ b/src/main/java/world/bentobox/level/Level.java @@ -8,12 +8,15 @@ import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import world.bentobox.bentobox.api.addons.Addon; import world.bentobox.bentobox.api.addons.GameModeAddon; import world.bentobox.bentobox.api.configuration.Config; +import world.bentobox.bentobox.api.events.BentoBoxReadyEvent; import world.bentobox.bentobox.api.user.User; import world.bentobox.bentobox.database.objects.Island; import world.bentobox.level.calculators.Pipeliner; @@ -35,7 +38,7 @@ import world.bentobox.level.requests.TopTenRequestHandler; * @author tastybento * */ -public class Level extends Addon { +public class Level extends Addon implements Listener { // Settings private ConfigSettings settings; @@ -71,10 +74,10 @@ public class Level extends Addon { pipeliner = new Pipeliner(this); // Start Manager manager = new LevelsManager(this); - manager.loadTopTens(); // Register listeners this.registerListener(new IslandActivitiesListeners(this)); this.registerListener(new JoinLeaveListener(this)); + this.registerListener(this); // Register commands for GameModes getPlugin().getAddonsManager().getGameModeAddons().stream() .filter(gm -> !settings.getGameModes().contains(gm.getDescription().getName())) @@ -94,6 +97,11 @@ public class Level extends Addon { } + @EventHandler + public void onBentoBoxReady(BentoBoxReadyEvent e) { + manager.loadTopTens(); + } + private void registerPlaceholders(GameModeAddon gm) { if (getPlugin().getPlaceholdersManager() == null) return; // Island Level diff --git a/src/main/java/world/bentobox/level/LevelsManager.java b/src/main/java/world/bentobox/level/LevelsManager.java index 665c2b3..829d628 100644 --- a/src/main/java/world/bentobox/level/LevelsManager.java +++ b/src/main/java/world/bentobox/level/LevelsManager.java @@ -355,7 +355,7 @@ public class LevelsManager { World world = Bukkit.getWorld(tt.getUniqueId()); if (world != null) { topTenLists.put(world, tt); - addon.log("Loaded TopTen for " + world.getName()); + addon.log("Loaded top ten for " + world.getName()); // Update based on user data // Remove any non island owners tt.getTopTen().keySet().removeIf(u -> !addon.getIslands().isOwner(world, u)); @@ -434,6 +434,7 @@ public class LevelsManager { return ld.getLevel(world); } } + addon.getPlugin().logDebug("Returning 0L"); return 0L; }