Move GameMode check to onPlayerChangeWorld, fix difficulty case settings

This commit is contained in:
Eric Stokes 2011-10-03 17:43:57 -06:00
parent c566ead9ef
commit 091c5a9621
3 changed files with 10 additions and 18 deletions

View File

@ -743,7 +743,7 @@ public class MVWorld {
public boolean setDifficulty(String difficulty) { public boolean setDifficulty(String difficulty) {
try { try {
World.Difficulty worlddiff = World.Difficulty.valueOf(difficulty); World.Difficulty worlddiff = World.Difficulty.valueOf(difficulty.toUpperCase());
this.getCBWorld().setDifficulty(worlddiff); this.getCBWorld().setDifficulty(worlddiff);
return true; return true;
} catch (Exception e) { } catch (Exception e) {

View File

@ -204,6 +204,7 @@ public class MultiverseCore extends JavaPlugin implements LoggablePlugin {
pm.registerEvent(Event.Type.PLAYER_RESPAWN, this.playerListener, Priority.Low, this); // Let plugins which specialize in (re)spawning carry more weight. pm.registerEvent(Event.Type.PLAYER_RESPAWN, this.playerListener, Priority.Low, this); // Let plugins which specialize in (re)spawning carry more weight.
pm.registerEvent(Event.Type.PLAYER_CHAT, this.playerListener, Priority.Normal, this); // To prepend the world name pm.registerEvent(Event.Type.PLAYER_CHAT, this.playerListener, Priority.Normal, this); // To prepend the world name
pm.registerEvent(Event.Type.PLAYER_PORTAL, this.playerListener, Priority.Monitor, this); // To switch gamemode pm.registerEvent(Event.Type.PLAYER_PORTAL, this.playerListener, Priority.Monitor, this); // To switch gamemode
pm.registerEvent(Event.Type.PLAYER_CHANGED_WORLD, this.playerListener, Priority.Monitor, this); // To switch gamemode
pm.registerEvent(Event.Type.ENTITY_REGAIN_HEALTH, this.entityListener, Priority.Normal, this); pm.registerEvent(Event.Type.ENTITY_REGAIN_HEALTH, this.entityListener, Priority.Normal, this);
pm.registerEvent(Event.Type.ENTITY_DAMAGE, this.entityListener, Priority.Normal, this); // To Allow/Disallow fake PVP pm.registerEvent(Event.Type.ENTITY_DAMAGE, this.entityListener, Priority.Normal, this); // To Allow/Disallow fake PVP

View File

@ -63,10 +63,6 @@ public class MVPlayerListener extends PlayerListener {
} }
if (event.isBedSpawn() && this.plugin.getConfig().getBoolean("bedrespawn", true)) { if (event.isBedSpawn() && this.plugin.getConfig().getBoolean("bedrespawn", true)) {
// Handle the Players GameMode setting for the new world.
if (this.plugin.getConfig().getBoolean("enforcegamemodes", true)) {
this.handleGameMode(event.getPlayer(), event.getRespawnLocation().getWorld());
}
this.plugin.log(Level.FINE, "Spawning " + event.getPlayer().getName() + " at their bed"); this.plugin.log(Level.FINE, "Spawning " + event.getPlayer().getName() + " at their bed");
return; return;
} }
@ -90,11 +86,6 @@ public class MVPlayerListener extends PlayerListener {
MVRespawnEvent respawnEvent = new MVRespawnEvent(respawnLocation, event.getPlayer(), "compatability"); MVRespawnEvent respawnEvent = new MVRespawnEvent(respawnLocation, event.getPlayer(), "compatability");
this.plugin.getServer().getPluginManager().callEvent(respawnEvent); this.plugin.getServer().getPluginManager().callEvent(respawnEvent);
event.setRespawnLocation(respawnEvent.getPlayersRespawnLocation()); event.setRespawnLocation(respawnEvent.getPlayersRespawnLocation());
// Handle the Players GameMode setting for the new world.
if (this.plugin.getConfig().getBoolean("enforcegamemodes", true)) {
this.handleGameMode(event.getPlayer(), respawnEvent.getPlayersRespawnLocation().getWorld());
}
} }
private Location getMostAccurateRespawnLocation(World w) { private Location getMostAccurateRespawnLocation(World w) {
@ -119,6 +110,14 @@ public class MVPlayerListener extends PlayerListener {
} }
} }
@Override
public void onPlayerChangedWorld(PlayerChangedWorldEvent event) {
// Handle the Players GameMode setting for the new world.
if (this.plugin.getConfig().getBoolean("enforcegamemodes", true)) {
this.handleGameMode(event.getPlayer(), event.getPlayer().getWorld());
}
}
@Override @Override
public void onPlayerQuit(PlayerQuitEvent event) { public void onPlayerQuit(PlayerQuitEvent event) {
this.plugin.removePlayerSession(event.getPlayer()); this.plugin.removePlayerSession(event.getPlayer());
@ -129,10 +128,6 @@ public class MVPlayerListener extends PlayerListener {
if (event.isCancelled()) { if (event.isCancelled()) {
return; 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 fromWorld = this.worldManager.getMVWorld(event.getFrom().getWorld().getName());
MVWorld toWorld = this.worldManager.getMVWorld(event.getTo().getWorld().getName()); MVWorld toWorld = this.worldManager.getMVWorld(event.getTo().getWorld().getName());
event.setCancelled(checkWorldPermissions(fromWorld, toWorld, event.getPlayer())); event.setCancelled(checkWorldPermissions(fromWorld, toWorld, event.getPlayer()));
@ -144,10 +139,6 @@ public class MVPlayerListener extends PlayerListener {
if (event.isCancelled() || event.getTo() == null || event.getFrom() == null) { if (event.isCancelled() || event.getTo() == null || event.getFrom() == null) {
return; 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 fromWorld = this.worldManager.getMVWorld(event.getFrom().getWorld().getName());
MVWorld toWorld = this.worldManager.getMVWorld(event.getTo().getWorld().getName()); MVWorld toWorld = this.worldManager.getMVWorld(event.getTo().getWorld().getName());
event.setCancelled(checkWorldPermissions(fromWorld, toWorld, event.getPlayer())); event.setCancelled(checkWorldPermissions(fromWorld, toWorld, event.getPlayer()));