From 3b2a57b61cb45646f51592a28a7296a08442b0df Mon Sep 17 00:00:00 2001 From: Mark Morgan Date: Sun, 6 Nov 2011 21:33:26 -0800 Subject: [PATCH] Fixes for bugs and compatibility fixes with Spout 510. --- .../me/olloth/plugins/flight/SpoutFlight.java | 36 ++++++++++++++----- .../olloth/plugins/flight/keys/ToggleKey.java | 2 +- .../olloth/plugins/flight/keys/UpDownKey.java | 4 +-- .../plugins/flight/listener/Spouts.java | 4 ++- 4 files changed, 33 insertions(+), 13 deletions(-) diff --git a/src/main/java/me/olloth/plugins/flight/SpoutFlight.java b/src/main/java/me/olloth/plugins/flight/SpoutFlight.java index dc28aca..c26076d 100644 --- a/src/main/java/me/olloth/plugins/flight/SpoutFlight.java +++ b/src/main/java/me/olloth/plugins/flight/SpoutFlight.java @@ -63,9 +63,9 @@ public class SpoutFlight extends JavaPlugin { private Config config; - private Map enabled; - private Map gravitys; - private Map speeds; + final private Map enabled = new HashMap(); + final private Map gravitys = new HashMap(); + final private Map speeds = new HashMap(); public void onDisable() { config.saveMaps(); @@ -76,10 +76,6 @@ public void onEnable() { info = getDescription(); pm = getServer().getPluginManager(); - enabled = new HashMap(); - gravitys = new HashMap(); - speeds = new HashMap(); - config = new Config(this); useOldPerms = false; @@ -176,10 +172,28 @@ else if (commandName.equals("sfspeed")) { } public void setPlayerEnabled(Player player, boolean enable) { + if( enabled == null ) { + log.severe("SpoutFlight: setPlayerEnabled, enabled map is null"); + return; + } + if( player == null ) { + log.warning("SpoutFlight: setPlayerEnabled, player is null"); + return; + } + enabled.put(player.getName(), enable); } public boolean getPlayerEnabled(Player player) { + if( enabled == null ) { + log.severe("SpoutFlight: getPlayerEnabled, enabled map is null"); + return false; + } + if( player == null ) { + log.warning("SpoutFlight: getPlayerEnabled, player is null"); + return false; + } + if (!enabled.containsKey(player.getName())) { setPlayerEnabled(player, false); } @@ -212,7 +226,9 @@ public double getPlayerGravity(Player player) { } public void setEnabledMap(Map map) { - enabled = map; + enabled.clear(); + if( map != null ) + enabled.putAll(map); } public Map getEnabledMap() { @@ -220,7 +236,9 @@ public Map getEnabledMap() { } public void setGravityMap(Map map) { - gravitys = map; + gravitys.clear(); + if( map != null ) + gravitys.putAll(map); } public Map getGravityMap() { diff --git a/src/main/java/me/olloth/plugins/flight/keys/ToggleKey.java b/src/main/java/me/olloth/plugins/flight/keys/ToggleKey.java index e16fb21..ee1a423 100644 --- a/src/main/java/me/olloth/plugins/flight/keys/ToggleKey.java +++ b/src/main/java/me/olloth/plugins/flight/keys/ToggleKey.java @@ -36,7 +36,7 @@ public void keyReleased(KeyBindingEvent event) { flightPerm = true; } - else if (event.getScreenType().toString().equals("GAME_SCREEN") && flightPerm) { + if (event.getScreenType().toString().equals("GAME_SCREEN") && flightPerm) { if (plugin.getPlayerEnabled(player)) { plugin.setPlayerEnabled(player, false); diff --git a/src/main/java/me/olloth/plugins/flight/keys/UpDownKey.java b/src/main/java/me/olloth/plugins/flight/keys/UpDownKey.java index 27ef94f..9427002 100644 --- a/src/main/java/me/olloth/plugins/flight/keys/UpDownKey.java +++ b/src/main/java/me/olloth/plugins/flight/keys/UpDownKey.java @@ -19,14 +19,14 @@ public UpDownKey(SpoutFlight plugin, float direction) { @Override public void keyPressed(KeyBindingEvent event) { - if (event.getScreenType().equals(ScreenType.GAME_SCREEN)) { + if (event.getScreenType().equals(ScreenType.GAME_SCREEN) && plugin.getPlayerEnabled(event.getPlayer())) { event.getPlayer().setGravityMultiplier(direction * plugin.getPlayerSpeed(event.getPlayer())); } } @Override public void keyReleased(KeyBindingEvent event) { - if (event.getScreenType().equals(ScreenType.GAME_SCREEN)) { + if (event.getScreenType().equals(ScreenType.GAME_SCREEN) && plugin.getPlayerEnabled(event.getPlayer())) { event.getPlayer().setGravityMultiplier(0); event.getPlayer().setVelocity(new Vector(0, 0, 0)); } diff --git a/src/main/java/me/olloth/plugins/flight/listener/Spouts.java b/src/main/java/me/olloth/plugins/flight/listener/Spouts.java index 4e604e0..5c4b05e 100644 --- a/src/main/java/me/olloth/plugins/flight/listener/Spouts.java +++ b/src/main/java/me/olloth/plugins/flight/listener/Spouts.java @@ -31,7 +31,9 @@ public Spouts(SpoutFlight plugin) { @Override public void onSpoutCraftEnable(SpoutCraftEnableEvent event) { - + if( event.getPlayer() == null ) + return; + if (plugin.getPlayerEnabled(event.getPlayer())) { event.getPlayer().setCanFly(true); event.getPlayer().setGravityMultiplier(0);