From 3a151eb2d5fb9df25ecc09914322a127d20a712b Mon Sep 17 00:00:00 2001 From: jedk1 Date: Wed, 25 Nov 2015 01:10:38 +0000 Subject: [PATCH 1/5] Fix bending activating on block right click --- src/com/projectkorra/projectkorra/PKListener.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/com/projectkorra/projectkorra/PKListener.java b/src/com/projectkorra/projectkorra/PKListener.java index ed29ab5f..8902907a 100644 --- a/src/com/projectkorra/projectkorra/PKListener.java +++ b/src/com/projectkorra/projectkorra/PKListener.java @@ -5,6 +5,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Set; +import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -157,6 +158,7 @@ public class PKListener implements Listener { ProjectKorra plugin; public static HashMap bendingDeathPlayer = new HashMap(); // Player killed by Bending + public static List interact = new ArrayList(); // Player right click block public PKListener(ProjectKorra plugin) { this.plugin = plugin; @@ -966,6 +968,15 @@ public class PKListener implements Listener { Player player = event.getPlayer(); if (event.getAction() == Action.RIGHT_CLICK_BLOCK) { + final UUID uuid = player.getUniqueId(); + interact.add(uuid); + + new BukkitRunnable() { + public void run() { + interact.remove(uuid); + } + }.runTaskLater(plugin, 5); + String ability = GeneralMethods.getBoundAbility(player); ComboManager.addComboAbility(player, ClickType.RIGHT_CLICK); if (ability != null && ability.equalsIgnoreCase("EarthSmash")) @@ -1290,6 +1301,9 @@ public class PKListener implements Listener { return; Player player = event.getPlayer(); + + if (interact.contains(player.getUniqueId())) return; + ComboManager.addComboAbility(player, ClickType.LEFT_CLICK); if (Suffocate.isBreathbent(player)) { From fbdab10c3f3b0379b72cfde40e101507c56a7ee6 Mon Sep 17 00:00:00 2001 From: jedk1 Date: Wed, 25 Nov 2015 01:10:59 +0000 Subject: [PATCH 2/5] Fix fly glitch with AirSpout & Tornado --- src/com/projectkorra/projectkorra/util/Flight.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/com/projectkorra/projectkorra/util/Flight.java b/src/com/projectkorra/projectkorra/util/Flight.java index 6c819221..7cf4c208 100644 --- a/src/com/projectkorra/projectkorra/util/Flight.java +++ b/src/com/projectkorra/projectkorra/util/Flight.java @@ -34,7 +34,6 @@ public class Flight { if (instances.containsKey(player)) { Flight flight = instances.get(player); flight.refresh(source); - instances.replace(player, flight); return; } this.couldFly = player.getAllowFlight(); From c6dfe0027acb350ba3b9e3a53af72f56700becb1 Mon Sep 17 00:00:00 2001 From: jedk1 Date: Wed, 25 Nov 2015 01:18:57 +0000 Subject: [PATCH 3/5] Fix distance errors --- src/com/projectkorra/projectkorra/airbending/AirCombo.java | 5 +++++ .../projectkorra/event/HorizontalVelocityChangeEvent.java | 3 +++ 2 files changed, 8 insertions(+) diff --git a/src/com/projectkorra/projectkorra/airbending/AirCombo.java b/src/com/projectkorra/projectkorra/airbending/AirCombo.java index 709f42da..20c58b1c 100644 --- a/src/com/projectkorra/projectkorra/airbending/AirCombo.java +++ b/src/com/projectkorra/projectkorra/airbending/AirCombo.java @@ -229,6 +229,11 @@ public class AirCombo implements ConfigLoadable { currentLoc.add(direction.clone().multiply(speed)); if (!EarthMethods.isTransparentToEarthbending(player, currentLoc.getBlock())) currentLoc.subtract(direction.clone().multiply(speed)); + + if (player.getWorld() != currentLoc.getWorld()) { + remove(); + return; + } if (Math.abs(player.getLocation().distance(currentLoc)) > range) { remove(); diff --git a/src/com/projectkorra/projectkorra/event/HorizontalVelocityChangeEvent.java b/src/com/projectkorra/projectkorra/event/HorizontalVelocityChangeEvent.java index 76a8ca80..d258a19b 100644 --- a/src/com/projectkorra/projectkorra/event/HorizontalVelocityChangeEvent.java +++ b/src/com/projectkorra/projectkorra/event/HorizontalVelocityChangeEvent.java @@ -76,6 +76,9 @@ public class HorizontalVelocityChangeEvent extends Event implements Cancellable } public double getDistanceTraveled() { + if (start.getWorld() != end.getWorld()) { + return 0; + } return start.distance(end); } From 06b999c6c638673309e9fc28a63542c62d29ab2d Mon Sep 17 00:00:00 2001 From: jedk1 Date: Wed, 25 Nov 2015 13:40:29 +0000 Subject: [PATCH 4/5] Fix Avatar Death Message color --- src/com/projectkorra/projectkorra/PKListener.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/com/projectkorra/projectkorra/PKListener.java b/src/com/projectkorra/projectkorra/PKListener.java index a189543b..1018e3b6 100644 --- a/src/com/projectkorra/projectkorra/PKListener.java +++ b/src/com/projectkorra/projectkorra/PKListener.java @@ -654,8 +654,12 @@ public class PKListener implements Listener { StringBuilder sb = new StringBuilder(); if (event.getSubElement() != null) { sb.append(event.getSubElement().getChatColor()); - } else if (event.getElement() != null) { - sb.append(event.getElement().getChatColor()); + } else { + if (event.getElement() != null) { + sb.append(event.getElement().getChatColor()); + } else { + sb.append(GeneralMethods.getAvatarColor()); + } } sb.append(event.getAbility()); bendingDeathPlayer.put(event.getVictim(), sb.toString()); From 4b85875c1884ae49d53540e20f3fbad68fa93f2b Mon Sep 17 00:00:00 2001 From: jedk1 Date: Wed, 25 Nov 2015 21:23:27 +0000 Subject: [PATCH 5/5] Fix BendingPlayer NPE of player log out --- src/com/projectkorra/projectkorra/airbending/AirBlast.java | 3 +++ src/com/projectkorra/projectkorra/airbending/AirSpout.java | 5 ++--- src/com/projectkorra/projectkorra/airbending/AirSuction.java | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/com/projectkorra/projectkorra/airbending/AirBlast.java b/src/com/projectkorra/projectkorra/airbending/AirBlast.java index fae8c571..c9982a5e 100644 --- a/src/com/projectkorra/projectkorra/airbending/AirBlast.java +++ b/src/com/projectkorra/projectkorra/airbending/AirBlast.java @@ -130,6 +130,9 @@ public class AirBlast implements ConfigLoadable { if (!origins.containsKey(player)) return; Location origin = origins.get(player); + if (player.isDead() || !player.isOnline()) + return; + if (!origin.getWorld().equals(player.getWorld())) { origins.remove(player); return; diff --git a/src/com/projectkorra/projectkorra/airbending/AirSpout.java b/src/com/projectkorra/projectkorra/airbending/AirSpout.java index ff0a1459..581c1b09 100644 --- a/src/com/projectkorra/projectkorra/airbending/AirSpout.java +++ b/src/com/projectkorra/projectkorra/airbending/AirSpout.java @@ -94,10 +94,9 @@ public class AirSpout implements ConfigLoadable { } public boolean progress() { - if (!GeneralMethods.canBend(player.getName(), "AirSpout") + if (player.isDead() || !player.isOnline() || !GeneralMethods.canBend(player.getName(), "AirSpout") // || !Methods.hasAbility(player, Abilities.AirSpout) - || player.getEyeLocation().getBlock().isLiquid() || GeneralMethods.isSolid(player.getEyeLocation().getBlock()) - || player.isDead() || !player.isOnline()) { + || player.getEyeLocation().getBlock().isLiquid() || GeneralMethods.isSolid(player.getEyeLocation().getBlock())) { remove(); return false; } diff --git a/src/com/projectkorra/projectkorra/airbending/AirSuction.java b/src/com/projectkorra/projectkorra/airbending/AirSuction.java index fbe30134..8a667612 100644 --- a/src/com/projectkorra/projectkorra/airbending/AirSuction.java +++ b/src/com/projectkorra/projectkorra/airbending/AirSuction.java @@ -103,6 +103,9 @@ public class AirSuction implements ConfigLoadable { if (!origins.containsKey(player)) return; Location origin = origins.get(player); + if (player.isDead() || !player.isOnline()) + return; + if (!origin.getWorld().equals(player.getWorld())) { origins.remove(player); return;