From 97168043ff1879b4bf753df192d5ee6fcf588dff Mon Sep 17 00:00:00 2001 From: Eric Stokes Date: Wed, 14 Sep 2011 20:06:03 -0600 Subject: [PATCH] Fix && should be ||, Allow Creative mode, Set all players in a world to a specific mode when it's changed --- .../java/com/onarandombox/MultiverseCore/MVWorld.java | 11 +++++++++-- .../onarandombox/MultiverseCore/MultiverseCore.java | 4 ++++ .../MultiverseCore/listeners/MVPlayerListener.java | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/onarandombox/MultiverseCore/MVWorld.java b/src/main/java/com/onarandombox/MultiverseCore/MVWorld.java index b2da3690..ceb162e9 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MVWorld.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MVWorld.java @@ -424,11 +424,12 @@ public class MVWorld { } } - if (name.equalsIgnoreCase("gamemode") && name.equalsIgnoreCase("mode")) { + if (name.equalsIgnoreCase("gamemode") || name.equalsIgnoreCase("mode")) { try { - GameMode mode = GameMode.valueOf(value); + GameMode mode = GameMode.valueOf(value.toUpperCase()); return this.setGameMode(mode); } catch (Exception e) { + System.out.print("BLASKNKENFW"); } } @@ -653,9 +654,15 @@ public class MVWorld { } private boolean setGameMode(GameMode mode) { + this.gameMode = mode; config.setProperty("worlds." + this.name + ".gamemode", this.gameMode.toString()); saveConfig(); + + for(Player p : this.plugin.getServer().getWorld(this.getName()).getPlayers()) { + this.plugin.log(Level.FINER, "Setting " + p.getName() + "'s GameMode to " + this.gameMode.toString()); + this.plugin.getPlayerListener().handleGameMode(p, this); + } return true; } diff --git a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java index 1e85f9cc..1ac99de4 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java @@ -614,4 +614,8 @@ public class MultiverseCore extends JavaPlugin implements LoggablePlugin { return this.worldManager; } + public MVPlayerListener getPlayerListener() { + return this.playerListener; + } + } diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java index ad514290..a536f5b9 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java @@ -174,7 +174,7 @@ public class MVPlayerListener extends PlayerListener { } } - private void handleGameMode(Player player, MVWorld world) { + public void handleGameMode(Player player, MVWorld world) { // We perform this task one tick later to MAKE SURE that the player actually reaches the // destination world, otherwise we'd be changing the player mode if they havent moved anywhere. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this.plugin, new HandleGameMode(player, world), 1L);