From 8fa551ff7cd50406fccbacf2b9a8467be8f5cb85 Mon Sep 17 00:00:00 2001 From: tastybento Date: Sat, 11 Jan 2020 09:38:45 -0800 Subject: [PATCH] Bug fixes Fixes https://github.com/BentoBoxWorld/Limits/issues/62 --- .../java/world/bentobox/limits/commands/LimitPanel.java | 2 +- .../bentobox/limits/listeners/BlockLimitsListener.java | 2 ++ .../bentobox/limits/listeners/EntityLimitListener.java | 6 +++++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/world/bentobox/limits/commands/LimitPanel.java b/src/main/java/world/bentobox/limits/commands/LimitPanel.java index f210db3..785b874 100644 --- a/src/main/java/world/bentobox/limits/commands/LimitPanel.java +++ b/src/main/java/world/bentobox/limits/commands/LimitPanel.java @@ -107,7 +107,7 @@ public class LimitPanel { // Entity limits Map map = addon.getSettings().getLimits(); // Merge in any permission-based limits - ibc.getEntityLimits().forEach(map::put); + if (ibc != null) ibc.getEntityLimits().forEach(map::put); map.forEach((k,v) -> { PanelItemBuilder pib = new PanelItemBuilder(); pib.name(Util.prettifyText(k.toString())); diff --git a/src/main/java/world/bentobox/limits/listeners/BlockLimitsListener.java b/src/main/java/world/bentobox/limits/listeners/BlockLimitsListener.java index fbce953..5d6e462 100644 --- a/src/main/java/world/bentobox/limits/listeners/BlockLimitsListener.java +++ b/src/main/java/world/bentobox/limits/listeners/BlockLimitsListener.java @@ -36,6 +36,7 @@ import org.bukkit.event.block.LeavesDecayEvent; import org.bukkit.event.entity.EntityChangeBlockEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.player.PlayerInteractEvent; +import org.eclipse.jdt.annotation.Nullable; import world.bentobox.bentobox.api.events.island.IslandEvent.IslandDeleteEvent; import world.bentobox.bentobox.api.localization.TextVariables; @@ -436,6 +437,7 @@ public class BlockLimitsListener implements Listener { * @param islandId - island unique id * @return island block count or null if there is none yet */ + @Nullable public IslandBlockCount getIsland(String islandId) { return islandCountMap.get(islandId); } diff --git a/src/main/java/world/bentobox/limits/listeners/EntityLimitListener.java b/src/main/java/world/bentobox/limits/listeners/EntityLimitListener.java index 40037b7..cc6baf2 100644 --- a/src/main/java/world/bentobox/limits/listeners/EntityLimitListener.java +++ b/src/main/java/world/bentobox/limits/listeners/EntityLimitListener.java @@ -168,11 +168,15 @@ public class EntityLimitListener implements Listener { .filter(e -> e.getType().equals(ent.getType())) .filter(e -> island.inIslandSpace(e.getLocation())).count(); // Check island settings first - int limitAmount = addon.getBlockLimitListener().getIsland(island.getUniqueId()).getEntityLimit(ent.getType()); + int limitAmount = -1; + if (addon.getBlockLimitListener().getIsland(island.getUniqueId()) != null) { + limitAmount = addon.getBlockLimitListener().getIsland(island.getUniqueId()).getEntityLimit(ent.getType()); + } // If no island settings then try global settings if (limitAmount < 0 && addon.getSettings().getLimits().containsKey(ent.getType())) { limitAmount = addon.getSettings().getLimits().get(ent.getType()); } + if (limitAmount == -1) return false; return count >= limitAmount; } }