mirror of
https://github.com/TotalFreedomMC/TF-ProjectKorra.git
synced 2025-02-12 03:59:06 +00:00
Merge pull request #238 from grasshopperMatt/catapult/fix
Fixed Catapult fall damage
This commit is contained in:
commit
ab0c2807c6
1 changed files with 232 additions and 134 deletions
|
@ -1,5 +1,62 @@
|
||||||
package com.projectkorra.projectkorra;
|
package com.projectkorra.projectkorra;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.GameMode;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.block.Action;
|
||||||
|
import org.bukkit.event.block.BlockBreakEvent;
|
||||||
|
import org.bukkit.event.block.BlockFadeEvent;
|
||||||
|
import org.bukkit.event.block.BlockFormEvent;
|
||||||
|
import org.bukkit.event.block.BlockFromToEvent;
|
||||||
|
import org.bukkit.event.block.BlockIgniteEvent;
|
||||||
|
import org.bukkit.event.block.BlockPhysicsEvent;
|
||||||
|
import org.bukkit.event.block.BlockPlaceEvent;
|
||||||
|
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
||||||
|
import org.bukkit.event.entity.EntityCombustEvent;
|
||||||
|
import org.bukkit.event.entity.EntityDamageByBlockEvent;
|
||||||
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||||
|
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||||
|
import org.bukkit.event.entity.EntityInteractEvent;
|
||||||
|
import org.bukkit.event.entity.EntityShootBowEvent;
|
||||||
|
import org.bukkit.event.entity.EntityTargetEvent;
|
||||||
|
import org.bukkit.event.entity.EntityTargetLivingEntityEvent;
|
||||||
|
import org.bukkit.event.entity.EntityTeleportEvent;
|
||||||
|
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||||
|
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||||
|
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
||||||
|
import org.bukkit.event.entity.SlimeSplitEvent;
|
||||||
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
|
import org.bukkit.event.inventory.InventoryType.SlotType;
|
||||||
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
|
import org.bukkit.event.player.PlayerAnimationEvent;
|
||||||
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
|
import org.bukkit.event.player.PlayerKickEvent;
|
||||||
|
import org.bukkit.event.player.PlayerMoveEvent;
|
||||||
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
import org.bukkit.event.player.PlayerToggleFlightEvent;
|
||||||
|
import org.bukkit.event.player.PlayerToggleSneakEvent;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
import com.projectkorra.projectkorra.ability.AvatarState;
|
import com.projectkorra.projectkorra.ability.AvatarState;
|
||||||
import com.projectkorra.projectkorra.ability.api.CoreAbility;
|
import com.projectkorra.projectkorra.ability.api.CoreAbility;
|
||||||
import com.projectkorra.projectkorra.ability.combo.ComboManager;
|
import com.projectkorra.projectkorra.ability.combo.ComboManager;
|
||||||
|
@ -90,68 +147,14 @@ import com.projectkorra.projectkorra.waterbending.WaterWall;
|
||||||
import com.projectkorra.projectkorra.waterbending.WaterWave;
|
import com.projectkorra.projectkorra.waterbending.WaterWave;
|
||||||
import com.projectkorra.projectkorra.waterbending.Wave;
|
import com.projectkorra.projectkorra.waterbending.Wave;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.GameMode;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.block.Block;
|
|
||||||
import org.bukkit.entity.Entity;
|
|
||||||
import org.bukkit.entity.EntityType;
|
|
||||||
import org.bukkit.entity.LivingEntity;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.EventPriority;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.block.Action;
|
|
||||||
import org.bukkit.event.block.BlockBreakEvent;
|
|
||||||
import org.bukkit.event.block.BlockFadeEvent;
|
|
||||||
import org.bukkit.event.block.BlockFormEvent;
|
|
||||||
import org.bukkit.event.block.BlockFromToEvent;
|
|
||||||
import org.bukkit.event.block.BlockIgniteEvent;
|
|
||||||
import org.bukkit.event.block.BlockPhysicsEvent;
|
|
||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
|
||||||
import org.bukkit.event.entity.EntityChangeBlockEvent;
|
|
||||||
import org.bukkit.event.entity.EntityCombustEvent;
|
|
||||||
import org.bukkit.event.entity.EntityDamageByBlockEvent;
|
|
||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
|
||||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
|
||||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
|
||||||
import org.bukkit.event.entity.EntityInteractEvent;
|
|
||||||
import org.bukkit.event.entity.EntityShootBowEvent;
|
|
||||||
import org.bukkit.event.entity.EntityTargetEvent;
|
|
||||||
import org.bukkit.event.entity.EntityTargetLivingEntityEvent;
|
|
||||||
import org.bukkit.event.entity.EntityTeleportEvent;
|
|
||||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
|
||||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
|
||||||
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
|
||||||
import org.bukkit.event.entity.SlimeSplitEvent;
|
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.event.inventory.InventoryType.SlotType;
|
|
||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
|
||||||
import org.bukkit.event.player.PlayerAnimationEvent;
|
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
|
||||||
import org.bukkit.event.player.PlayerKickEvent;
|
|
||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
|
||||||
import org.bukkit.event.player.PlayerToggleFlightEvent;
|
|
||||||
import org.bukkit.event.player.PlayerToggleSneakEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.potion.PotionEffectType;
|
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
|
||||||
import org.bukkit.util.Vector;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class PKListener implements Listener {
|
public class PKListener implements Listener {
|
||||||
|
|
||||||
ProjectKorra plugin;
|
ProjectKorra plugin;
|
||||||
|
|
||||||
public static HashMap<Player, String> bendingDeathPlayer = new HashMap<Player, String>(); // Player killed by Bending
|
public static HashMap<Player, String> bendingDeathPlayer = new HashMap<Player, String>(); // Player
|
||||||
|
// killed
|
||||||
|
// by
|
||||||
|
// Bending
|
||||||
|
|
||||||
public PKListener(ProjectKorra plugin) {
|
public PKListener(ProjectKorra plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
|
@ -167,13 +170,15 @@ public class PKListener implements Listener {
|
||||||
|
|
||||||
if (GeneralMethods.toggedOut.contains(player.getUniqueId())) {
|
if (GeneralMethods.toggedOut.contains(player.getUniqueId())) {
|
||||||
GeneralMethods.getBendingPlayer(player.getName()).toggleBending();
|
GeneralMethods.getBendingPlayer(player.getName()).toggleBending();
|
||||||
player.sendMessage(ChatColor.YELLOW + "Reminder, you toggled your bending before signing off. Enable it again with /bending toggle.");
|
player.sendMessage(ChatColor.YELLOW
|
||||||
|
+ "Reminder, you toggled your bending before signing off. Enable it again with /bending toggle.");
|
||||||
}
|
}
|
||||||
|
|
||||||
Preset.loadPresets(player);
|
Preset.loadPresets(player);
|
||||||
String append = "";
|
String append = "";
|
||||||
boolean chatEnabled = ProjectKorra.plugin.getConfig().getBoolean("Properties.Chat.Enable");
|
boolean chatEnabled = ProjectKorra.plugin.getConfig().getBoolean("Properties.Chat.Enable");
|
||||||
if ((player.hasPermission("bending.avatar") || GeneralMethods.getBendingPlayer(player.getName()).getElements().size() > 1) && chatEnabled) {
|
if ((player.hasPermission("bending.avatar")
|
||||||
|
|| GeneralMethods.getBendingPlayer(player.getName()).getElements().size() > 1) && chatEnabled) {
|
||||||
append = plugin.getConfig().getString("Properties.Chat.Prefixes.Avatar");
|
append = plugin.getConfig().getString("Properties.Chat.Prefixes.Avatar");
|
||||||
} else if (GeneralMethods.isBender(player.getName(), Element.Air) && chatEnabled) {
|
} else if (GeneralMethods.isBender(player.getName(), Element.Air) && chatEnabled) {
|
||||||
append = plugin.getConfig().getString("Properties.Chat.Prefixes.Air");
|
append = plugin.getConfig().getString("Properties.Chat.Prefixes.Air");
|
||||||
|
@ -195,7 +200,8 @@ public class PKListener implements Listener {
|
||||||
if (player.getGameMode() != GameMode.CREATIVE) {
|
if (player.getGameMode() != GameMode.CREATIVE) {
|
||||||
HashMap<Integer, String> bound = GeneralMethods.getBendingPlayer(player.getName()).getAbilities();
|
HashMap<Integer, String> bound = GeneralMethods.getBendingPlayer(player.getName()).getAbilities();
|
||||||
for (String str : bound.values()) {
|
for (String str : bound.values()) {
|
||||||
if (str.equalsIgnoreCase("AirSpout") || str.equalsIgnoreCase("WaterSpout") || str.equalsIgnoreCase("SandSpout")) {
|
if (str.equalsIgnoreCase("AirSpout") || str.equalsIgnoreCase("WaterSpout")
|
||||||
|
|| str.equalsIgnoreCase("SandSpout")) {
|
||||||
final Player fplayer = player;
|
final Player fplayer = player;
|
||||||
new BukkitRunnable() {
|
new BukkitRunnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
|
@ -216,7 +222,8 @@ public class PKListener implements Listener {
|
||||||
|
|
||||||
Block block = event.getBlock();
|
Block block = event.getBlock();
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
if (WaterWall.wasBrokenFor(player, block) || OctopusForm.wasBrokenFor(player, block) || Torrent.wasBrokenFor(player, block) || WaterWave.wasBrokenFor(player, block)) {
|
if (WaterWall.wasBrokenFor(player, block) || OctopusForm.wasBrokenFor(player, block)
|
||||||
|
|| Torrent.wasBrokenFor(player, block) || WaterWave.wasBrokenFor(player, block)) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -338,7 +345,8 @@ public class PKListener implements Listener {
|
||||||
if (event.isCancelled())
|
if (event.isCancelled())
|
||||||
return;
|
return;
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
if (Paralyze.isParalyzed(player) || ChiCombo.isParalyzed(player) || Bloodbending.isBloodbended(player) || Suffocate.isBreathbent(player)) {
|
if (Paralyze.isParalyzed(player) || ChiCombo.isParalyzed(player) || Bloodbending.isBloodbended(player)
|
||||||
|
|| Suffocate.isBreathbent(player)) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -349,7 +357,8 @@ public class PKListener implements Listener {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Entity entity = event.getEntity();
|
Entity entity = event.getEntity();
|
||||||
if (Paralyze.isParalyzed(entity) || ChiCombo.isParalyzed(entity) || Bloodbending.isBloodbended(entity) || Suffocate.isBreathbent(entity))
|
if (Paralyze.isParalyzed(entity) || ChiCombo.isParalyzed(entity) || Bloodbending.isBloodbended(entity)
|
||||||
|
|| Suffocate.isBreathbent(entity))
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|
||||||
if (event.getEntityType() == EntityType.FALLING_BLOCK) {
|
if (event.getEntityType() == EntityType.FALLING_BLOCK) {
|
||||||
|
@ -399,7 +408,8 @@ public class PKListener implements Listener {
|
||||||
|
|
||||||
Entity entity = event.getEntity();
|
Entity entity = event.getEntity();
|
||||||
|
|
||||||
if (event.getCause() == DamageCause.FIRE && FireStream.ignitedblocks.containsKey(entity.getLocation().getBlock())) {
|
if (event.getCause() == DamageCause.FIRE
|
||||||
|
&& FireStream.ignitedblocks.containsKey(entity.getLocation().getBlock())) {
|
||||||
new Enflamed(entity, FireStream.ignitedblocks.get(entity.getLocation().getBlock()));
|
new Enflamed(entity, FireStream.ignitedblocks.get(entity.getLocation().getBlock()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -410,7 +420,8 @@ public class PKListener implements Listener {
|
||||||
|
|
||||||
if (entity instanceof Player) {
|
if (entity instanceof Player) {
|
||||||
Player player = (Player) entity;
|
Player player = (Player) entity;
|
||||||
if (GeneralMethods.getBoundAbility(player) != null && GeneralMethods.getBoundAbility(player).equalsIgnoreCase("HeatControl")) {
|
if (GeneralMethods.getBoundAbility(player) != null
|
||||||
|
&& GeneralMethods.getBoundAbility(player).equalsIgnoreCase("HeatControl")) {
|
||||||
if (event.getCause() == DamageCause.FIRE || event.getCause() == DamageCause.FIRE_TICK) {
|
if (event.getCause() == DamageCause.FIRE || event.getCause() == DamageCause.FIRE_TICK) {
|
||||||
player.setFireTicks(0);
|
player.setFireTicks(0);
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
@ -452,7 +463,8 @@ public class PKListener implements Listener {
|
||||||
|
|
||||||
Entity entity = event.getEntity();
|
Entity entity = event.getEntity();
|
||||||
if (entity != null)
|
if (entity != null)
|
||||||
if (Paralyze.isParalyzed(entity) || ChiCombo.isParalyzed(entity) || Bloodbending.isBloodbended(entity) || Suffocate.isBreathbent(entity))
|
if (Paralyze.isParalyzed(entity) || ChiCombo.isParalyzed(entity) || Bloodbending.isBloodbended(entity)
|
||||||
|
|| Suffocate.isBreathbent(entity))
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -462,7 +474,8 @@ public class PKListener implements Listener {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Entity entity = event.getEntity();
|
Entity entity = event.getEntity();
|
||||||
if (Paralyze.isParalyzed(entity) || ChiCombo.isParalyzed(entity) || Bloodbending.isBloodbended(entity) || Suffocate.isBreathbent(entity))
|
if (Paralyze.isParalyzed(entity) || ChiCombo.isParalyzed(entity) || Bloodbending.isBloodbended(entity)
|
||||||
|
|| Suffocate.isBreathbent(entity))
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -472,7 +485,8 @@ public class PKListener implements Listener {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Entity entity = event.getEntity();
|
Entity entity = event.getEntity();
|
||||||
if (Paralyze.isParalyzed(entity) || ChiCombo.isParalyzed(entity) || Bloodbending.isBloodbended(entity) || Suffocate.isBreathbent(entity))
|
if (Paralyze.isParalyzed(entity) || ChiCombo.isParalyzed(entity) || Bloodbending.isBloodbended(entity)
|
||||||
|
|| Suffocate.isBreathbent(entity))
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -482,7 +496,8 @@ public class PKListener implements Listener {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Entity entity = event.getEntity();
|
Entity entity = event.getEntity();
|
||||||
if (Paralyze.isParalyzed(entity) || ChiCombo.isParalyzed(entity) || Bloodbending.isBloodbended(entity) || Suffocate.isBreathbent(entity))
|
if (Paralyze.isParalyzed(entity) || ChiCombo.isParalyzed(entity) || Bloodbending.isBloodbended(entity)
|
||||||
|
|| Suffocate.isBreathbent(entity))
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -492,7 +507,8 @@ public class PKListener implements Listener {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Entity entity = event.getEntity();
|
Entity entity = event.getEntity();
|
||||||
if (Paralyze.isParalyzed(entity) || ChiCombo.isParalyzed(entity) || Bloodbending.isBloodbended(entity) || Suffocate.isBreathbent(entity))
|
if (Paralyze.isParalyzed(entity) || ChiCombo.isParalyzed(entity) || Bloodbending.isBloodbended(entity)
|
||||||
|
|| Suffocate.isBreathbent(entity))
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -536,7 +552,8 @@ public class PKListener implements Listener {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Entity entity = event.getEntity();
|
Entity entity = event.getEntity();
|
||||||
if (Paralyze.isParalyzed(entity) || ChiCombo.isParalyzed(entity) || Bloodbending.isBloodbended(entity) || Suffocate.isBreathbent(entity))
|
if (Paralyze.isParalyzed(entity) || ChiCombo.isParalyzed(entity) || Bloodbending.isBloodbended(entity)
|
||||||
|
|| Suffocate.isBreathbent(entity))
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -547,8 +564,10 @@ public class PKListener implements Listener {
|
||||||
|
|
||||||
if (e.getEntity() instanceof LivingEntity) {
|
if (e.getEntity() instanceof LivingEntity) {
|
||||||
if (e.getEntity().getEntityId() != e.getInstigator().getEntityId()) {
|
if (e.getEntity().getEntityId() != e.getInstigator().getEntityId()) {
|
||||||
double minimumDistance = plugin.getConfig().getDouble("Properties.HorizontalCollisionPhysics.WallDamageMinimumDistance");
|
double minimumDistance = plugin.getConfig()
|
||||||
double damage = ((e.getDistanceTraveled() - minimumDistance) < 0 ? 0 : e.getDistanceTraveled() - minimumDistance) / (e.getDifference().length());
|
.getDouble("Properties.HorizontalCollisionPhysics.WallDamageMinimumDistance");
|
||||||
|
double damage = ((e.getDistanceTraveled() - minimumDistance) < 0 ? 0
|
||||||
|
: e.getDistanceTraveled() - minimumDistance) / (e.getDifference().length());
|
||||||
if (damage > 0)
|
if (damage > 0)
|
||||||
GeneralMethods.damageEntity(e.getInstigator(), e.getEntity(), damage);
|
GeneralMethods.damageEntity(e.getInstigator(), e.getEntity(), damage);
|
||||||
}
|
}
|
||||||
|
@ -599,7 +618,8 @@ public class PKListener implements Listener {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
ChatColor color = ChatColor.WHITE;
|
ChatColor color = ChatColor.WHITE;
|
||||||
|
|
||||||
if (player.hasPermission("bending.avatar") || GeneralMethods.getBendingPlayer(player.getName()).getElements().size() > 1) {
|
if (player.hasPermission("bending.avatar")
|
||||||
|
|| GeneralMethods.getBendingPlayer(player.getName()).getElements().size() > 1) {
|
||||||
color = ChatColor.valueOf(plugin.getConfig().getString("Properties.Chat.Colors.Avatar"));
|
color = ChatColor.valueOf(plugin.getConfig().getString("Properties.Chat.Colors.Avatar"));
|
||||||
} else if (GeneralMethods.isBender(player.getName(), Element.Air)) {
|
} else if (GeneralMethods.isBender(player.getName(), Element.Air)) {
|
||||||
color = ChatColor.valueOf(plugin.getConfig().getString("Properties.Chat.Colors.Air"));
|
color = ChatColor.valueOf(plugin.getConfig().getString("Properties.Chat.Colors.Air"));
|
||||||
|
@ -631,7 +651,8 @@ public class PKListener implements Listener {
|
||||||
Shockwave.fallShockwave(player);
|
Shockwave.fallShockwave(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GeneralMethods.isBender(player.getName(), Element.Air) && event.getCause() == DamageCause.FALL && GeneralMethods.canBendPassive(player.getName(), Element.Air)) {
|
if (GeneralMethods.isBender(player.getName(), Element.Air) && event.getCause() == DamageCause.FALL
|
||||||
|
&& GeneralMethods.canBendPassive(player.getName(), Element.Air)) {
|
||||||
new Flight(player);
|
new Flight(player);
|
||||||
player.setAllowFlight(true);
|
player.setAllowFlight(true);
|
||||||
AirBurst.fallBurst(player);
|
AirBurst.fallBurst(player);
|
||||||
|
@ -640,7 +661,9 @@ public class PKListener implements Listener {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!event.isCancelled() && GeneralMethods.isBender(player.getName(), Element.Water) && event.getCause() == DamageCause.FALL && GeneralMethods.canBendPassive(player.getName(), Element.Water)) {
|
if (!event.isCancelled() && GeneralMethods.isBender(player.getName(), Element.Water)
|
||||||
|
&& event.getCause() == DamageCause.FALL
|
||||||
|
&& GeneralMethods.canBendPassive(player.getName(), Element.Water)) {
|
||||||
if (WaterPassive.applyNoFall(player)) {
|
if (WaterPassive.applyNoFall(player)) {
|
||||||
new Flight(player);
|
new Flight(player);
|
||||||
player.setAllowFlight(true);
|
player.setAllowFlight(true);
|
||||||
|
@ -650,7 +673,9 @@ public class PKListener implements Listener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!event.isCancelled() && GeneralMethods.isBender(player.getName(), Element.Earth) && event.getCause() == DamageCause.FALL && GeneralMethods.canBendPassive(player.getName(), Element.Earth)) {
|
if (!event.isCancelled() && GeneralMethods.isBender(player.getName(), Element.Earth)
|
||||||
|
&& event.getCause() == DamageCause.FALL
|
||||||
|
&& GeneralMethods.canBendPassive(player.getName(), Element.Earth)) {
|
||||||
if (EarthPassive.softenLanding(player)) {
|
if (EarthPassive.softenLanding(player)) {
|
||||||
new Flight(player);
|
new Flight(player);
|
||||||
player.setAllowFlight(true);
|
player.setAllowFlight(true);
|
||||||
|
@ -660,7 +685,9 @@ public class PKListener implements Listener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!event.isCancelled() && GeneralMethods.isBender(player.getName(), Element.Chi) && event.getCause() == DamageCause.FALL && GeneralMethods.canBendPassive(player.getName(), Element.Chi)) {
|
if (!event.isCancelled() && GeneralMethods.isBender(player.getName(), Element.Chi)
|
||||||
|
&& event.getCause() == DamageCause.FALL
|
||||||
|
&& GeneralMethods.canBendPassive(player.getName(), Element.Chi)) {
|
||||||
if (player.isSprinting()) {
|
if (player.isSprinting()) {
|
||||||
event.setDamage(0);
|
event.setDamage(0);
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
@ -680,11 +707,14 @@ public class PKListener implements Listener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GeneralMethods.canBendPassive(player.getName(), Element.Fire) && GeneralMethods.isBender(player.getName(), Element.Fire) && (event.getCause() == DamageCause.FIRE || event.getCause() == DamageCause.FIRE_TICK)) {
|
if (GeneralMethods.canBendPassive(player.getName(), Element.Fire)
|
||||||
|
&& GeneralMethods.isBender(player.getName(), Element.Fire)
|
||||||
|
&& (event.getCause() == DamageCause.FIRE || event.getCause() == DamageCause.FIRE_TICK)) {
|
||||||
event.setCancelled(!Extinguish.canBurn(player));
|
event.setCancelled(!Extinguish.canBurn(player));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GeneralMethods.isBender(player.getName(), Element.Earth) && event.getCause() == DamageCause.SUFFOCATION && TempBlock.isTempBlock(player.getEyeLocation().getBlock())) {
|
if (GeneralMethods.isBender(player.getName(), Element.Earth) && event.getCause() == DamageCause.SUFFOCATION
|
||||||
|
&& TempBlock.isTempBlock(player.getEyeLocation().getBlock())) {
|
||||||
event.setDamage(0D);
|
event.setDamage(0D);
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
@ -722,25 +752,37 @@ public class PKListener implements Listener {
|
||||||
Entity en = e.getEntity();
|
Entity en = e.getEntity();
|
||||||
if (en instanceof Player) {
|
if (en instanceof Player) {
|
||||||
// Player p = (Player) en; // This is the player getting hurt.
|
// Player p = (Player) en; // This is the player getting hurt.
|
||||||
if (e.getDamager() instanceof Player) { // This is the player hitting someone.
|
if (e.getDamager() instanceof Player) { // This is the player
|
||||||
|
// hitting someone.
|
||||||
Player sourceplayer = (Player) e.getDamager();
|
Player sourceplayer = (Player) e.getDamager();
|
||||||
Player targetplayer = (Player) e.getEntity();
|
Player targetplayer = (Player) e.getEntity();
|
||||||
if (GeneralMethods.canBendPassive(sourceplayer.getName(), Element.Chi)) {
|
if (GeneralMethods.canBendPassive(sourceplayer.getName(), Element.Chi)) {
|
||||||
if (GeneralMethods.isBender(sourceplayer.getName(), Element.Chi) && e.getCause() == DamageCause.ENTITY_ATTACK && e.getDamage() == 1) {
|
if (GeneralMethods.isBender(sourceplayer.getName(), Element.Chi)
|
||||||
|
&& e.getCause() == DamageCause.ENTITY_ATTACK && e.getDamage() == 1) {
|
||||||
if (ChiMethods.isChiAbility(GeneralMethods.getBoundAbility(sourceplayer))) {
|
if (ChiMethods.isChiAbility(GeneralMethods.getBoundAbility(sourceplayer))) {
|
||||||
if (GeneralMethods.isWeapon(sourceplayer.getItemInHand().getType()) && !plugin.getConfig().getBoolean("Properties.Chi.CanBendWithWeapons")) {
|
if (GeneralMethods.isWeapon(sourceplayer.getItemInHand().getType())
|
||||||
|
&& !plugin.getConfig().getBoolean("Properties.Chi.CanBendWithWeapons")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ChiPassive.willChiBlock(sourceplayer, targetplayer)) {
|
if (ChiPassive.willChiBlock(sourceplayer, targetplayer)) {
|
||||||
if (GeneralMethods.getBoundAbility(sourceplayer) != null && GeneralMethods.getBoundAbility(sourceplayer).equalsIgnoreCase("Paralyze")) {
|
if (GeneralMethods.getBoundAbility(sourceplayer) != null
|
||||||
|
&& GeneralMethods.getBoundAbility(sourceplayer).equalsIgnoreCase("Paralyze")) {
|
||||||
new Paralyze(sourceplayer, targetplayer);
|
new Paralyze(sourceplayer, targetplayer);
|
||||||
} else {
|
} else {
|
||||||
ChiPassive.blockChi(targetplayer);
|
ChiPassive.blockChi(targetplayer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if (sourceplayer.getLocation().distance(targetplayer.getLocation()) <= plugin.getConfig().getDouble("Abilities.Chi.RapidPunch.Distance") && Methods.getBoundAbility(sourceplayer) == null) {
|
// if
|
||||||
// if (Methods.isWeapon(sourceplayer.getItemInHand().getType()) && !plugin.getConfig().getBoolean("Properties.Chi.CanBendWithWeapons")) {
|
// (sourceplayer.getLocation().distance(targetplayer.getLocation())
|
||||||
|
// <=
|
||||||
|
// plugin.getConfig().getDouble("Abilities.Chi.RapidPunch.Distance")
|
||||||
|
// && Methods.getBoundAbility(sourceplayer) == null) {
|
||||||
|
// if
|
||||||
|
// (Methods.isWeapon(sourceplayer.getItemInHand().getType())
|
||||||
|
// &&
|
||||||
|
// !plugin.getConfig().getBoolean("Properties.Chi.CanBendWithWeapons"))
|
||||||
|
// {
|
||||||
// return;
|
// return;
|
||||||
// } else {
|
// } else {
|
||||||
// if (ChiPassive.willChiBlock(targetplayer)) {
|
// if (ChiPassive.willChiBlock(targetplayer)) {
|
||||||
|
@ -752,11 +794,14 @@ public class PKListener implements Listener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (GeneralMethods.canBendPassive(sourceplayer.getName(), Element.Chi)) {
|
if (GeneralMethods.canBendPassive(sourceplayer.getName(), Element.Chi)) {
|
||||||
if (GeneralMethods.isWeapon(sourceplayer.getItemInHand().getType()) && !ProjectKorra.plugin.getConfig().getBoolean("Properties.Chi.CanBendWithWeapons")) {
|
if (GeneralMethods.isWeapon(sourceplayer.getItemInHand().getType())
|
||||||
|
&& !ProjectKorra.plugin.getConfig().getBoolean("Properties.Chi.CanBendWithWeapons")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (e.getCause() == DamageCause.ENTITY_ATTACK) {
|
if (e.getCause() == DamageCause.ENTITY_ATTACK) {
|
||||||
if (GeneralMethods.getBoundAbility(sourceplayer) != null && GeneralMethods.getBoundAbility(sourceplayer).equalsIgnoreCase("Paralyze") && e.getDamage() == 1) {
|
if (GeneralMethods.getBoundAbility(sourceplayer) != null
|
||||||
|
&& GeneralMethods.getBoundAbility(sourceplayer).equalsIgnoreCase("Paralyze")
|
||||||
|
&& e.getDamage() == 1) {
|
||||||
if (ChiPassive.willChiBlock(sourceplayer, targetplayer)) {
|
if (ChiPassive.willChiBlock(sourceplayer, targetplayer)) {
|
||||||
if (CoreAbility.getAbilitiesFromPlayer(sourceplayer).isEmpty()) {
|
if (CoreAbility.getAbilitiesFromPlayer(sourceplayer).isEmpty()) {
|
||||||
new Paralyze(sourceplayer, targetplayer);
|
new Paralyze(sourceplayer, targetplayer);
|
||||||
|
@ -778,7 +823,11 @@ public class PKListener implements Listener {
|
||||||
List<ItemStack> drops = event.getDrops();
|
List<ItemStack> drops = event.getDrops();
|
||||||
List<ItemStack> newdrops = new ArrayList<ItemStack>();
|
List<ItemStack> newdrops = new ArrayList<ItemStack>();
|
||||||
for (int i = 0; i < drops.size(); i++) {
|
for (int i = 0; i < drops.size(); i++) {
|
||||||
if (!(drops.get(i).getType() == Material.LEATHER_BOOTS || drops.get(i).getType() == Material.LEATHER_CHESTPLATE || drops.get(i).getType() == Material.LEATHER_HELMET || drops.get(i).getType() == Material.LEATHER_LEGGINGS || drops.get(i).getType() == Material.AIR))
|
if (!(drops.get(i).getType() == Material.LEATHER_BOOTS
|
||||||
|
|| drops.get(i).getType() == Material.LEATHER_CHESTPLATE
|
||||||
|
|| drops.get(i).getType() == Material.LEATHER_HELMET
|
||||||
|
|| drops.get(i).getType() == Material.LEATHER_LEGGINGS
|
||||||
|
|| drops.get(i).getType() == Material.AIR))
|
||||||
newdrops.add((drops.get(i)));
|
newdrops.add((drops.get(i)));
|
||||||
}
|
}
|
||||||
if (EarthArmor.instances.get(event.getEntity()).oldarmor != null) {
|
if (EarthArmor.instances.get(event.getEntity()).oldarmor != null) {
|
||||||
|
@ -795,7 +844,11 @@ public class PKListener implements Listener {
|
||||||
List<ItemStack> drops = event.getDrops();
|
List<ItemStack> drops = event.getDrops();
|
||||||
List<ItemStack> newdrops = new ArrayList<ItemStack>();
|
List<ItemStack> newdrops = new ArrayList<ItemStack>();
|
||||||
for (int i = 0; i < drops.size(); i++) {
|
for (int i = 0; i < drops.size(); i++) {
|
||||||
if (!(drops.get(i).getType() == Material.LEATHER_BOOTS || drops.get(i).getType() == Material.LEATHER_CHESTPLATE || drops.get(i).getType() == Material.LEAVES || drops.get(i).getType() == Material.LEAVES_2 || drops.get(i).getType() == Material.LEATHER_LEGGINGS || drops.get(i).getType() == Material.AIR))
|
if (!(drops.get(i).getType() == Material.LEATHER_BOOTS
|
||||||
|
|| drops.get(i).getType() == Material.LEATHER_CHESTPLATE
|
||||||
|
|| drops.get(i).getType() == Material.LEAVES || drops.get(i).getType() == Material.LEAVES_2
|
||||||
|
|| drops.get(i).getType() == Material.LEATHER_LEGGINGS
|
||||||
|
|| drops.get(i).getType() == Material.AIR))
|
||||||
newdrops.add((drops.get(i)));
|
newdrops.add((drops.get(i)));
|
||||||
}
|
}
|
||||||
if (PlantArmor.instances.get(event.getEntity()).oldarmor != null) {
|
if (PlantArmor.instances.get(event.getEntity()).oldarmor != null) {
|
||||||
|
@ -813,7 +866,10 @@ public class PKListener implements Listener {
|
||||||
List<ItemStack> drops = event.getDrops();
|
List<ItemStack> drops = event.getDrops();
|
||||||
List<ItemStack> newdrops = new ArrayList<ItemStack>();
|
List<ItemStack> newdrops = new ArrayList<ItemStack>();
|
||||||
for (int i = 0; i < drops.size(); i++) {
|
for (int i = 0; i < drops.size(); i++) {
|
||||||
if (!(drops.get(i).getType() == Material.IRON_HELMET || drops.get(i).getType() == Material.IRON_CHESTPLATE || drops.get(i).getType() == Material.IRON_LEGGINGS || drops.get(i).getType() == Material.IRON_BOOTS || drops.get(i).getType() == Material.AIR))
|
if (!(drops.get(i).getType() == Material.IRON_HELMET
|
||||||
|
|| drops.get(i).getType() == Material.IRON_CHESTPLATE
|
||||||
|
|| drops.get(i).getType() == Material.IRON_LEGGINGS
|
||||||
|
|| drops.get(i).getType() == Material.IRON_BOOTS || drops.get(i).getType() == Material.AIR))
|
||||||
newdrops.add((drops.get(i)));
|
newdrops.add((drops.get(i)));
|
||||||
}
|
}
|
||||||
event.getDrops().clear();
|
event.getDrops().clear();
|
||||||
|
@ -844,7 +900,9 @@ public class PKListener implements Listener {
|
||||||
if (ConfigManager.deathMsgConfig.get().contains(element + "." + ability)) {
|
if (ConfigManager.deathMsgConfig.get().contains(element + "." + ability)) {
|
||||||
message = ConfigManager.deathMsgConfig.get().getString(element + "." + ability);
|
message = ConfigManager.deathMsgConfig.get().getString(element + "." + ability);
|
||||||
}
|
}
|
||||||
message = message.replace("{victim}", event.getEntity().getName()).replace("{attacker}", event.getEntity().getKiller().getName()).replace("{ability}", GeneralMethods.getAbilityColor(killerAbility) + ability);
|
message = message.replace("{victim}", event.getEntity().getName())
|
||||||
|
.replace("{attacker}", event.getEntity().getKiller().getName())
|
||||||
|
.replace("{ability}", GeneralMethods.getAbilityColor(killerAbility) + ability);
|
||||||
event.setDeathMessage(message);
|
event.setDeathMessage(message);
|
||||||
bendingDeathPlayer.remove(event.getEntity());
|
bendingDeathPlayer.remove(event.getEntity());
|
||||||
}
|
}
|
||||||
|
@ -862,7 +920,8 @@ public class PKListener implements Listener {
|
||||||
if (ability != null && ability.equalsIgnoreCase("EarthSmash"))
|
if (ability != null && ability.equalsIgnoreCase("EarthSmash"))
|
||||||
new EarthSmash(player, ClickType.RIGHT_CLICK);
|
new EarthSmash(player, ClickType.RIGHT_CLICK);
|
||||||
}
|
}
|
||||||
if (Paralyze.isParalyzed(player) || ChiCombo.isParalyzed(player) || Bloodbending.isBloodbended(player) || Suffocate.isBreathbent(player)) {
|
if (Paralyze.isParalyzed(player) || ChiCombo.isParalyzed(player) || Bloodbending.isBloodbended(player)
|
||||||
|
|| Suffocate.isBreathbent(player)) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -896,7 +955,8 @@ public class PKListener implements Listener {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (WaterSpout.instances.containsKey(event.getPlayer()) || AirSpout.getPlayers().contains(event.getPlayer()) || SandSpout.getPlayers().contains(event.getPlayer())) {
|
if (WaterSpout.instances.containsKey(event.getPlayer()) || AirSpout.getPlayers().contains(event.getPlayer())
|
||||||
|
|| SandSpout.getPlayers().contains(event.getPlayer())) {
|
||||||
Vector vel = new Vector();
|
Vector vel = new Vector();
|
||||||
vel.setX(event.getTo().getX() - event.getFrom().getX());
|
vel.setX(event.getTo().getX() - event.getFrom().getX());
|
||||||
vel.setY(event.getTo().getY() - event.getFrom().getY());
|
vel.setY(event.getTo().getY() - event.getFrom().getY());
|
||||||
|
@ -963,7 +1023,8 @@ public class PKListener implements Listener {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Player p : MetalClips.instances.keySet()) {
|
for (Player p : MetalClips.instances.keySet()) {
|
||||||
if (MetalClips.instances.get(p).getTarget() != null && MetalClips.instances.get(p).getTarget().getEntityId() == event.getPlayer().getEntityId()) {
|
if (MetalClips.instances.get(p).getTarget() != null
|
||||||
|
&& MetalClips.instances.get(p).getTarget().getEntityId() == event.getPlayer().getEntityId()) {
|
||||||
MetalClips.instances.get(p).remove();
|
MetalClips.instances.get(p).remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -985,7 +1046,10 @@ public class PKListener implements Listener {
|
||||||
ComboManager.addComboAbility(player, ClickType.SHIFT_DOWN);
|
ComboManager.addComboAbility(player, ClickType.SHIFT_DOWN);
|
||||||
|
|
||||||
if (Suffocate.isBreathbent(player)) {
|
if (Suffocate.isBreathbent(player)) {
|
||||||
if (!GeneralMethods.getBoundAbility(player).equalsIgnoreCase("AirSwipe") || !GeneralMethods.getBoundAbility(player).equalsIgnoreCase("FireBlast") || !GeneralMethods.getBoundAbility(player).equalsIgnoreCase("EarthBlast") || !GeneralMethods.getBoundAbility(player).equalsIgnoreCase("WaterManipulation")) {
|
if (!GeneralMethods.getBoundAbility(player).equalsIgnoreCase("AirSwipe")
|
||||||
|
|| !GeneralMethods.getBoundAbility(player).equalsIgnoreCase("FireBlast")
|
||||||
|
|| !GeneralMethods.getBoundAbility(player).equalsIgnoreCase("EarthBlast")
|
||||||
|
|| !GeneralMethods.getBoundAbility(player).equalsIgnoreCase("WaterManipulation")) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1020,7 +1084,8 @@ public class PKListener implements Listener {
|
||||||
if (GeneralMethods.isDisabledStockAbility(abil))
|
if (GeneralMethods.isDisabledStockAbility(abil))
|
||||||
return;
|
return;
|
||||||
if (AirMethods.isAirAbility(abil)) {
|
if (AirMethods.isAirAbility(abil)) {
|
||||||
if (GeneralMethods.isWeapon(player.getItemInHand().getType()) && !plugin.getConfig().getBoolean("Properties.Air.CanBendWithWeapons")) {
|
if (GeneralMethods.isWeapon(player.getItemInHand().getType())
|
||||||
|
&& !plugin.getConfig().getBoolean("Properties.Air.CanBendWithWeapons")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (abil.equalsIgnoreCase("Tornado")) {
|
if (abil.equalsIgnoreCase("Tornado")) {
|
||||||
|
@ -1052,7 +1117,8 @@ public class PKListener implements Listener {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (WaterMethods.isWaterAbility(abil)) {
|
if (WaterMethods.isWaterAbility(abil)) {
|
||||||
if (GeneralMethods.isWeapon(player.getItemInHand().getType()) && !plugin.getConfig().getBoolean("Properties.Water.CanBendWithWeapons")) {
|
if (GeneralMethods.isWeapon(player.getItemInHand().getType())
|
||||||
|
&& !plugin.getConfig().getBoolean("Properties.Water.CanBendWithWeapons")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (abil.equalsIgnoreCase("Bloodbending")) {
|
if (abil.equalsIgnoreCase("Bloodbending")) {
|
||||||
|
@ -1085,7 +1151,8 @@ public class PKListener implements Listener {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (EarthMethods.isEarthAbility(abil)) {
|
if (EarthMethods.isEarthAbility(abil)) {
|
||||||
if (GeneralMethods.isWeapon(player.getItemInHand().getType()) && !plugin.getConfig().getBoolean("Properties.Earth.CanBendWithWeapons")) {
|
if (GeneralMethods.isWeapon(player.getItemInHand().getType())
|
||||||
|
&& !plugin.getConfig().getBoolean("Properties.Earth.CanBendWithWeapons")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (abil.equalsIgnoreCase("EarthBlast")) {
|
if (abil.equalsIgnoreCase("EarthBlast")) {
|
||||||
|
@ -1133,7 +1200,8 @@ public class PKListener implements Listener {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (FireMethods.isFireAbility(abil)) {
|
if (FireMethods.isFireAbility(abil)) {
|
||||||
if (GeneralMethods.isWeapon(player.getItemInHand().getType()) && !plugin.getConfig().getBoolean("Properties.Fire.CanBendWithWeapons")) {
|
if (GeneralMethods.isWeapon(player.getItemInHand().getType())
|
||||||
|
&& !plugin.getConfig().getBoolean("Properties.Fire.CanBendWithWeapons")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (abil.equalsIgnoreCase("Blaze")) {
|
if (abil.equalsIgnoreCase("Blaze")) {
|
||||||
|
@ -1170,7 +1238,10 @@ public class PKListener implements Listener {
|
||||||
ComboManager.addComboAbility(player, ClickType.LEFT_CLICK);
|
ComboManager.addComboAbility(player, ClickType.LEFT_CLICK);
|
||||||
|
|
||||||
if (Suffocate.isBreathbent(player)) {
|
if (Suffocate.isBreathbent(player)) {
|
||||||
if (!GeneralMethods.getBoundAbility(player).equalsIgnoreCase("AirSwipe") || !GeneralMethods.getBoundAbility(player).equalsIgnoreCase("FireBlast") || !GeneralMethods.getBoundAbility(player).equalsIgnoreCase("EarthBlast") || !GeneralMethods.getBoundAbility(player).equalsIgnoreCase("WaterManipulation")) {
|
if (!GeneralMethods.getBoundAbility(player).equalsIgnoreCase("AirSwipe")
|
||||||
|
|| !GeneralMethods.getBoundAbility(player).equalsIgnoreCase("FireBlast")
|
||||||
|
|| !GeneralMethods.getBoundAbility(player).equalsIgnoreCase("EarthBlast")
|
||||||
|
|| !GeneralMethods.getBoundAbility(player).equalsIgnoreCase("WaterManipulation")) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1197,7 +1268,8 @@ public class PKListener implements Listener {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (AirMethods.isAirAbility(abil)) {
|
if (AirMethods.isAirAbility(abil)) {
|
||||||
if (GeneralMethods.isWeapon(player.getItemInHand().getType()) && !plugin.getConfig().getBoolean("Properties.Air.CanBendWithWeapons")) {
|
if (GeneralMethods.isWeapon(player.getItemInHand().getType())
|
||||||
|
&& !plugin.getConfig().getBoolean("Properties.Air.CanBendWithWeapons")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (abil.equalsIgnoreCase("AirBlast")) {
|
if (abil.equalsIgnoreCase("AirBlast")) {
|
||||||
|
@ -1219,7 +1291,8 @@ public class PKListener implements Listener {
|
||||||
new AirSwipe(player);
|
new AirSwipe(player);
|
||||||
}
|
}
|
||||||
if (abil.equalsIgnoreCase("Flight")) {
|
if (abil.equalsIgnoreCase("Flight")) {
|
||||||
if (!ProjectKorra.plugin.getConfig().getBoolean("Abilities.Air.Flight.HoverEnabled") || !AirMethods.canAirFlight(player))
|
if (!ProjectKorra.plugin.getConfig().getBoolean("Abilities.Air.Flight.HoverEnabled")
|
||||||
|
|| !AirMethods.canAirFlight(player))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (FlightAbility.contains(event.getPlayer())) {
|
if (FlightAbility.contains(event.getPlayer())) {
|
||||||
|
@ -1233,7 +1306,8 @@ public class PKListener implements Listener {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (WaterMethods.isWaterAbility(abil)) {
|
if (WaterMethods.isWaterAbility(abil)) {
|
||||||
if (GeneralMethods.isWeapon(player.getItemInHand().getType()) && !plugin.getConfig().getBoolean("Properties.Water.CanBendWithWeapons")) {
|
if (GeneralMethods.isWeapon(player.getItemInHand().getType())
|
||||||
|
&& !plugin.getConfig().getBoolean("Properties.Water.CanBendWithWeapons")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (abil.equalsIgnoreCase("Bloodbending")) {
|
if (abil.equalsIgnoreCase("Bloodbending")) {
|
||||||
|
@ -1269,7 +1343,8 @@ public class PKListener implements Listener {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (EarthMethods.isEarthAbility(abil)) {
|
if (EarthMethods.isEarthAbility(abil)) {
|
||||||
if (GeneralMethods.isWeapon(player.getItemInHand().getType()) && !plugin.getConfig().getBoolean("Properties.Earth.CanBendWithWeapons")) {
|
if (GeneralMethods.isWeapon(player.getItemInHand().getType())
|
||||||
|
&& !plugin.getConfig().getBoolean("Properties.Earth.CanBendWithWeapons")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (abil.equalsIgnoreCase("Catapult")) {
|
if (abil.equalsIgnoreCase("Catapult")) {
|
||||||
|
@ -1300,7 +1375,9 @@ public class PKListener implements Listener {
|
||||||
if (!MetalClips.instances.containsKey(player)) {
|
if (!MetalClips.instances.containsKey(player)) {
|
||||||
new MetalClips(player, 0);
|
new MetalClips(player, 0);
|
||||||
} else if (MetalClips.instances.containsKey(player)) {
|
} else if (MetalClips.instances.containsKey(player)) {
|
||||||
if (MetalClips.instances.get(player).metalclips < (player.hasPermission("bending.ability.MetalClips.4clips") ? 4 : 3))
|
if (MetalClips.instances
|
||||||
|
.get(player).metalclips < (player.hasPermission("bending.ability.MetalClips.4clips") ? 4
|
||||||
|
: 3))
|
||||||
MetalClips.instances.get(player).shootMetal();
|
MetalClips.instances.get(player).shootMetal();
|
||||||
else
|
else
|
||||||
MetalClips.instances.get(player).launch();
|
MetalClips.instances.get(player).launch();
|
||||||
|
@ -1322,7 +1399,8 @@ public class PKListener implements Listener {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (FireMethods.isFireAbility(abil)) {
|
if (FireMethods.isFireAbility(abil)) {
|
||||||
if (GeneralMethods.isWeapon(player.getItemInHand().getType()) && !plugin.getConfig().getBoolean("Properties.Fire.CanBendWithWeapons")) {
|
if (GeneralMethods.isWeapon(player.getItemInHand().getType())
|
||||||
|
&& !plugin.getConfig().getBoolean("Properties.Fire.CanBendWithWeapons")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (abil.equalsIgnoreCase("Blaze")) {
|
if (abil.equalsIgnoreCase("Blaze")) {
|
||||||
|
@ -1355,7 +1433,8 @@ public class PKListener implements Listener {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ChiMethods.isChiAbility(abil)) {
|
if (ChiMethods.isChiAbility(abil)) {
|
||||||
if (GeneralMethods.isWeapon(player.getItemInHand().getType()) && !plugin.getConfig().getBoolean("Properties.Chi.CanBendWithWeapons")) {
|
if (GeneralMethods.isWeapon(player.getItemInHand().getType())
|
||||||
|
&& !plugin.getConfig().getBoolean("Properties.Chi.CanBendWithWeapons")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (abil.equalsIgnoreCase("HighJump")) {
|
if (abil.equalsIgnoreCase("HighJump")) {
|
||||||
|
@ -1403,7 +1482,8 @@ public class PKListener implements Listener {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Player p = event.getPlayer();
|
Player p = event.getPlayer();
|
||||||
if (Tornado.getPlayers().contains(p) || Bloodbending.isBloodbended(p) || Suffocate.isBreathbent(p) || FireJet.getPlayers().contains(p) || AvatarState.getPlayers().contains(p)) {
|
if (Tornado.getPlayers().contains(p) || Bloodbending.isBloodbended(p) || Suffocate.isBreathbent(p)
|
||||||
|
|| FireJet.getPlayers().contains(p) || AvatarState.getPlayers().contains(p)) {
|
||||||
event.setCancelled(p.getGameMode() != GameMode.CREATIVE);
|
event.setCancelled(p.getGameMode() != GameMode.CREATIVE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1430,4 +1510,22 @@ public class PKListener implements Listener {
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
|
public void onLand(EntityDamageEvent event) {
|
||||||
|
DamageCause cause = event.getCause();
|
||||||
|
if (!(event.getEntity() instanceof Player)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = (Player) event.getEntity();
|
||||||
|
if (cause == DamageCause.FALL && Catapult.instances.containsKey(player.getEntityId())
|
||||||
|
&& EarthMethods.isEarthbendable(player, player.getLocation().clone().subtract(0, 1, 0).getBlock())) {
|
||||||
|
|
||||||
|
Catapult.instances.remove(player.getEntityId());
|
||||||
|
event.setCancelled(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue