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!!