diff --git a/src/com/projectkorra/projectkorra/earthbending/LavaFlow.java b/src/com/projectkorra/projectkorra/earthbending/LavaFlow.java index 5099c21c..80a9cdb5 100644 --- a/src/com/projectkorra/projectkorra/earthbending/LavaFlow.java +++ b/src/com/projectkorra/projectkorra/earthbending/LavaFlow.java @@ -168,7 +168,7 @@ public class LavaFlow { } instances.add(this); } else if (type == AbilityType.CLICK) { - Block sourceBlock = BlockSource.getEarthOrLavaSourceBlock(player, clickRange, clickRange, ClickType.SHIFT_DOWN, false, dynamic, true, EarthMethods.canSandbend(player)); + Block sourceBlock = BlockSource.getEarthOrLavaSourceBlock(player, clickRange, clickRange, ClickType.CLICK, false, dynamic, true, EarthMethods.canSandbend(player), EarthMethods.canMetalbend(player)); if (sourceBlock == null) { remove(); return; @@ -372,7 +372,6 @@ public class LavaFlow { * * @param testBlock the block to attempt to remove */ - @SuppressWarnings("deprecation") public void removeLava(Block testBlock) { for (int i = 0; i < TEMP_LAVA_BLOCKS.size(); i++) { TempBlock tblock = TEMP_LAVA_BLOCKS.get(i); @@ -384,8 +383,8 @@ public class LavaFlow { return; } } - - TempBlock tblock = new TempBlock(testBlock, REVERT_MATERIAL, testBlock.getData()); + + TempBlock tblock = new TempBlock(testBlock, REVERT_MATERIAL, (byte) 0); affectedBlocks.add(tblock); TEMP_LAND_BLOCKS.add(tblock); } @@ -526,7 +525,10 @@ public class LavaFlow { public static boolean isEarthbendableMaterial(Material mat, Player player) { for (String s : ProjectKorra.plugin.getConfig().getStringList("Properties.Earth.EarthbendableBlocks")) if (mat == Material.getMaterial(s)) - return true; + return true; + if (ProjectKorra.plugin.getConfig().getStringList("Properties.Earth.SandBlocks").contains(mat.toString()) && EarthMethods.canSandbend(player)) { + return true; + } if (ProjectKorra.plugin.getConfig().getStringList("Properties.Earth.MetalBlocks").contains(mat.toString()) && EarthMethods.canMetalbend(player)) { return true; } diff --git a/src/com/projectkorra/projectkorra/earthbending/LavaWall.java b/src/com/projectkorra/projectkorra/earthbending/LavaWall.java index 246be03a..8596f1cf 100644 --- a/src/com/projectkorra/projectkorra/earthbending/LavaWall.java +++ b/src/com/projectkorra/projectkorra/earthbending/LavaWall.java @@ -68,7 +68,7 @@ public class LavaWall { public boolean prepare() { cancelPrevious(); - Block block = BlockSource.getEarthOrLavaSourceBlock(player, selectRange, selectRange, ClickType.LEFT_CLICK, false, dynamic, true, EarthMethods.canSandbend(player)); + Block block = BlockSource.getEarthOrLavaSourceBlock(player, selectRange, selectRange, ClickType.LEFT_CLICK, false, dynamic, true, EarthMethods.canSandbend(player), EarthMethods.canMetalbend(player)); if (block != null) { sourceblock = block; focusBlock(); diff --git a/src/com/projectkorra/projectkorra/earthbending/LavaWave.java b/src/com/projectkorra/projectkorra/earthbending/LavaWave.java index 8bd96cac..620e89a0 100644 --- a/src/com/projectkorra/projectkorra/earthbending/LavaWave.java +++ b/src/com/projectkorra/projectkorra/earthbending/LavaWave.java @@ -67,7 +67,7 @@ public class LavaWave { public boolean prepare() { cancelPrevious(); // Block block = player.getTargetBlock(null, (int) range); - Block block = BlockSource.getEarthOrLavaSourceBlock(player, selectRange, selectRange, ClickType.SHIFT_DOWN, false, dynamic, true, EarthMethods.canSandbend(player)); + Block block = BlockSource.getEarthOrLavaSourceBlock(player, selectRange, selectRange, ClickType.SHIFT_DOWN, false, dynamic, true, EarthMethods.canSandbend(player), EarthMethods.canMetalbend(player)); if (block != null) { sourceblock = block; focusBlock(); diff --git a/src/com/projectkorra/projectkorra/util/BlockSource.java b/src/com/projectkorra/projectkorra/util/BlockSource.java index 314e679c..0efddb4b 100644 --- a/src/com/projectkorra/projectkorra/util/BlockSource.java +++ b/src/com/projectkorra/projectkorra/util/BlockSource.java @@ -278,13 +278,13 @@ public class BlockSource { * either {@link ClickType}.SHIFT_DOWN or ClickType.LEFT_CLICK. * @return a valid Earth or Lava bendable block, or null if none was found. */ - public static Block getEarthOrLavaSourceBlock(Player player, int autoRange, int selectRange, ClickType clickType, boolean auto, boolean dynamic, boolean earth, boolean sand) { + public static Block getEarthOrLavaSourceBlock(Player player, int autoRange, int selectRange, ClickType clickType, boolean auto, boolean dynamic, boolean earth, boolean sand, boolean metal) { /* * When Lava is selected as a source it automatically overrides the * previous Earth based source. Only one of these types can exist, so if * Lava exists then we know Earth is null. */ - Block earthBlock = getEarthSourceBlock(player, autoRange, selectRange, clickType, auto, dynamic, earth, sand, false); + Block earthBlock = getEarthSourceBlock(player, autoRange, selectRange, clickType, auto, dynamic, earth, sand, metal); BlockSourceInformation lavaBlockInfo = getValidBlockSourceInformation(player, selectRange, BlockSourceType.LAVA, clickType); if (earthBlock != null) { return earthBlock;