From eacce487ed37ceb8d031408c172cafced646773a Mon Sep 17 00:00:00 2001 From: Wizjany Date: Thu, 11 Aug 2011 22:52:01 -0400 Subject: [PATCH] Ignore NPE onCreatureSpawn and attempt to get more information about it instead. --- .../sk89q/worldguard/bukkit/WorldGuardEntityListener.java | 6 ++++-- .../sk89q/worldguard/protection/GlobalRegionManager.java | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java index 28fb4581..3b0b1a15 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardEntityListener.java @@ -628,6 +628,8 @@ public void onCreatureSpawn(CreatureSpawnEvent event) { if (wcfg.useRegions) { Vector pt = toVector(eventLoc); RegionManager mgr = plugin.getGlobalRegionManager().get(eventLoc.getWorld()); + // @TODO get victims' stacktraces and find out why it's null anyway + if (mgr == null) return; ApplicableRegionSet set = mgr.getApplicableRegions(pt); if (!set.allows(DefaultFlag.MOB_SPAWNING)) { @@ -635,8 +637,8 @@ public void onCreatureSpawn(CreatureSpawnEvent event) { return; } - Set blockTypes = set.getFlag(DefaultFlag.DENY_SPAWN); - if (blockTypes != null && blockTypes.contains(creaType)) { + Set creatureTypes = set.getFlag(DefaultFlag.DENY_SPAWN); + if (creatureTypes != null && creatureTypes.contains(creaType)) { event.setCancelled(true); return; } diff --git a/src/main/java/com/sk89q/worldguard/protection/GlobalRegionManager.java b/src/main/java/com/sk89q/worldguard/protection/GlobalRegionManager.java index e242eb96..18d34f3c 100644 --- a/src/main/java/com/sk89q/worldguard/protection/GlobalRegionManager.java +++ b/src/main/java/com/sk89q/worldguard/protection/GlobalRegionManager.java @@ -150,9 +150,14 @@ public RegionManager load(World world) { return manager; } catch (FileNotFoundException e) { + logger.warning("WorldGuard: Region file for world \"" + + name + "\" missing or inaccessible."); } catch (IOException e) { logger.warning("WorldGuard: Failed to load regions from file " + file.getAbsolutePath() + " : " + e.getMessage()); + } catch (Exception e) { + logger.warning("WorldGuard: Error loading regions for world \"" + + name + "\":" + e.getMessage()); } // @TODO: THIS CREATES PROBLEMS!!