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