Fix Signportals not going anywhere

This commit is contained in:
Eric Stokes 2011-09-28 19:34:00 -06:00
parent f0ae8cbb8e
commit ea6e94d99d
2 changed files with 16 additions and 13 deletions

View File

@ -380,7 +380,9 @@ public class MVWorld {
this.setMonsters(value);
} else if (name.equalsIgnoreCase("memory") || name.equalsIgnoreCase("spawnmemory")) {
this.setSpawnInMemory(value);
} else if (name.equalsIgnoreCase("weather") || name.equalsIgnoreCase("storm")) {
} else if (name.equalsIgnoreCase("hunger")) {
this.setHunger(value);
}else if (name.equalsIgnoreCase("weather") || name.equalsIgnoreCase("storm")) {
this.setEnableWeather(value);
} else {
return false;

View File

@ -129,6 +129,10 @@ public class MVPlayerListener extends PlayerListener {
if (event.isCancelled()) {
return;
}
// Handle the Players GameMode setting for the new world.
if (this.plugin.getConfig().getBoolean("enforcegamemodes", true)) {
this.handleGameMode(event.getPlayer(), event.getTo().getWorld());
}
MVWorld fromWorld = this.worldManager.getMVWorld(event.getFrom().getWorld().getName());
MVWorld toWorld = this.worldManager.getMVWorld(event.getTo().getWorld().getName());
event.setCancelled(checkWorldPermissions(fromWorld, toWorld, event.getPlayer()));
@ -145,9 +149,14 @@ public class MVPlayerListener extends PlayerListener {
@Override
public void onPlayerPortal(PlayerPortalEvent event) {
if (event.isCancelled() || event.getTo() == null || event.getFrom() == null) {
return;
}
// Handle the Players GameMode setting for the new world.
if (this.plugin.getConfig().getBoolean("enforcegamemodes", true)) {
this.handleGameMode(event.getPlayer(), event.getTo().getWorld());
}
MVWorld fromWorld = this.worldManager.getMVWorld(event.getFrom().getWorld().getName());
MVWorld toWorld = this.worldManager.getMVWorld(event.getTo().getWorld().getName());
event.setCancelled(checkWorldPermissions(fromWorld, toWorld, event.getPlayer()));
@ -171,27 +180,19 @@ public class MVPlayerListener extends PlayerListener {
player.sendMessage("You don't have access to go here...");
return true;
}
} else {
// The toworld is not handled by MV, we don't care about payments
return false;
}
if (fromWorld != null) {
if (toWorld == null) {
return true;
}
if (fromWorld.getWorldBlacklist().contains(toWorld.getName())) {
player.sendMessage("You don't have access to go to " + toWorld.getColoredWorldString() + " from " + fromWorld.getColoredWorldString());
return true;
}
}
if (toWorld == null) {
// The toworld is not handled by MV, we don't care about payments
return false;
}
// Only check payments if it's a different world:
if (!toWorld.equals(fromWorld)) {
// Handle the Players GameMode setting for the new world.
if (this.plugin.getConfig().getBoolean("enforcegamemodes", true)) {
this.handleGameMode(player, toWorld);
}
// If the player does not have to pay, return now.
if (toWorld.isExempt(player)) {
return false;