diff --git a/src/main/java/com/onarandombox/MultiverseCore/event/MVPlayerTouchedPortalEvent.java b/src/main/java/com/onarandombox/MultiverseCore/event/MVPlayerTouchedPortalEvent.java index a4772cb0..56ec89e3 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/event/MVPlayerTouchedPortalEvent.java +++ b/src/main/java/com/onarandombox/MultiverseCore/event/MVPlayerTouchedPortalEvent.java @@ -20,6 +20,7 @@ public class MVPlayerTouchedPortalEvent extends Event implements Cancellable { private Player p; private Location l; private boolean isCancelled; + private boolean canUse = true; public MVPlayerTouchedPortalEvent(Player p, Location l) { this.p = p; @@ -60,6 +61,26 @@ public class MVPlayerTouchedPortalEvent extends Event implements Cancellable { return this.p; } + /** + * Gets whether or not the player in this event can use this portal. + * + * @return True if the player can use this portal. + */ + public boolean canUseThisPortal() { + return this.canUse; + } + + /** + * Sets whether or not the player in this event can use this portal. + *

+ * Setting this to false will cause the player to bounce back! + * + * @param canUse Whether or not the user can go through this portal. + */ + public void setCanUseThisPortal(boolean canUse) { + this.canUse = canUse; + } + @Override public boolean isCancelled() { return this.isCancelled; diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVEntityListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVEntityListener.java index e4f060d9..e7413580 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVEntityListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVEntityListener.java @@ -113,13 +113,13 @@ public class MVEntityListener implements Listener { /** * Animal Handling */ - if (event.getEntity() instanceof Animals || event.getEntity() instanceof Squid) { + if (!event.isCancelled() && (event.getEntity() instanceof Animals || event.getEntity() instanceof Squid)) { event.setCancelled(shouldWeKillThisCreature(mvworld.getAnimalList(), mvworld.canAnimalsSpawn(), type.getName().toUpperCase())); } /** * Monster Handling */ - if (event.getEntity() instanceof Monster || event.getEntity() instanceof Ghast || event.getEntity() instanceof Slime) { + if (!event.isCancelled() && (event.getEntity() instanceof Monster || event.getEntity() instanceof Ghast || event.getEntity() instanceof Slime)) { event.setCancelled(shouldWeKillThisCreature(mvworld.getMonsterList(), mvworld.canMonstersSpawn(), type.getName().toUpperCase())); } } diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java index e83fe783..8b5b3595 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java @@ -238,7 +238,6 @@ public class MVPlayerListener implements Listener { */ @EventHandler(priority = EventPriority.LOWEST) public void playerPortalCheck(PlayerPortalEvent event) { - this.plugin.log(Level.FINE, "CALLING CORE-ADJUST!!!"); if (event.isCancelled() || event.getFrom() == null) { return; } diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/WorldManager.java b/src/main/java/com/onarandombox/MultiverseCore/utils/WorldManager.java index 388a694d..8c6bf4a5 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/WorldManager.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/WorldManager.java @@ -69,7 +69,7 @@ public class WorldManager implements MVWorldManager { return s.equalsIgnoreCase("bukkit.yml"); } }); - if (files.length == 1) { + if (files != null && files.length == 1) { FileConfiguration bukkitConfig = YamlConfiguration.loadConfiguration(files[0]); if (bukkitConfig.isConfigurationSection("worlds")) { Set keys = bukkitConfig.getConfigurationSection("worlds").getKeys(false); @@ -77,6 +77,8 @@ public class WorldManager implements MVWorldManager { defaultGens.put(key, bukkitConfig.getString("worlds." + key + ".generator", "")); } } + } else { + this.plugin.log(Level.WARNING, "Could not read 'bukkit.yml'. Any Default worldgenerators will not be loaded!"); } }