diff --git a/src/com/projectkorra/projectkorra/GeneralMethods.java b/src/com/projectkorra/projectkorra/GeneralMethods.java index 39516d14..d5d7f361 100644 --- a/src/com/projectkorra/projectkorra/GeneralMethods.java +++ b/src/com/projectkorra/projectkorra/GeneralMethods.java @@ -95,6 +95,8 @@ import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; +import static com.projectkorra.projectkorra.ability.ElementalAbility.isAir; + public class GeneralMethods { // Represents PlayerName, previously checked blocks, and whether they were true or false @@ -1164,19 +1166,19 @@ public class GeneralMethods { Block blockHolder = loc.getBlock(); int y = 0; // Only one of these while statements will go - while (blockHolder.getType() != Material.AIR && Math.abs(y) < Math.abs(positiveY)) { + while (!ElementalAbility.isAir(blockHolder.getType()) && Math.abs(y) < Math.abs(positiveY)) { y++; final Block tempBlock = loc.clone().add(0, y, 0).getBlock(); - if (tempBlock.getType() == Material.AIR) { + if (ElementalAbility.isAir(tempBlock.getType())) { return blockHolder; } blockHolder = tempBlock; } - while (blockHolder.getType() == Material.AIR && Math.abs(y) < Math.abs(negativeY)) { + while (ElementalAbility.isAir(blockHolder.getType()) && Math.abs(y) < Math.abs(negativeY)) { y--; blockHolder = loc.clone().add(0, y, 0).getBlock(); - if (blockHolder.getType() != Material.AIR) { + if (!ElementalAbility.isAir(blockHolder.getType())) { return blockHolder; } } @@ -1187,20 +1189,20 @@ public class GeneralMethods { Block blockHolder = loc.getBlock(); int y = 0; // Only one of these while statements will go - while (blockHolder.getType() != Material.AIR && Math.abs(y) < Math.abs(negativeY)) { + while (!ElementalAbility.isAir(blockHolder.getType()) && Math.abs(y) < Math.abs(negativeY)) { y--; final Block tempblock = loc.clone().add(0, y, 0).getBlock(); - if (tempblock.getType() == Material.AIR) { + if (ElementalAbility.isAir(tempblock.getType())) { return blockHolder; } blockHolder = tempblock; } - while (blockHolder.getType() != Material.AIR && Math.abs(y) < Math.abs(positiveY)) { + while (!ElementalAbility.isAir(blockHolder.getType()) && Math.abs(y) < Math.abs(positiveY)) { y++; blockHolder = loc.clone().add(0, y, 0).getBlock(); - if (blockHolder.getType() == Material.AIR) { + if (ElementalAbility.isAir(blockHolder.getType())) { return blockHolder; } } diff --git a/src/com/projectkorra/projectkorra/PKListener.java b/src/com/projectkorra/projectkorra/PKListener.java index 7a262270..4e6e4f56 100644 --- a/src/com/projectkorra/projectkorra/PKListener.java +++ b/src/com/projectkorra/projectkorra/PKListener.java @@ -1,122 +1,21 @@ package com.projectkorra.projectkorra; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.GameMode; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Statistic; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -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.*; -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.EntityDamageEvent.DamageModifier; -import org.bukkit.event.entity.EntityDeathEvent; -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.EntityToggleGlideEvent; -import org.bukkit.event.entity.EntityToggleSwimEvent; -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.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.PlayerAnimationEvent; -import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerChangedWorldEvent; -import org.bukkit.event.player.PlayerGameModeChangeEvent; -import org.bukkit.event.player.PlayerInteractAtEntityEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerItemDamageEvent; -import org.bukkit.event.player.PlayerItemHeldEvent; -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.PlayerSwapHandItemsEvent; -import org.bukkit.event.player.PlayerToggleFlightEvent; -import org.bukkit.event.player.PlayerToggleSneakEvent; -import org.bukkit.inventory.EquipmentSlot; -import org.bukkit.inventory.ItemStack; -import org.bukkit.scheduler.BukkitRunnable; -import org.bukkit.util.Vector; - import com.projectkorra.projectkorra.Element.SubElement; -import com.projectkorra.projectkorra.ability.Ability; -import com.projectkorra.projectkorra.ability.AddonAbility; -import com.projectkorra.projectkorra.ability.AirAbility; -import com.projectkorra.projectkorra.ability.AvatarAbility; -import com.projectkorra.projectkorra.ability.ChiAbility; -import com.projectkorra.projectkorra.ability.CoreAbility; -import com.projectkorra.projectkorra.ability.EarthAbility; -import com.projectkorra.projectkorra.ability.ElementalAbility; -import com.projectkorra.projectkorra.ability.FireAbility; -import com.projectkorra.projectkorra.ability.WaterAbility; +import com.projectkorra.projectkorra.ability.*; import com.projectkorra.projectkorra.ability.util.ComboManager; import com.projectkorra.projectkorra.ability.util.MultiAbilityManager; import com.projectkorra.projectkorra.ability.util.PassiveManager; -import com.projectkorra.projectkorra.airbending.AirBlast; -import com.projectkorra.projectkorra.airbending.AirBurst; -import com.projectkorra.projectkorra.airbending.AirScooter; -import com.projectkorra.projectkorra.airbending.AirShield; -import com.projectkorra.projectkorra.airbending.AirSpout; -import com.projectkorra.projectkorra.airbending.AirSuction; -import com.projectkorra.projectkorra.airbending.AirSwipe; -import com.projectkorra.projectkorra.airbending.Suffocate; -import com.projectkorra.projectkorra.airbending.Tornado; +import com.projectkorra.projectkorra.airbending.*; import com.projectkorra.projectkorra.airbending.flight.FlightMultiAbility; import com.projectkorra.projectkorra.airbending.passive.GracefulDescent; import com.projectkorra.projectkorra.avatar.AvatarState; -import com.projectkorra.projectkorra.chiblocking.AcrobatStance; -import com.projectkorra.projectkorra.chiblocking.HighJump; -import com.projectkorra.projectkorra.chiblocking.Paralyze; -import com.projectkorra.projectkorra.chiblocking.QuickStrike; -import com.projectkorra.projectkorra.chiblocking.RapidPunch; -import com.projectkorra.projectkorra.chiblocking.Smokescreen; -import com.projectkorra.projectkorra.chiblocking.SwiftKick; -import com.projectkorra.projectkorra.chiblocking.WarriorStance; +import com.projectkorra.projectkorra.chiblocking.*; import com.projectkorra.projectkorra.chiblocking.passive.Acrobatics; import com.projectkorra.projectkorra.chiblocking.passive.ChiPassive; import com.projectkorra.projectkorra.command.Commands; import com.projectkorra.projectkorra.configuration.ConfigManager; -import com.projectkorra.projectkorra.earthbending.Catapult; -import com.projectkorra.projectkorra.earthbending.Collapse; -import com.projectkorra.projectkorra.earthbending.CollapseWall; -import com.projectkorra.projectkorra.earthbending.EarthArmor; -import com.projectkorra.projectkorra.earthbending.EarthBlast; -import com.projectkorra.projectkorra.earthbending.EarthGrab; +import com.projectkorra.projectkorra.earthbending.*; import com.projectkorra.projectkorra.earthbending.EarthGrab.GrabMode; -import com.projectkorra.projectkorra.earthbending.EarthSmash; -import com.projectkorra.projectkorra.earthbending.EarthTunnel; -import com.projectkorra.projectkorra.earthbending.RaiseEarth; -import com.projectkorra.projectkorra.earthbending.RaiseEarthWall; -import com.projectkorra.projectkorra.earthbending.Shockwave; -import com.projectkorra.projectkorra.earthbending.Tremorsense; import com.projectkorra.projectkorra.earthbending.combo.EarthPillars; import com.projectkorra.projectkorra.earthbending.lava.LavaFlow; import com.projectkorra.projectkorra.earthbending.lava.LavaFlow.AbilityType; @@ -130,44 +29,18 @@ import com.projectkorra.projectkorra.event.EntityBendingDeathEvent; import com.projectkorra.projectkorra.event.HorizontalVelocityChangeEvent; import com.projectkorra.projectkorra.event.PlayerChangeElementEvent; import com.projectkorra.projectkorra.event.PlayerJumpEvent; -import com.projectkorra.projectkorra.firebending.Blaze; -import com.projectkorra.projectkorra.firebending.BlazeArc; -import com.projectkorra.projectkorra.firebending.BlazeRing; -import com.projectkorra.projectkorra.firebending.FireBlast; -import com.projectkorra.projectkorra.firebending.FireBlastCharged; -import com.projectkorra.projectkorra.firebending.FireBurst; -import com.projectkorra.projectkorra.firebending.FireJet; -import com.projectkorra.projectkorra.firebending.FireManipulation; +import com.projectkorra.projectkorra.firebending.*; import com.projectkorra.projectkorra.firebending.FireManipulation.FireManipulationType; -import com.projectkorra.projectkorra.firebending.FireShield; -import com.projectkorra.projectkorra.firebending.HeatControl; import com.projectkorra.projectkorra.firebending.HeatControl.HeatControlType; -import com.projectkorra.projectkorra.firebending.Illumination; -import com.projectkorra.projectkorra.firebending.WallOfFire; import com.projectkorra.projectkorra.firebending.combustion.Combustion; import com.projectkorra.projectkorra.firebending.lightning.Lightning; import com.projectkorra.projectkorra.firebending.passive.FirePassive; import com.projectkorra.projectkorra.firebending.util.FireDamageTimer; import com.projectkorra.projectkorra.object.HorizontalVelocityTracker; import com.projectkorra.projectkorra.object.Preset; -import com.projectkorra.projectkorra.util.BlockSource; -import com.projectkorra.projectkorra.util.ClickType; -import com.projectkorra.projectkorra.util.DamageHandler; -import com.projectkorra.projectkorra.util.FlightHandler; +import com.projectkorra.projectkorra.util.*; import com.projectkorra.projectkorra.util.FlightHandler.Flight; -import com.projectkorra.projectkorra.util.MovementHandler; -import com.projectkorra.projectkorra.util.PassiveHandler; -import com.projectkorra.projectkorra.util.StatisticsManager; -import com.projectkorra.projectkorra.util.StatisticsMethods; -import com.projectkorra.projectkorra.util.TempArmor; -import com.projectkorra.projectkorra.util.TempBlock; -import com.projectkorra.projectkorra.waterbending.OctopusForm; -import com.projectkorra.projectkorra.waterbending.SurgeWall; -import com.projectkorra.projectkorra.waterbending.SurgeWave; -import com.projectkorra.projectkorra.waterbending.Torrent; -import com.projectkorra.projectkorra.waterbending.WaterBubble; -import com.projectkorra.projectkorra.waterbending.WaterManipulation; -import com.projectkorra.projectkorra.waterbending.WaterSpout; +import com.projectkorra.projectkorra.waterbending.*; import com.projectkorra.projectkorra.waterbending.blood.Bloodbending; import com.projectkorra.projectkorra.waterbending.healing.HealingWaters; import com.projectkorra.projectkorra.waterbending.ice.IceBlast; @@ -177,6 +50,29 @@ import com.projectkorra.projectkorra.waterbending.ice.PhaseChange.PhaseChangeTyp import com.projectkorra.projectkorra.waterbending.multiabilities.WaterArms; import com.projectkorra.projectkorra.waterbending.passive.FastSwim; import com.projectkorra.projectkorra.waterbending.passive.HydroSink; +import org.bukkit.Statistic; +import org.bukkit.*; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +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.*; +import org.bukkit.event.entity.*; +import org.bukkit.event.entity.EntityDamageEvent.DamageCause; +import org.bukkit.event.entity.EntityDamageEvent.DamageModifier; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.player.*; +import org.bukkit.inventory.EquipmentSlot; +import org.bukkit.inventory.ItemStack; +import org.bukkit.scheduler.BukkitRunnable; +import org.bukkit.util.Vector; + +import java.util.*; public class PKListener implements Listener { ProjectKorra plugin; @@ -253,7 +149,7 @@ public class PKListener implements Listener { if (ElementalAbility.isLava(fromblock)) { event.setCancelled(!EarthPassive.canFlowFromTo(fromblock, toblock)); } else if (ElementalAbility.isWater(fromblock)) { - event.setCancelled(WaterBubble.isAir(toblock)); + event.setCancelled(ElementalAbility.isAir(toblock.getType())); if (!event.isCancelled()) { event.setCancelled(!WaterManipulation.canFlowFromTo(fromblock, toblock)); } @@ -347,7 +243,7 @@ public class PKListener implements Listener { } // If there is a TempBlock of Air bellow FallingSand blocks, prevent it from updating. - if (!event.isCancelled() && (block.getType() == Material.SAND || block.getType() == Material.GRAVEL || block.getType() == Material.ANVIL || block.getType() == Material.DRAGON_EGG) && TempBlock.isTempBlock(block.getRelative(BlockFace.DOWN)) && block.getRelative(BlockFace.DOWN).getType() == Material.AIR) { + if (!event.isCancelled() && (block.getType() == Material.SAND || block.getType() == Material.GRAVEL || block.getType() == Material.ANVIL || block.getType() == Material.DRAGON_EGG) && TempBlock.isTempBlock(block.getRelative(BlockFace.DOWN)) && ElementalAbility.isAir(block.getRelative(BlockFace.DOWN).getType())) { event.setCancelled(true); } } diff --git a/src/com/projectkorra/projectkorra/ability/EarthAbility.java b/src/com/projectkorra/projectkorra/ability/EarthAbility.java index 0510dfae..18892659 100644 --- a/src/com/projectkorra/projectkorra/ability/EarthAbility.java +++ b/src/com/projectkorra/projectkorra/ability/EarthAbility.java @@ -1,24 +1,5 @@ package com.projectkorra.projectkorra.ability; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.BlockData; -import org.bukkit.block.data.Levelled; -import org.bukkit.entity.Entity; -import org.bukkit.entity.FallingBlock; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.util.Vector; - import com.projectkorra.projectkorra.BendingPlayer; import com.projectkorra.projectkorra.Element; import com.projectkorra.projectkorra.GeneralMethods; @@ -32,6 +13,24 @@ import com.projectkorra.projectkorra.util.BlockSource; import com.projectkorra.projectkorra.util.Information; import com.projectkorra.projectkorra.util.ParticleEffect; import com.projectkorra.projectkorra.util.TempBlock; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.Levelled; +import org.bukkit.entity.Entity; +import org.bukkit.entity.FallingBlock; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; public abstract class EarthAbility extends ElementalAbility { @@ -578,7 +577,7 @@ public abstract class EarthAbility extends ElementalAbility { final Information info = TEMP_AIR_LOCATIONS.get(i); final Block block = info.getState().getBlock(); - if (block.getType() != Material.AIR && !block.isLiquid()) { + if (!ElementalAbility.isAir(block.getType()) && !block.isLiquid()) { if (force || !MOVED_EARTH.containsKey(block)) { TEMP_AIR_LOCATIONS.remove(i); } else { @@ -600,7 +599,7 @@ public abstract class EarthAbility extends ElementalAbility { final Information info = MOVED_EARTH.get(block); final Block sourceblock = info.getState().getBlock(); - if (info.getState().getType() == Material.AIR) { + if (ElementalAbility.isAir(info.getState().getType())) { MOVED_EARTH.remove(block); return true; } @@ -623,7 +622,7 @@ public abstract class EarthAbility extends ElementalAbility { return true; } - if (sourceblock.getType() == Material.AIR || sourceblock.isLiquid()) { + if (ElementalAbility.isAir(sourceblock.getType()) || sourceblock.isLiquid()) { info.getState().update(true); } else { diff --git a/src/com/projectkorra/projectkorra/ability/FireAbility.java b/src/com/projectkorra/projectkorra/ability/FireAbility.java index 877a8f30..5a6d76f5 100644 --- a/src/com/projectkorra/projectkorra/ability/FireAbility.java +++ b/src/com/projectkorra/projectkorra/ability/FireAbility.java @@ -1,21 +1,5 @@ package com.projectkorra.projectkorra.ability; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.concurrent.ConcurrentHashMap; - -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.World; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - import com.projectkorra.projectkorra.Element; import com.projectkorra.projectkorra.GeneralMethods; import com.projectkorra.projectkorra.ProjectKorra; @@ -24,6 +8,13 @@ import com.projectkorra.projectkorra.configuration.ConfigManager; import com.projectkorra.projectkorra.firebending.BlazeArc; import com.projectkorra.projectkorra.util.Information; import com.projectkorra.projectkorra.util.ParticleEffect; +import org.bukkit.*; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; public abstract class FireAbility extends ElementalAbility { @@ -69,7 +60,7 @@ public abstract class FireAbility extends ElementalAbility { * fire dissipates or is destroyed. */ public static void createTempFire(final Location loc) { - if (loc.getBlock().getType() == Material.AIR) { + if (ElementalAbility.isAir(loc.getBlock().getType())) { loc.getBlock().setType(Material.FIRE); return; } @@ -216,9 +207,9 @@ public abstract class FireAbility extends ElementalAbility { while (it.hasNext()) { final Location loc = it.next(); final Information info = TEMP_FIRE.get(loc); - if (info.getLocation().getBlock().getType() != Material.FIRE && info.getLocation().getBlock().getType() != Material.AIR) { + if (info.getLocation().getBlock().getType() != Material.FIRE && !ElementalAbility.isAir(info.getLocation().getBlock().getType())) { revertTempFire(loc); - } else if (info.getBlock().getType() == Material.AIR || System.currentTimeMillis() > info.getTime()) { + } else if (ElementalAbility.isAir(info.getBlock().getType()) || System.currentTimeMillis() > info.getTime()) { revertTempFire(loc); } } @@ -234,7 +225,7 @@ public abstract class FireAbility extends ElementalAbility { return; } final Information info = TEMP_FIRE.get(location); - if (info.getLocation().getBlock().getType() != Material.FIRE && info.getLocation().getBlock().getType() != Material.AIR) { + if (info.getLocation().getBlock().getType() != Material.FIRE && !ElementalAbility.isAir(info.getLocation().getBlock().getType())) { if (info.getState().getType().isBurnable() && !info.getState().getType().isOccluding()) { final ItemStack itemStack = new ItemStack(info.getState().getType(), 1); info.getState().getBlock().getWorld().dropItemNaturally(info.getLocation(), itemStack); diff --git a/src/com/projectkorra/projectkorra/airbending/Tornado.java b/src/com/projectkorra/projectkorra/airbending/Tornado.java index badbae8f..969598fe 100644 --- a/src/com/projectkorra/projectkorra/airbending/Tornado.java +++ b/src/com/projectkorra/projectkorra/airbending/Tornado.java @@ -1,20 +1,20 @@ package com.projectkorra.projectkorra.airbending; -import java.util.HashSet; -import java.util.Map; -import java.util.Random; -import java.util.concurrent.ConcurrentHashMap; - +import com.projectkorra.projectkorra.GeneralMethods; +import com.projectkorra.projectkorra.ability.AirAbility; +import com.projectkorra.projectkorra.ability.ElementalAbility; +import com.projectkorra.projectkorra.attribute.Attribute; +import com.projectkorra.projectkorra.command.Commands; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.util.Vector; -import com.projectkorra.projectkorra.GeneralMethods; -import com.projectkorra.projectkorra.ability.AirAbility; -import com.projectkorra.projectkorra.attribute.Attribute; -import com.projectkorra.projectkorra.command.Commands; +import java.util.HashSet; +import java.util.Map; +import java.util.Random; +import java.util.concurrent.ConcurrentHashMap; public class Tornado extends AirAbility { @@ -104,7 +104,7 @@ public class Tornado extends AirAbility { final double timefactor = this.currentHeight / this.maxHeight; this.currentRadius = timefactor * this.radius; - if (this.origin.getBlock().getType() != Material.AIR && this.origin.getBlock().getType() != Material.BARRIER) { + if (!ElementalAbility.isAir(this.origin.getBlock().getType()) && this.origin.getBlock().getType() != Material.BARRIER) { this.origin.setY(this.origin.getY() - 1. / 10. * this.currentHeight); for (final Entity entity : GeneralMethods.getEntitiesAroundPoint(this.origin, this.currentHeight)) { diff --git a/src/com/projectkorra/projectkorra/chiblocking/SwiftKick.java b/src/com/projectkorra/projectkorra/chiblocking/SwiftKick.java index 3daa4020..e4e05cb9 100644 --- a/src/com/projectkorra/projectkorra/chiblocking/SwiftKick.java +++ b/src/com/projectkorra/projectkorra/chiblocking/SwiftKick.java @@ -1,14 +1,13 @@ package com.projectkorra.projectkorra.chiblocking; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; - import com.projectkorra.projectkorra.ability.ChiAbility; +import com.projectkorra.projectkorra.ability.ElementalAbility; import com.projectkorra.projectkorra.attribute.Attribute; import com.projectkorra.projectkorra.chiblocking.passive.ChiPassive; import com.projectkorra.projectkorra.util.DamageHandler; +import org.bukkit.Location; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; public class SwiftKick extends ChiAbility { @@ -38,7 +37,7 @@ public class SwiftKick extends ChiAbility { this.remove(); return; } - if (this.player.getLocation().subtract(0, 0.5, 0).getBlock().getType() != Material.AIR) { + if (!ElementalAbility.isAir(this.player.getLocation().subtract(0, 0.5, 0).getBlock().getType())) { this.remove(); return; } diff --git a/src/com/projectkorra/projectkorra/earthbending/EarthArmor.java b/src/com/projectkorra/projectkorra/earthbending/EarthArmor.java index e9a22a6c..260ad8c1 100644 --- a/src/com/projectkorra/projectkorra/earthbending/EarthArmor.java +++ b/src/com/projectkorra/projectkorra/earthbending/EarthArmor.java @@ -1,12 +1,15 @@ package com.projectkorra.projectkorra.earthbending; -import java.util.List; - -import org.bukkit.Color; -import org.bukkit.GameMode; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Sound; +import com.projectkorra.projectkorra.GeneralMethods; +import com.projectkorra.projectkorra.ProjectKorra; +import com.projectkorra.projectkorra.ability.EarthAbility; +import com.projectkorra.projectkorra.ability.ElementalAbility; +import com.projectkorra.projectkorra.attribute.Attribute; +import com.projectkorra.projectkorra.command.Commands; +import com.projectkorra.projectkorra.util.ParticleEffect; +import com.projectkorra.projectkorra.util.TempArmor; +import com.projectkorra.projectkorra.util.TempBlock; +import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; @@ -17,14 +20,7 @@ import org.bukkit.potion.PotionEffectType; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; -import com.projectkorra.projectkorra.GeneralMethods; -import com.projectkorra.projectkorra.ProjectKorra; -import com.projectkorra.projectkorra.ability.EarthAbility; -import com.projectkorra.projectkorra.attribute.Attribute; -import com.projectkorra.projectkorra.command.Commands; -import com.projectkorra.projectkorra.util.ParticleEffect; -import com.projectkorra.projectkorra.util.TempArmor; -import com.projectkorra.projectkorra.util.TempBlock; +import java.util.List; public class EarthArmor extends EarthAbility { @@ -183,7 +179,7 @@ public class EarthArmor extends EarthAbility { if (this.isTransparent(newHeadBlock) && !newHeadBlock.isLiquid()) { GeneralMethods.breakBlock(newHeadBlock); - } else if (!this.isEarthbendable(newHeadBlock) && !newHeadBlock.isLiquid() && newHeadBlock.getType() != Material.AIR) { + } else if (!this.isEarthbendable(newHeadBlock) && !newHeadBlock.isLiquid() && !ElementalAbility.isAir(newHeadBlock.getType())) { ParticleEffect.BLOCK_CRACK.display(newHeadBlock.getLocation(), 8, 0.5, 0.5, 0.5, newHeadBlock.getBlockData()); this.remove(); return false; @@ -191,7 +187,7 @@ public class EarthArmor extends EarthAbility { if (this.isTransparent(newLegsBlock) && !newLegsBlock.isLiquid()) { GeneralMethods.breakBlock(newLegsBlock); - } else if (!this.isEarthbendable(newLegsBlock) && !newLegsBlock.isLiquid() && newLegsBlock.getType() != Material.AIR) { + } else if (!this.isEarthbendable(newLegsBlock) && !newLegsBlock.isLiquid() && !ElementalAbility.isAir(newLegsBlock.getType())) { newLegsBlock.getLocation().getWorld().playSound(newLegsBlock.getLocation(), Sound.BLOCK_GRASS_BREAK, 1, 1); ParticleEffect.BLOCK_CRACK.display(newHeadBlock.getLocation(), 8, 0.5, 0.5, 0.5, newLegsBlock.getBlockData()); this.remove(); diff --git a/src/com/projectkorra/projectkorra/earthbending/EarthGrab.java b/src/com/projectkorra/projectkorra/earthbending/EarthGrab.java index 4126489b..b84c4801 100644 --- a/src/com/projectkorra/projectkorra/earthbending/EarthGrab.java +++ b/src/com/projectkorra/projectkorra/earthbending/EarthGrab.java @@ -1,40 +1,29 @@ package com.projectkorra.projectkorra.earthbending; -import java.util.Arrays; -import java.util.List; - -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.Ageable; -import org.bukkit.entity.ArmorStand; -import org.bukkit.entity.Arrow; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Item; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.entity.Skeleton; -import org.bukkit.entity.Zombie; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.LeatherArmorMeta; -import org.bukkit.metadata.FixedMetadataValue; -import org.bukkit.util.Vector; - import com.projectkorra.projectkorra.BendingPlayer; import com.projectkorra.projectkorra.Element; import com.projectkorra.projectkorra.GeneralMethods; import com.projectkorra.projectkorra.ProjectKorra; import com.projectkorra.projectkorra.ability.CoreAbility; import com.projectkorra.projectkorra.ability.EarthAbility; +import com.projectkorra.projectkorra.ability.ElementalAbility; import com.projectkorra.projectkorra.attribute.Attribute; import com.projectkorra.projectkorra.avatar.AvatarState; -import com.projectkorra.projectkorra.util.MovementHandler; -import com.projectkorra.projectkorra.util.ParticleEffect; -import com.projectkorra.projectkorra.util.TempArmor; -import com.projectkorra.projectkorra.util.TempArmorStand; -import com.projectkorra.projectkorra.util.TempBlock; +import com.projectkorra.projectkorra.util.*; +import org.bukkit.Color; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Ageable; +import org.bukkit.entity.*; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.LeatherArmorMeta; +import org.bukkit.metadata.FixedMetadataValue; +import org.bukkit.util.Vector; + +import java.util.Arrays; +import java.util.List; public class EarthGrab extends EarthAbility { @@ -220,7 +209,7 @@ public class EarthGrab extends EarthAbility { ParticleEffect.BLOCK_DUST.display(this.target.getLocation(), 36, 0.3, 0.6, 0.3, this.target.getLocation().getBlock().getRelative(BlockFace.DOWN).getBlockData()); - if (this.trap.getLocation().clone().subtract(0, 0.1, 0).getBlock().getType() != Material.AIR) { + if (!ElementalAbility.isAir(this.trap.getLocation().clone().subtract(0, 0.1, 0).getBlock().getType())) { this.trap.setGravity(false); } else { this.trap.setGravity(true); diff --git a/src/com/projectkorra/projectkorra/earthbending/EarthSmash.java b/src/com/projectkorra/projectkorra/earthbending/EarthSmash.java index 4ae6864b..c90d4e97 100644 --- a/src/com/projectkorra/projectkorra/earthbending/EarthSmash.java +++ b/src/com/projectkorra/projectkorra/earthbending/EarthSmash.java @@ -3,6 +3,7 @@ package com.projectkorra.projectkorra.earthbending; import com.projectkorra.projectkorra.BendingPlayer; import com.projectkorra.projectkorra.GeneralMethods; import com.projectkorra.projectkorra.ability.EarthAbility; +import com.projectkorra.projectkorra.ability.ElementalAbility; import com.projectkorra.projectkorra.attribute.Attribute; import com.projectkorra.projectkorra.util.ClickType; import com.projectkorra.projectkorra.util.DamageHandler; @@ -224,7 +225,7 @@ public class EarthSmash extends EarthAbility { // Check to make sure the new location is available to move to. for (final Block block : this.getBlocks()) { - if (block.getType() != Material.AIR && !this.isTransparent(block)) { + if (!ElementalAbility.isAir(block.getType()) && !this.isTransparent(block)) { this.location = oldLoc; break; } @@ -253,7 +254,7 @@ public class EarthSmash extends EarthAbility { // If an earthsmash runs into too many blocks we should remove it. int badBlocksFound = 0; for (final Block block : this.getBlocks()) { - if (block.getType() != Material.AIR && (!this.isTransparent(block) || block.getType() == Material.WATER)) { + if (!ElementalAbility.isAir(block.getType()) && (!this.isTransparent(block) || block.getType() == Material.WATER)) { badBlocksFound++; } } @@ -343,7 +344,7 @@ public class EarthSmash extends EarthAbility { // Make sure there is a clear path upward otherwise remove. for (int y = 0; y <= 3; y++) { final Block tempBlock = this.location.clone().add(0, y, 0).getBlock(); - if (!this.isTransparent(tempBlock) && tempBlock.getType() != Material.AIR) { + if (!this.isTransparent(tempBlock) && !ElementalAbility.isAir(tempBlock.getType())) { this.remove(); return; } diff --git a/src/com/projectkorra/projectkorra/earthbending/Tremorsense.java b/src/com/projectkorra/projectkorra/earthbending/Tremorsense.java index 73f91f61..cc6c5c06 100644 --- a/src/com/projectkorra/projectkorra/earthbending/Tremorsense.java +++ b/src/com/projectkorra/projectkorra/earthbending/Tremorsense.java @@ -1,8 +1,10 @@ package com.projectkorra.projectkorra.earthbending; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - +import com.projectkorra.projectkorra.BendingPlayer; +import com.projectkorra.projectkorra.GeneralMethods; +import com.projectkorra.projectkorra.ability.EarthAbility; +import com.projectkorra.projectkorra.ability.ElementalAbility; +import com.projectkorra.projectkorra.attribute.Attribute; import org.bukkit.Effect; import org.bukkit.Location; import org.bukkit.Material; @@ -11,10 +13,8 @@ import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; -import com.projectkorra.projectkorra.BendingPlayer; -import com.projectkorra.projectkorra.GeneralMethods; -import com.projectkorra.projectkorra.ability.EarthAbility; -import com.projectkorra.projectkorra.attribute.Attribute; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; public class Tremorsense extends EarthAbility { @@ -78,7 +78,7 @@ public class Tremorsense extends EarthAbility { } else if (!this.isEarthbendable(blocki) && earth) { foundAir = true; break; - } else if (!this.isEarthbendable(blocki) && !earth && blocki.getType() != Material.AIR) { + } else if (!this.isEarthbendable(blocki) && !earth && !ElementalAbility.isAir(blocki.getType())) { break; } } diff --git a/src/com/projectkorra/projectkorra/earthbending/lava/LavaSurge.java b/src/com/projectkorra/projectkorra/earthbending/lava/LavaSurge.java index 5e6454b6..2ebaed56 100644 --- a/src/com/projectkorra/projectkorra/earthbending/lava/LavaSurge.java +++ b/src/com/projectkorra/projectkorra/earthbending/lava/LavaSurge.java @@ -1,13 +1,9 @@ package com.projectkorra.projectkorra.earthbending.lava; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.ListIterator; -import java.util.Map; -import java.util.Random; -import java.util.concurrent.ConcurrentHashMap; - +import com.projectkorra.projectkorra.GeneralMethods; +import com.projectkorra.projectkorra.ability.ElementalAbility; +import com.projectkorra.projectkorra.ability.LavaAbility; +import com.projectkorra.projectkorra.util.*; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -18,13 +14,8 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.util.Vector; -import com.projectkorra.projectkorra.GeneralMethods; -import com.projectkorra.projectkorra.ability.LavaAbility; -import com.projectkorra.projectkorra.util.BlockSource; -import com.projectkorra.projectkorra.util.ClickType; -import com.projectkorra.projectkorra.util.DamageHandler; -import com.projectkorra.projectkorra.util.ParticleEffect; -import com.projectkorra.projectkorra.util.TempBlock; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; public class LavaSurge extends LavaAbility { @@ -95,7 +86,7 @@ public class LavaSurge extends LavaAbility { public boolean prepare() { final Block targetBlock = BlockSource.getEarthSourceBlock(this.player, this.prepareRange, ClickType.SHIFT_DOWN); - if (targetBlock == null || !(targetBlock.getRelative(BlockFace.UP).getType() == Material.AIR) && !isLava(targetBlock.getRelative(BlockFace.UP))) { + if (targetBlock == null || !(ElementalAbility.isAir(targetBlock.getRelative(BlockFace.UP).getType())) && !isLava(targetBlock.getRelative(BlockFace.UP))) { return false; } diff --git a/src/com/projectkorra/projectkorra/earthbending/lava/LavaSurgeWall.java b/src/com/projectkorra/projectkorra/earthbending/lava/LavaSurgeWall.java index 24aa16af..d4c4b051 100644 --- a/src/com/projectkorra/projectkorra/earthbending/lava/LavaSurgeWall.java +++ b/src/com/projectkorra/projectkorra/earthbending/lava/LavaSurgeWall.java @@ -1,18 +1,7 @@ package com.projectkorra.projectkorra.earthbending.lava; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import org.bukkit.Effect; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.util.Vector; - import com.projectkorra.projectkorra.GeneralMethods; +import com.projectkorra.projectkorra.ability.ElementalAbility; import com.projectkorra.projectkorra.ability.LavaAbility; import com.projectkorra.projectkorra.avatar.AvatarState; import com.projectkorra.projectkorra.firebending.FireBlast; @@ -20,6 +9,17 @@ import com.projectkorra.projectkorra.util.BlockSource; import com.projectkorra.projectkorra.util.BlockSource.BlockSourceType; import com.projectkorra.projectkorra.util.ClickType; import com.projectkorra.projectkorra.util.TempBlock; +import org.bukkit.Effect; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; public class LavaSurgeWall extends LavaAbility { @@ -176,7 +176,7 @@ public class LavaSurgeWall extends LavaAbility { } if (WALL_BLOCKS.containsKey(block)) { blocks.add(block); - } else if (!blocks.contains(block) && (block.getType() == Material.AIR || block.getType() == Material.FIRE || this.isLavabendable(block))) { + } else if (!blocks.contains(block) && (ElementalAbility.isAir(block.getType()) || block.getType() == Material.FIRE || this.isLavabendable(block))) { WALL_BLOCKS.put(block, this.player); this.addWallBlock(block); blocks.add(block); @@ -212,7 +212,7 @@ public class LavaSurgeWall extends LavaAbility { block = this.location.getBlock(); } - if (block.getType() != Material.AIR) { + if (!ElementalAbility.isAir(block.getType())) { this.breakBlock(); return; } else if (!this.progressing) { diff --git a/src/com/projectkorra/projectkorra/earthbending/lava/LavaSurgeWave.java b/src/com/projectkorra/projectkorra/earthbending/lava/LavaSurgeWave.java index 2261c507..1a0991a9 100644 --- a/src/com/projectkorra/projectkorra/earthbending/lava/LavaSurgeWave.java +++ b/src/com/projectkorra/projectkorra/earthbending/lava/LavaSurgeWave.java @@ -1,17 +1,5 @@ package com.projectkorra.projectkorra.earthbending.lava; -import java.util.ArrayList; -import java.util.concurrent.ConcurrentHashMap; - -import org.bukkit.Effect; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.util.Vector; - import com.projectkorra.projectkorra.GeneralMethods; import com.projectkorra.projectkorra.ability.ElementalAbility; import com.projectkorra.projectkorra.ability.LavaAbility; @@ -21,6 +9,17 @@ import com.projectkorra.projectkorra.util.BlockSource; import com.projectkorra.projectkorra.util.BlockSource.BlockSourceType; import com.projectkorra.projectkorra.util.ClickType; import com.projectkorra.projectkorra.util.TempBlock; +import org.bukkit.Effect; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; + +import java.util.ArrayList; +import java.util.concurrent.ConcurrentHashMap; public class LavaSurgeWave extends LavaAbility { @@ -165,13 +164,13 @@ public class LavaSurgeWave extends LavaAbility { final Block blockl = this.location.getBlock(); final ArrayList blocks = new ArrayList(); - if (!GeneralMethods.isRegionProtectedFromBuild(this, this.location) && (blockl.getType() == Material.AIR || blockl.getType() == Material.FIRE || ElementalAbility.isPlant(blockl) || isLava(blockl))) { + if (!GeneralMethods.isRegionProtectedFromBuild(this, this.location) && (ElementalAbility.isAir(blockl.getType()) || blockl.getType() == Material.FIRE || ElementalAbility.isPlant(blockl) || isLava(blockl))) { for (double i = 0; i <= this.radius; i += 0.5) { for (double angle = 0; angle < 360; angle += 10) { final Vector vec = GeneralMethods.getOrthogonalVector(this.targetDirection, angle, i); final Block block = this.location.clone().add(vec).getBlock(); - if (!blocks.contains(block) && (block.getType() == Material.AIR || block.getType() == Material.FIRE) || this.isLavabendable(block)) { + if (!blocks.contains(block) && (ElementalAbility.isAir(block.getType()) || block.getType() == Material.FIRE) || this.isLavabendable(block)) { blocks.add(block); FireBlast.removeFireBlastsAroundPoint(block.getLocation(), 2); } diff --git a/src/com/projectkorra/projectkorra/firebending/FireJet.java b/src/com/projectkorra/projectkorra/firebending/FireJet.java index de9ffcb7..08067a84 100644 --- a/src/com/projectkorra/projectkorra/firebending/FireJet.java +++ b/src/com/projectkorra/projectkorra/firebending/FireJet.java @@ -1,17 +1,17 @@ package com.projectkorra.projectkorra.firebending; -import java.util.Random; - +import com.projectkorra.projectkorra.ability.ElementalAbility; +import com.projectkorra.projectkorra.ability.FireAbility; +import com.projectkorra.projectkorra.airbending.AirSpout; +import com.projectkorra.projectkorra.attribute.Attribute; +import com.projectkorra.projectkorra.util.ParticleEffect; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.util.Vector; -import com.projectkorra.projectkorra.ability.FireAbility; -import com.projectkorra.projectkorra.airbending.AirSpout; -import com.projectkorra.projectkorra.attribute.Attribute; -import com.projectkorra.projectkorra.util.ParticleEffect; +import java.util.Random; public class FireJet extends FireAbility { @@ -51,14 +51,14 @@ public class FireJet extends FireAbility { this.speed = this.getDayFactor(this.speed); final Block block = player.getLocation().getBlock(); - if (BlazeArc.isIgnitable(player, block) || block.getType() == Material.AIR || block.getType() == Material.STONE_SLAB || block.getType() == Material.ACACIA_SLAB || block.getType() == Material.BIRCH_SLAB || block.getType() == Material.DARK_OAK_SLAB || block.getType() == Material.JUNGLE_SLAB || block.getType() == Material.OAK_SLAB || block.getType() == Material.SPRUCE_SLAB || this.bPlayer.isAvatarState()) { + if (BlazeArc.isIgnitable(player, block) || ElementalAbility.isAir(block.getType()) || block.getType() == Material.STONE_SLAB || block.getType() == Material.ACACIA_SLAB || block.getType() == Material.BIRCH_SLAB || block.getType() == Material.DARK_OAK_SLAB || block.getType() == Material.JUNGLE_SLAB || block.getType() == Material.OAK_SLAB || block.getType() == Material.SPRUCE_SLAB || this.bPlayer.isAvatarState()) { player.setVelocity(player.getEyeLocation().getDirection().clone().normalize().multiply(this.speed)); if (!canFireGrief()) { - if (block.getType() == Material.AIR) { + if (ElementalAbility.isAir(block.getType())) { createTempFire(block.getLocation()); } - } else if (block.getType() == Material.AIR) { + } else if (ElementalAbility.isAir(block.getType())) { block.setType(Material.FIRE); } diff --git a/src/com/projectkorra/projectkorra/firebending/combo/FireComboStream.java b/src/com/projectkorra/projectkorra/firebending/combo/FireComboStream.java index 213e818c..77c73087 100644 --- a/src/com/projectkorra/projectkorra/firebending/combo/FireComboStream.java +++ b/src/com/projectkorra/projectkorra/firebending/combo/FireComboStream.java @@ -1,17 +1,5 @@ package com.projectkorra.projectkorra.firebending.combo; -import org.bukkit.Effect; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; -import org.bukkit.util.Vector; - import com.projectkorra.projectkorra.BendingPlayer; import com.projectkorra.projectkorra.GeneralMethods; import com.projectkorra.projectkorra.ability.CoreAbility; @@ -20,6 +8,16 @@ import com.projectkorra.projectkorra.command.Commands; import com.projectkorra.projectkorra.firebending.util.FireDamageTimer; import com.projectkorra.projectkorra.util.DamageHandler; import com.projectkorra.projectkorra.util.ParticleEffect; +import org.bukkit.Effect; +import org.bukkit.Location; +import org.bukkit.Sound; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitRunnable; +import org.bukkit.util.Vector; /*** * Is only here for legacy purposes. All fire combos used to use a form of this @@ -73,7 +71,7 @@ public class FireComboStream extends BukkitRunnable { @Override public void run() { final Block block = this.location.getBlock(); - if (block.getRelative(BlockFace.UP).getType() != Material.AIR && !ElementalAbility.isPlant(block)) { + if (!ElementalAbility.isAir(block.getRelative(BlockFace.UP).getType()) && !ElementalAbility.isPlant(block)) { this.remove(); return; } diff --git a/src/com/projectkorra/projectkorra/firebending/combo/FireWheel.java b/src/com/projectkorra/projectkorra/firebending/combo/FireWheel.java index 00bbf545..0db95cca 100644 --- a/src/com/projectkorra/projectkorra/firebending/combo/FireWheel.java +++ b/src/com/projectkorra/projectkorra/firebending/combo/FireWheel.java @@ -1,17 +1,5 @@ package com.projectkorra.projectkorra.firebending.combo; -import java.util.ArrayList; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.util.Vector; - import com.projectkorra.projectkorra.GeneralMethods; import com.projectkorra.projectkorra.ability.ComboAbility; import com.projectkorra.projectkorra.ability.ElementalAbility; @@ -22,6 +10,17 @@ import com.projectkorra.projectkorra.firebending.util.FireDamageTimer; import com.projectkorra.projectkorra.util.ClickType; import com.projectkorra.projectkorra.util.DamageHandler; import com.projectkorra.projectkorra.util.ParticleEffect; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; + +import java.util.ArrayList; public class FireWheel extends FireAbility implements ComboAbility { @@ -125,7 +124,7 @@ public class FireWheel extends FireAbility implements ComboAbility { } else if (ElementalAbility.isPlant(topBlock)) { topBlock.breakNaturally(); topBlock = topBlock.getRelative(BlockFace.DOWN); - } else if (topBlock.getType() == Material.AIR) { + } else if (ElementalAbility.isAir(topBlock.getType())) { this.remove(); return; } else if (GeneralMethods.isSolid(topBlock.getRelative(BlockFace.UP)) || isWater(topBlock.getRelative(BlockFace.UP))) { diff --git a/src/com/projectkorra/projectkorra/firebending/combustion/Combustion.java b/src/com/projectkorra/projectkorra/firebending/combustion/Combustion.java index 96c79ae7..97402d75 100644 --- a/src/com/projectkorra/projectkorra/firebending/combustion/Combustion.java +++ b/src/com/projectkorra/projectkorra/firebending/combustion/Combustion.java @@ -1,22 +1,21 @@ package com.projectkorra.projectkorra.firebending.combustion; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Entity; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; -import org.bukkit.util.Vector; - import com.projectkorra.projectkorra.GeneralMethods; import com.projectkorra.projectkorra.ProjectKorra; import com.projectkorra.projectkorra.ability.AirAbility; import com.projectkorra.projectkorra.ability.CombustionAbility; +import com.projectkorra.projectkorra.ability.ElementalAbility; import com.projectkorra.projectkorra.ability.util.Collision; import com.projectkorra.projectkorra.attribute.Attribute; import com.projectkorra.projectkorra.avatar.AvatarState; import com.projectkorra.projectkorra.util.DamageHandler; import com.projectkorra.projectkorra.util.ParticleEffect; +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; public class Combustion extends CombustionAbility { @@ -146,7 +145,7 @@ public class Combustion extends CombustionAbility { final Block block = this.location.getBlock(); if (block != null) { - if (block.getType() != Material.AIR && !isWater(block)) { + if (!ElementalAbility.isAir(block.getType()) && !isWater(block)) { this.createExplosion(block.getLocation(), this.explosivePower, this.breakBlocks); } } diff --git a/src/com/projectkorra/projectkorra/util/BlockSource.java b/src/com/projectkorra/projectkorra/util/BlockSource.java index 0ed2f22e..d156313e 100644 --- a/src/com/projectkorra/projectkorra/util/BlockSource.java +++ b/src/com/projectkorra/projectkorra/util/BlockSource.java @@ -1,19 +1,17 @@ package com.projectkorra.projectkorra.util; -import java.util.HashMap; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.entity.Player; - import com.projectkorra.projectkorra.BendingPlayer; import com.projectkorra.projectkorra.ability.CoreAbility; import com.projectkorra.projectkorra.ability.EarthAbility; import com.projectkorra.projectkorra.ability.ElementalAbility; import com.projectkorra.projectkorra.ability.WaterAbility; import com.projectkorra.projectkorra.configuration.ConfigManager; +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.entity.Player; + +import java.util.HashMap; /** * BlockSource is a class that handles water and earth bending sources. When a @@ -269,7 +267,7 @@ public class BlockSource { } else { sourceBlock = WaterAbility.getWaterSourceBlock(player, range, allowPlant); } - if (sourceBlock != null && !sourceBlock.getType().equals(Material.AIR) && (ElementalAbility.isWater(sourceBlock) || ElementalAbility.isPlant(sourceBlock) || WaterAbility.isSnow(sourceBlock) || ElementalAbility.isIce(sourceBlock))) { + if (sourceBlock != null && !ElementalAbility.isAir(sourceBlock.getType()) && (ElementalAbility.isWater(sourceBlock) || ElementalAbility.isPlant(sourceBlock) || WaterAbility.isSnow(sourceBlock) || ElementalAbility.isIce(sourceBlock))) { if (TempBlock.isTempBlock(sourceBlock) && !WaterAbility.isBendableWaterTempBlock(sourceBlock)) { return null; } diff --git a/src/com/projectkorra/projectkorra/waterbending/SurgeWall.java b/src/com/projectkorra/projectkorra/waterbending/SurgeWall.java index d7da2763..f2845bbc 100644 --- a/src/com/projectkorra/projectkorra/waterbending/SurgeWall.java +++ b/src/com/projectkorra/projectkorra/waterbending/SurgeWall.java @@ -1,21 +1,8 @@ package com.projectkorra.projectkorra.waterbending; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.concurrent.ConcurrentHashMap; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.entity.Player; -import org.bukkit.util.Vector; - import com.projectkorra.projectkorra.BendingPlayer; import com.projectkorra.projectkorra.GeneralMethods; +import com.projectkorra.projectkorra.ability.ElementalAbility; import com.projectkorra.projectkorra.ability.WaterAbility; import com.projectkorra.projectkorra.attribute.Attribute; import com.projectkorra.projectkorra.firebending.FireBlast; @@ -25,6 +12,14 @@ import com.projectkorra.projectkorra.util.ParticleEffect; import com.projectkorra.projectkorra.util.TempBlock; import com.projectkorra.projectkorra.waterbending.plant.PlantRegrowth; import com.projectkorra.projectkorra.waterbending.util.WaterReturn; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; + +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; public class SurgeWall extends WaterAbility { @@ -269,7 +264,7 @@ public class SurgeWall extends WaterAbility { continue; } else if (WALL_BLOCKS.containsKey(block)) { blocks.add(block); - } else if (!blocks.contains(block) && (block.getType() == Material.AIR || block.getType() == Material.FIRE || this.isWaterbendable(block)) && this.isTransparent(block)) { + } else if (!blocks.contains(block) && (ElementalAbility.isAir(block.getType()) || block.getType() == Material.FIRE || this.isWaterbendable(block)) && this.isTransparent(block)) { WALL_BLOCKS.put(block, this.player); this.addWallBlock(block); blocks.add(block); @@ -306,7 +301,7 @@ public class SurgeWall extends WaterAbility { block = this.location.getBlock(); } - if (block.getType() != Material.AIR) { + if (!ElementalAbility.isAir(block.getType())) { this.remove(); return; } else if (!this.progressing) { diff --git a/src/com/projectkorra/projectkorra/waterbending/SurgeWave.java b/src/com/projectkorra/projectkorra/waterbending/SurgeWave.java index ab1c6a95..71ce3232 100644 --- a/src/com/projectkorra/projectkorra/waterbending/SurgeWave.java +++ b/src/com/projectkorra/projectkorra/waterbending/SurgeWave.java @@ -2,6 +2,7 @@ package com.projectkorra.projectkorra.waterbending; import com.projectkorra.projectkorra.GeneralMethods; import com.projectkorra.projectkorra.ability.AirAbility; +import com.projectkorra.projectkorra.ability.ElementalAbility; import com.projectkorra.projectkorra.ability.WaterAbility; import com.projectkorra.projectkorra.attribute.Attribute; import com.projectkorra.projectkorra.avatar.AvatarState; @@ -155,7 +156,7 @@ public class SurgeWave extends WaterAbility { } final Block oldBlock = block; - if (!isAir(block.getType()) && block.getType() != Material.SNOW && !isWater(block) && !isPlant(block)) { + if (!ElementalAbility.isAir(block.getType()) && block.getType() != Material.SNOW && !isWater(block) && !isPlant(block)) { continue; } else if (isPlant(block)) { block.breakNaturally(); @@ -285,13 +286,13 @@ public class SurgeWave extends WaterAbility { final Block blockl = this.location.getBlock(); final ArrayList blocks = new ArrayList(); - if (!GeneralMethods.isRegionProtectedFromBuild(this, this.location) && (((blockl.getType() == Material.AIR || blockl.getType() == Material.FIRE || isPlant(blockl) || isWater(blockl) || this.isWaterbendable(this.player, blockl))))) { + if (!GeneralMethods.isRegionProtectedFromBuild(this, this.location) && (((ElementalAbility.isAir(blockl.getType()) || blockl.getType() == Material.FIRE || isPlant(blockl) || isWater(blockl) || this.isWaterbendable(this.player, blockl))))) { for (double i = 0; i <= this.currentRadius; i += .5) { for (double angle = 0; angle < 360; angle += 10) { final Vector vec = GeneralMethods.getOrthogonalVector(this.targetDirection, angle, i); final Block block = this.location.clone().add(vec).getBlock(); - if (!blocks.contains(block) && (block.getType() == Material.AIR || block.getType() == Material.FIRE) || this.isWaterbendable(block)) { + if (!blocks.contains(block) && (ElementalAbility.isAir(block.getType()) || block.getType() == Material.FIRE) || this.isWaterbendable(block)) { blocks.add(block); FireBlast.removeFireBlastsAroundPoint(block.getLocation(), 2); } diff --git a/src/com/projectkorra/projectkorra/waterbending/WaterBubble.java b/src/com/projectkorra/projectkorra/waterbending/WaterBubble.java index 8d67be70..5ab7f910 100644 --- a/src/com/projectkorra/projectkorra/waterbending/WaterBubble.java +++ b/src/com/projectkorra/projectkorra/waterbending/WaterBubble.java @@ -1,12 +1,11 @@ package com.projectkorra.projectkorra.waterbending; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; - +import com.projectkorra.projectkorra.ability.CoreAbility; +import com.projectkorra.projectkorra.ability.ElementalAbility; +import com.projectkorra.projectkorra.ability.WaterAbility; +import com.projectkorra.projectkorra.attribute.Attribute; +import com.projectkorra.projectkorra.configuration.ConfigManager; +import com.projectkorra.projectkorra.util.TempBlock; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -14,11 +13,8 @@ import org.bukkit.block.BlockState; import org.bukkit.block.data.Waterlogged; import org.bukkit.entity.Player; -import com.projectkorra.projectkorra.ability.CoreAbility; -import com.projectkorra.projectkorra.ability.WaterAbility; -import com.projectkorra.projectkorra.attribute.Attribute; -import com.projectkorra.projectkorra.configuration.ConfigManager; -import com.projectkorra.projectkorra.util.TempBlock; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; public class WaterBubble extends WaterAbility { @@ -153,7 +149,7 @@ public class WaterBubble extends WaterAbility { Waterlogged logged = (Waterlogged) b.getBlockData(); logged.setWaterlogged(true); b.setBlockData(logged); - } else if (b.getType() == Material.AIR) { + } else if (ElementalAbility.isAir(b.getType())) { b.setType(this.waterOrigins.get(b).getType()); b.setBlockData(this.waterOrigins.get(b).getBlockData()); } @@ -193,7 +189,7 @@ public class WaterBubble extends WaterAbility { Waterlogged logged = (Waterlogged) b.getBlockData(); logged.setWaterlogged(true); b.setBlockData(logged); - } else if (b.getType() == Material.AIR) { + } else if (ElementalAbility.isAir(b.getType())) { b.setType(this.waterOrigins.get(b).getType()); b.setBlockData(this.waterOrigins.get(b).getBlockData()); } diff --git a/src/com/projectkorra/projectkorra/waterbending/WaterSpout.java b/src/com/projectkorra/projectkorra/waterbending/WaterSpout.java index e1d927cf..a64714a3 100644 --- a/src/com/projectkorra/projectkorra/waterbending/WaterSpout.java +++ b/src/com/projectkorra/projectkorra/waterbending/WaterSpout.java @@ -1,23 +1,23 @@ package com.projectkorra.projectkorra.waterbending; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.concurrent.ConcurrentHashMap; - +import com.projectkorra.projectkorra.GeneralMethods; +import com.projectkorra.projectkorra.ability.ElementalAbility; +import com.projectkorra.projectkorra.ability.WaterAbility; +import com.projectkorra.projectkorra.ability.util.Collision; +import com.projectkorra.projectkorra.attribute.Attribute; +import com.projectkorra.projectkorra.util.ParticleEffect; +import com.projectkorra.projectkorra.util.TempBlock; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.potion.PotionEffectType; -import com.projectkorra.projectkorra.GeneralMethods; -import com.projectkorra.projectkorra.ability.WaterAbility; -import com.projectkorra.projectkorra.ability.util.Collision; -import com.projectkorra.projectkorra.attribute.Attribute; -import com.projectkorra.projectkorra.util.ParticleEffect; -import com.projectkorra.projectkorra.util.TempBlock; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.concurrent.ConcurrentHashMap; public class WaterSpout extends WaterAbility { @@ -109,7 +109,7 @@ public class WaterSpout extends WaterAbility { loc.add(x, height, z); final Block block = loc.getBlock(); - if ((!TempBlock.isTempBlock(block)) && (block.getType().equals(Material.AIR) || !GeneralMethods.isSolid(block))) { + if ((!TempBlock.isTempBlock(block)) && (ElementalAbility.isAir(block.getType()) || !GeneralMethods.isSolid(block))) { this.blocks.add(new TempBlock(block, Material.WATER, GeneralMethods.getWaterData(7))); AFFECTED_BLOCKS.put(block, block); } @@ -291,7 +291,7 @@ public class WaterSpout extends WaterAbility { return i; } - if ((blocki.getType() != Material.AIR && (!isPlant(blocki) || !this.bPlayer.canPlantbend()))) { + if ((!ElementalAbility.isAir(blocki.getType()) && (!isPlant(blocki) || !this.bPlayer.canPlantbend()))) { this.revertBaseBlock(); return -1; } diff --git a/src/com/projectkorra/projectkorra/waterbending/WaterSpoutWave.java b/src/com/projectkorra/projectkorra/waterbending/WaterSpoutWave.java index 81027020..130f95e5 100644 --- a/src/com/projectkorra/projectkorra/waterbending/WaterSpoutWave.java +++ b/src/com/projectkorra/projectkorra/waterbending/WaterSpoutWave.java @@ -4,6 +4,7 @@ import com.projectkorra.projectkorra.Element; import com.projectkorra.projectkorra.GeneralMethods; import com.projectkorra.projectkorra.ProjectKorra; import com.projectkorra.projectkorra.ability.CoreAbility; +import com.projectkorra.projectkorra.ability.ElementalAbility; import com.projectkorra.projectkorra.ability.WaterAbility; import com.projectkorra.projectkorra.attribute.Attribute; import com.projectkorra.projectkorra.util.DamageHandler; @@ -164,7 +165,7 @@ public class WaterSpoutWave extends WaterAbility { } final Block blockAbove = block.getRelative(BlockFace.UP); - if (blockAbove.getType() != Material.AIR && !this.isWaterbendable(blockAbove)) { + if (!ElementalAbility.isAir(blockAbove.getType()) && !this.isWaterbendable(blockAbove)) { this.remove(); return; } @@ -235,7 +236,7 @@ public class WaterSpoutWave extends WaterAbility { this.location.add(0, this.animationSpeed, 0); final Block block = this.location.getBlock(); - if (!(this.isWaterbendable(block) || block.getType() == Material.AIR) || GeneralMethods.isRegionProtectedFromBuild(this, block.getLocation())) { + if (!(this.isWaterbendable(block) || ElementalAbility.isAir(block.getType()) || GeneralMethods.isRegionProtectedFromBuild(this, block.getLocation()))) { this.remove(); return; } @@ -251,7 +252,7 @@ public class WaterSpoutWave extends WaterAbility { this.location.add(vec.normalize().multiply(this.animationSpeed)); final Block block = this.location.getBlock(); - if (!(this.isWaterbendable(block) || block.getType() == Material.AIR) || GeneralMethods.isRegionProtectedFromBuild(this, block.getLocation())) { + if (!(this.isWaterbendable(block) || ElementalAbility.isAir(block.getType()) || GeneralMethods.isRegionProtectedFromBuild(this, block.getLocation()))) { this.remove(); return; } @@ -295,7 +296,7 @@ public class WaterSpoutWave extends WaterAbility { this.player.setVelocity(this.player.getEyeLocation().getDirection().normalize().multiply(currentSpeed)); for (final Block block : GeneralMethods.getBlocksAroundPoint(this.player.getLocation().add(0, -1, 0), this.waveRadius)) { - if (block.getType() == Material.AIR && !GeneralMethods.isRegionProtectedFromBuild(this, block.getLocation())) { + if (ElementalAbility.isAir(block.getType()) && !GeneralMethods.isRegionProtectedFromBuild(this, block.getLocation())) { if (this.iceWave) { this.createBlockDelay(block, Material.ICE, Material.ICE.createBlockData(), 2L); } else { @@ -343,7 +344,7 @@ public class WaterSpoutWave extends WaterAbility { dir.setY(0); final Block block = this.player.getEyeLocation().add(dir).getBlock(); this.location = block.getLocation(); - if (block.getType() == Material.AIR && !GeneralMethods.isRegionProtectedFromBuild(this, block.getLocation())) { + if (ElementalAbility.isAir(block.getType()) && !GeneralMethods.isRegionProtectedFromBuild(this, block.getLocation())) { this.createBlock(block, Material.WATER, GeneralMethods.getWaterData(0)); } } @@ -419,7 +420,7 @@ public class WaterSpoutWave extends WaterAbility { continue; } - if (block.getType() == Material.AIR || block.getType() == Material.ICE || this.isWaterbendable(block)) { + if (ElementalAbility.isAir(block.getType()) || block.getType() == Material.ICE || this.isWaterbendable(block)) { if (!FROZEN_BLOCKS.containsKey(block)) { final TempBlock tblock = new TempBlock(block, Material.ICE); FROZEN_BLOCKS.put(block, tblock); diff --git a/src/com/projectkorra/projectkorra/waterbending/combo/IceBullet.java b/src/com/projectkorra/projectkorra/waterbending/combo/IceBullet.java index 7a835f14..33fe5570 100644 --- a/src/com/projectkorra/projectkorra/waterbending/combo/IceBullet.java +++ b/src/com/projectkorra/projectkorra/waterbending/combo/IceBullet.java @@ -1,12 +1,18 @@ package com.projectkorra.projectkorra.waterbending.combo; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Enumeration; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - +import com.projectkorra.projectkorra.GeneralMethods; +import com.projectkorra.projectkorra.ProjectKorra; +import com.projectkorra.projectkorra.ability.ComboAbility; +import com.projectkorra.projectkorra.ability.CoreAbility; +import com.projectkorra.projectkorra.ability.ElementalAbility; +import com.projectkorra.projectkorra.ability.IceAbility; +import com.projectkorra.projectkorra.ability.util.Collision; +import com.projectkorra.projectkorra.ability.util.ComboManager.AbilityInformation; +import com.projectkorra.projectkorra.attribute.Attribute; +import com.projectkorra.projectkorra.avatar.AvatarState; +import com.projectkorra.projectkorra.firebending.combo.FireComboStream; +import com.projectkorra.projectkorra.util.*; +import com.projectkorra.projectkorra.waterbending.util.WaterSourceGrabber; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -17,22 +23,8 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; -import com.projectkorra.projectkorra.GeneralMethods; -import com.projectkorra.projectkorra.ProjectKorra; -import com.projectkorra.projectkorra.ability.ComboAbility; -import com.projectkorra.projectkorra.ability.CoreAbility; -import com.projectkorra.projectkorra.ability.IceAbility; -import com.projectkorra.projectkorra.ability.util.Collision; -import com.projectkorra.projectkorra.ability.util.ComboManager.AbilityInformation; -import com.projectkorra.projectkorra.attribute.Attribute; -import com.projectkorra.projectkorra.avatar.AvatarState; -import com.projectkorra.projectkorra.firebending.combo.FireComboStream; -import com.projectkorra.projectkorra.util.BlockSource; -import com.projectkorra.projectkorra.util.ClickType; -import com.projectkorra.projectkorra.util.DamageHandler; -import com.projectkorra.projectkorra.util.ParticleEffect; -import com.projectkorra.projectkorra.util.TempBlock; -import com.projectkorra.projectkorra.waterbending.util.WaterSourceGrabber; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; public class IceBullet extends IceAbility implements ComboAbility { @@ -240,7 +232,7 @@ public class IceBullet extends IceAbility implements ComboAbility { final Block block = loc.clone().add(dir).getBlock(); this.location = block.getLocation(); - if (block.getType() == Material.AIR && !GeneralMethods.isRegionProtectedFromBuild(this.player, "WaterManipulation", block.getLocation())) { + if (ElementalAbility.isAir(block.getType()) && !GeneralMethods.isRegionProtectedFromBuild(this.player, "WaterManipulation", block.getLocation())) { this.createBlock(block, mat, data); } } diff --git a/src/com/projectkorra/projectkorra/waterbending/ice/IceSpikePillar.java b/src/com/projectkorra/projectkorra/waterbending/ice/IceSpikePillar.java index ca61a818..94245dda 100644 --- a/src/com/projectkorra/projectkorra/waterbending/ice/IceSpikePillar.java +++ b/src/com/projectkorra/projectkorra/waterbending/ice/IceSpikePillar.java @@ -1,10 +1,14 @@ package com.projectkorra.projectkorra.waterbending.ice; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.Random; - +import com.projectkorra.projectkorra.GeneralMethods; +import com.projectkorra.projectkorra.ability.AirAbility; +import com.projectkorra.projectkorra.ability.ElementalAbility; +import com.projectkorra.projectkorra.ability.IceAbility; +import com.projectkorra.projectkorra.ability.WaterAbility; +import com.projectkorra.projectkorra.attribute.Attribute; +import com.projectkorra.projectkorra.util.DamageHandler; +import com.projectkorra.projectkorra.util.TempBlock; +import com.projectkorra.projectkorra.util.TempPotionEffect; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -16,14 +20,10 @@ import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.util.Vector; -import com.projectkorra.projectkorra.GeneralMethods; -import com.projectkorra.projectkorra.ability.AirAbility; -import com.projectkorra.projectkorra.ability.IceAbility; -import com.projectkorra.projectkorra.ability.WaterAbility; -import com.projectkorra.projectkorra.attribute.Attribute; -import com.projectkorra.projectkorra.util.DamageHandler; -import com.projectkorra.projectkorra.util.TempBlock; -import com.projectkorra.projectkorra.util.TempPotionEffect; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.Random; public class IceSpikePillar extends IceAbility { @@ -184,7 +184,7 @@ public class IceSpikePillar extends IceAbility { Block b; for (int i = 1; i <= this.height; i++) { b = this.source_block.getWorld().getBlockAt(this.location.clone().add(this.direction.clone().multiply(i))); - if (b.getType() != Material.AIR) { + if (!ElementalAbility.isAir(b.getType())) { return false; } diff --git a/src/com/projectkorra/projectkorra/waterbending/ice/IceSpikePillarField.java b/src/com/projectkorra/projectkorra/waterbending/ice/IceSpikePillarField.java index f35a36b0..6cb40584 100644 --- a/src/com/projectkorra/projectkorra/waterbending/ice/IceSpikePillarField.java +++ b/src/com/projectkorra/projectkorra/waterbending/ice/IceSpikePillarField.java @@ -1,9 +1,11 @@ package com.projectkorra.projectkorra.waterbending.ice; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - +import com.projectkorra.projectkorra.GeneralMethods; +import com.projectkorra.projectkorra.ability.ElementalAbility; +import com.projectkorra.projectkorra.ability.IceAbility; +import com.projectkorra.projectkorra.ability.WaterAbility; +import com.projectkorra.projectkorra.attribute.Attribute; +import com.projectkorra.projectkorra.util.TempBlock; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -13,11 +15,9 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.util.Vector; -import com.projectkorra.projectkorra.GeneralMethods; -import com.projectkorra.projectkorra.ability.IceAbility; -import com.projectkorra.projectkorra.ability.WaterAbility; -import com.projectkorra.projectkorra.attribute.Attribute; -import com.projectkorra.projectkorra.util.TempBlock; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; public class IceSpikePillarField extends IceAbility { @@ -73,7 +73,7 @@ public class IceSpikePillarField extends IceAbility { for (int y = -1; y <= 1; y++) { final Block testBlock = player.getWorld().getBlockAt(locX + x, locY + y, locZ + z); - if (((WaterAbility.isIcebendable(player, testBlock.getType(), false) && !TempBlock.isTempBlock(testBlock)) || (TempBlock.isTempBlock(testBlock) && WaterAbility.isBendableWaterTempBlock(testBlock))) && testBlock.getRelative(BlockFace.UP).getType() == Material.AIR && !(testBlock.getX() == player.getEyeLocation().getBlock().getX() && testBlock.getZ() == player.getEyeLocation().getBlock().getZ()) ) { + if (((WaterAbility.isIcebendable(player, testBlock.getType(), false) && !TempBlock.isTempBlock(testBlock)) || (TempBlock.isTempBlock(testBlock) && WaterAbility.isBendableWaterTempBlock(testBlock))) && ElementalAbility.isAir(testBlock.getRelative(BlockFace.UP).getType()) && !(testBlock.getX() == player.getEyeLocation().getBlock().getX() && testBlock.getZ() == player.getEyeLocation().getBlock().getZ()) ) { iceBlocks.add(testBlock); for (int i = 0; i < iceBlocks.size() / 2 + 1; i++) { final Random rand = new Random(); diff --git a/src/com/projectkorra/projectkorra/waterbending/ice/PhaseChange.java b/src/com/projectkorra/projectkorra/waterbending/ice/PhaseChange.java index 1a81657a..c2e0b53f 100644 --- a/src/com/projectkorra/projectkorra/waterbending/ice/PhaseChange.java +++ b/src/com/projectkorra/projectkorra/waterbending/ice/PhaseChange.java @@ -1,21 +1,7 @@ package com.projectkorra.projectkorra.waterbending.ice; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.concurrent.CopyOnWriteArrayList; - -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.type.Snow; -import org.bukkit.entity.Player; -import org.bukkit.util.Vector; - import com.projectkorra.projectkorra.GeneralMethods; +import com.projectkorra.projectkorra.ability.ElementalAbility; import com.projectkorra.projectkorra.ability.IceAbility; import com.projectkorra.projectkorra.attribute.Attribute; import com.projectkorra.projectkorra.util.TempBlock; @@ -24,6 +10,16 @@ import com.projectkorra.projectkorra.waterbending.SurgeWave; import com.projectkorra.projectkorra.waterbending.Torrent; import com.projectkorra.projectkorra.waterbending.WaterSpoutWave; import com.projectkorra.projectkorra.waterbending.multiabilities.WaterArmsSpear; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.type.Snow; +import org.bukkit.entity.Player; +import org.bukkit.util.Vector; + +import java.util.*; +import java.util.concurrent.CopyOnWriteArrayList; public class PhaseChange extends IceAbility { @@ -223,7 +219,7 @@ public class PhaseChange extends IceAbility { final Block b = l.getBlock(); loop: for (int i = 1; i <= this.depth; i++) { for (final BlockFace face : this.getBlockFacesTowardsPlayer(center)) { - if (b.getRelative(face, i).getType() == Material.AIR) { + if (ElementalAbility.isAir(b.getRelative(face, i).getType())) { blocks.add(b); break loop; } diff --git a/src/com/projectkorra/projectkorra/waterbending/multiabilities/WaterArms.java b/src/com/projectkorra/projectkorra/waterbending/multiabilities/WaterArms.java index c3b26a61..f04abf88 100644 --- a/src/com/projectkorra/projectkorra/waterbending/multiabilities/WaterArms.java +++ b/src/com/projectkorra/projectkorra/waterbending/multiabilities/WaterArms.java @@ -1,20 +1,8 @@ package com.projectkorra.projectkorra.waterbending.multiabilities; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.entity.Player; - import com.projectkorra.projectkorra.Element; import com.projectkorra.projectkorra.GeneralMethods; +import com.projectkorra.projectkorra.ability.ElementalAbility; import com.projectkorra.projectkorra.ability.FireAbility; import com.projectkorra.projectkorra.ability.WaterAbility; import com.projectkorra.projectkorra.ability.util.MultiAbilityManager; @@ -27,6 +15,18 @@ import com.projectkorra.projectkorra.util.TempBlock; import com.projectkorra.projectkorra.waterbending.multiabilities.WaterArmsWhip.Whip; import com.projectkorra.projectkorra.waterbending.plant.PlantRegrowth; import com.projectkorra.projectkorra.waterbending.util.WaterReturn; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.block.Block; +import org.bukkit.block.data.BlockData; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; public class WaterArms extends WaterAbility { @@ -210,7 +210,7 @@ public class WaterArms extends WaterAbility { } } - return isWaterbendable(block.getType()) || isIce(block) || isWater(block) || block.getType() == Material.AIR; + return isWaterbendable(block.getType()) || isIce(block) || isWater(block) || ElementalAbility.isAir(block.getType()); } /** diff --git a/src/com/projectkorra/projectkorra/waterbending/passive/HydroSink.java b/src/com/projectkorra/projectkorra/waterbending/passive/HydroSink.java index 943ea2b9..b537293a 100644 --- a/src/com/projectkorra/projectkorra/waterbending/passive/HydroSink.java +++ b/src/com/projectkorra/projectkorra/waterbending/passive/HydroSink.java @@ -29,7 +29,7 @@ public class HydroSink extends WaterAbility implements PassiveAbility { return true; } else if (WaterAbility.isWaterbendable(player, null, block) && !ElementalAbility.isPlant(block)) { return true; - } else if (fallBlock.getType() == Material.AIR) { + } else if (ElementalAbility.isAir(fallBlock.getType())) { return true; } else if ((WaterAbility.isWaterbendable(player, null, fallBlock) && !ElementalAbility.isPlant(fallBlock)) || fallBlock.getType() == Material.SNOW_BLOCK) { return true; diff --git a/src/com/projectkorra/projectkorra/waterbending/plant/PlantRegrowth.java b/src/com/projectkorra/projectkorra/waterbending/plant/PlantRegrowth.java index 96d00353..85432f0b 100644 --- a/src/com/projectkorra/projectkorra/waterbending/plant/PlantRegrowth.java +++ b/src/com/projectkorra/projectkorra/waterbending/plant/PlantRegrowth.java @@ -1,5 +1,6 @@ package com.projectkorra.projectkorra.waterbending.plant; +import com.projectkorra.projectkorra.ability.ElementalAbility; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -48,7 +49,7 @@ public class PlantRegrowth extends PlantAbility { @Override public void remove() { super.remove(); - if (this.block.getType() == Material.AIR) { + if (ElementalAbility.isAir(this.block.getType())) { this.block.setType(this.type); this.block.setBlockData(this.data); if (this.type == Material.TALL_GRASS) { diff --git a/src/com/projectkorra/projectkorra/waterbending/util/WaterSourceGrabber.java b/src/com/projectkorra/projectkorra/waterbending/util/WaterSourceGrabber.java index 4433ace6..1d919060 100644 --- a/src/com/projectkorra/projectkorra/waterbending/util/WaterSourceGrabber.java +++ b/src/com/projectkorra/projectkorra/waterbending/util/WaterSourceGrabber.java @@ -1,10 +1,9 @@ package com.projectkorra.projectkorra.waterbending.util; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - +import com.projectkorra.projectkorra.GeneralMethods; +import com.projectkorra.projectkorra.ability.ElementalAbility; +import com.projectkorra.projectkorra.ability.WaterAbility; +import com.projectkorra.projectkorra.util.TempBlock; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -12,9 +11,10 @@ import org.bukkit.block.data.BlockData; import org.bukkit.entity.Player; import org.bukkit.util.Vector; -import com.projectkorra.projectkorra.GeneralMethods; -import com.projectkorra.projectkorra.ability.WaterAbility; -import com.projectkorra.projectkorra.util.TempBlock; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; public class WaterSourceGrabber { @@ -57,7 +57,7 @@ public class WaterSourceGrabber { this.currentLoc.add(0, this.animimationSpeed * Math.signum(locDiff), 0); final Block block = this.currentLoc.getBlock(); - if (!(WaterAbility.isWaterbendable(this.player, null, block) || block.getType() == Material.AIR) || GeneralMethods.isRegionProtectedFromBuild(this.player, "WaterSpout", block.getLocation())) { + if (!(WaterAbility.isWaterbendable(this.player, null, block) || ElementalAbility.isAir(block.getType())) || GeneralMethods.isRegionProtectedFromBuild(this.player, "WaterSpout", block.getLocation())) { this.remove(); return; } @@ -74,7 +74,7 @@ public class WaterSourceGrabber { this.currentLoc.add(vec.normalize().multiply(this.animimationSpeed)); final Block block = this.currentLoc.getBlock(); - if (!(WaterAbility.isWaterbendable(this.player, null, block) || block.getType() == Material.AIR) || GeneralMethods.isRegionProtectedFromBuild(this.player, "WaterManipulation", block.getLocation())) { + if (!(WaterAbility.isWaterbendable(this.player, null, block) || ElementalAbility.isAir(block.getType())) || GeneralMethods.isRegionProtectedFromBuild(this.player, "WaterManipulation", block.getLocation())) { this.remove(); return; }