Various Fixes & Additions

Adds Plant & Ice source list to config
Removes PackedIce option (can now be set or removed through Ice list)
Fixes being able to select through walls
This commit is contained in:
OmniCypher 2016-02-26 23:57:55 -08:00
parent 9831cf3aa3
commit dcdd8efd3e
13 changed files with 199 additions and 120 deletions

View file

@ -35,7 +35,6 @@ public abstract class EarthAbility extends ElementalAbility {
private static final ConcurrentHashMap<Block, Information> MOVED_EARTH = new ConcurrentHashMap<Block, Information>();
private static final ConcurrentHashMap<Integer, Information> TEMP_AIR_LOCATIONS = new ConcurrentHashMap<Integer, Information>();
private static final ArrayList<Block> PREVENT_PHYSICS = new ArrayList<Block>();
//private static final ItemStack DIAMOND_PICKAXE = new ItemStack(Material.DIAMOND_PICKAXE);
public EarthAbility(Player player) {
super(player);
@ -70,10 +69,6 @@ public abstract class EarthAbility extends ElementalAbility {
return getTargetEarthBlock(player, range);
}
public boolean isEarthbendable(Block block) {
return isEarthbendable(player, getName(), block);
}
@Override
public boolean isExplosiveAbility() {
return false;
@ -84,6 +79,22 @@ public abstract class EarthAbility extends ElementalAbility {
return false;
}
public static boolean isEarthbendable(Material material) {
return isEarth(material) || isMetal(material) || isSand(material) || isLava(material);
}
public boolean isEarthbendable(Block block) {
return isEarthbendable(player, getName(), block);
}
public static boolean isEarthbendable(Player player, Block block) {
return isEarthbendable(player, null, block);
}
public boolean isLavabendable(Block block) {
return isLavabendable(player, block);
}
public boolean isMetalbendable(Block block) {
return isMetalbendable(block.getType());
}
@ -92,6 +103,14 @@ public abstract class EarthAbility extends ElementalAbility {
return isMetalbendable(player, material);
}
public boolean isSandbendable(Block block) {
return isSandbendable(block.getType());
}
public boolean isSandbendable(Material material) {
return isSandbendable(player, material);
}
public void moveEarth(Block block, Vector direction, int chainlength) {
moveEarth(block, direction, chainlength, true);
}
@ -267,8 +286,10 @@ public abstract class EarthAbility extends ElementalAbility {
Block testBlock = player.getTargetBlock(getTransparentMaterialSet(), (int) range);
if (bPlayer == null) {
return null;
} else if (isEarthbendable(player, testBlock) || isMetalbendable(player, testBlock.getType())) {
} else if (isEarthbendable(testBlock.getType())) {
return testBlock;
} else if (!isTransparent(player, testBlock)) {
return null;
}
Location location = player.getEyeLocation();
@ -308,7 +329,7 @@ public abstract class EarthAbility extends ElementalAbility {
if (GeneralMethods.isRegionProtectedFromBuild(player, abilityName, location)) {
continue;
}
if (isLavabendable(block)) {
if (isLavabendable(player, block)) {
if (TempBlock.isTempBlock(block)) {
TempBlock tb = TempBlock.get(block);
byte full = 0x0;
@ -381,14 +402,6 @@ public abstract class EarthAbility extends ElementalAbility {
return TEMP_AIR_LOCATIONS;
}
public static boolean isEarthbendable(Material material) {
return isEarth(material) || isMetal(material) || isSand(material);
}
public static boolean isEarthbendable(Player player, Block block) {
return isEarthbendable(player, null, block);
}
public static boolean isEarthbendable(Player player, String abilityName, Block block) {
BendingPlayer bPlayer = BendingPlayer.getBendingPlayer(player);
if (bPlayer == null || !isEarthbendable(block.getType()) || PREVENT_EARTHBENDING.contains(block)
@ -396,6 +409,10 @@ public abstract class EarthAbility extends ElementalAbility {
return false;
} else if (isMetal(block) && !bPlayer.canMetalbend()) {
return false;
} else if (isSand(block) && !bPlayer.canSandbend()) {
return false;
} else if (isLava(block) && !bPlayer.canLavabend()) {
return false;
}
return true;
}
@ -405,7 +422,7 @@ public abstract class EarthAbility extends ElementalAbility {
}
@SuppressWarnings("deprecation")
public static boolean isLavabendable(Block block) {
public static boolean isLavabendable(Player player, Block block) {
byte full = 0x0;
if (TempBlock.isTempBlock(block)) {
TempBlock tblock = TempBlock.instances.get(block);
@ -424,6 +441,11 @@ public abstract class EarthAbility extends ElementalAbility {
return bPlayer == null ? null : isMetal(material) && bPlayer.canMetalbend();
}
public static boolean isSandbendable(Player player, Material material) {
BendingPlayer bPlayer = BendingPlayer.getBendingPlayer(player);
return bPlayer == null ? null : isSand(material) && bPlayer.canSandbend();
}
@SuppressWarnings("deprecation")
public static void moveEarthBlock(Block source, Block target) {
byte full = 0x0;

View file

@ -23,7 +23,7 @@ import com.projectkorra.rpg.event.EventManager;
public abstract class ElementalAbility extends CoreAbility {
private static final Integer[] TRANSPARENT_MATERIAL = { 0, 6, 8, 9, 10, 11, 30, 31, 32, 37, 38, 39, 40, 50, 51, 59, 78, 83, 106, 175 };
private static final Integer[] PLANT_IDS = { 6, 18, 31, 37, 38, 39, 40, 59, 81, 83, 86, 99, 100, 103, 104, 105, 106, 111, 161, 175 };
//private static final Integer[] PLANT_IDS = { 6, 18, 31, 37, 38, 39, 40, 59, 81, 83, 86, 99, 100, 103, 104, 105, 106, 111, 161, 175 };
private static final PotionEffectType[] POSITIVE_EFFECTS = {PotionEffectType.ABSORPTION, PotionEffectType.DAMAGE_RESISTANCE, PotionEffectType.FAST_DIGGING,
PotionEffectType.FIRE_RESISTANCE, PotionEffectType.HEAL, PotionEffectType.HEALTH_BOOST, PotionEffectType.INCREASE_DAMAGE, PotionEffectType.JUMP,
PotionEffectType.NIGHT_VISION, PotionEffectType.REGENERATION, PotionEffectType.SATURATION, PotionEffectType.SPEED, PotionEffectType.WATER_BREATHING};
@ -84,11 +84,11 @@ public abstract class ElementalAbility extends CoreAbility {
}
public static boolean isIce(Block block) {
return isIce(block.getType());
return block != null ? isIce(block.getType()) : false;
}
public static boolean isIce(Material material) {
return material == Material.ICE || material == Material.PACKED_ICE;
return getConfig().getStringList("Properties.Water.IceBlocks").contains(material.toString());
}
public static boolean isLava(Block block) {
@ -167,14 +167,12 @@ public abstract class ElementalAbility extends CoreAbility {
return false;
}
@SuppressWarnings("deprecation")
public static boolean isPlant(Block block) {
if (block == null) {
return false;
} else if (Arrays.asList(PLANT_IDS).contains(block.getTypeId())) {
return true;
}
return false;
return block != null ? isPlant(block.getType()) : false;
}
public static boolean isPlant(Material material) {
return getConfig().getStringList("Properties.Water.PlantBlocks").contains(material.toString());
}
public static boolean isPositiveEffect(PotionEffectType effect) {

View file

@ -12,6 +12,7 @@ import com.projectkorra.projectkorra.waterbending.WaterArms;
import com.projectkorra.projectkorra.waterbending.WaterSpout;
import com.projectkorra.rpg.RPGMethods;
import org.bukkit.Bukkit;
import org.bukkit.Effect;
import org.bukkit.Location;
import org.bukkit.Material;
@ -74,12 +75,40 @@ public abstract class WaterAbility extends ElementalAbility {
return false;
}
public boolean isWaterbendable(Block block) {
return isWaterbendable(block, player);
public boolean isIcebendable(Block block) {
return isIcebendable(block.getType());
}
public static boolean canBendPackedIce() {
return getConfig().getBoolean("Properties.Water.CanBendPackedIce");
public boolean isIcebendable(Material material) {
return isIcebendable(player, material);
}
public boolean isIcebendable(Player player, Material material) {
return isIcebendable(player, material, false);
}
public boolean isPlantbendable (Block block) {
return isPlantbendable(block.getType());
}
public boolean isPlantbendable (Material material) {
return isPlantbendable(player, material);
}
public boolean isPlantbendable (Player player, Material material) {
return isPlantbendable(player, material, false);
}
public boolean isWaterbendable(Block block) {
return isWaterbendable(player, block);
}
public boolean isWaterbendable(Player player, Block block) {
return isWaterbendable(player, null, block);
}
public static boolean isWaterbendable(Material material) {
return isWater(material) || isIce(material) || isPlant(material);
}
public static Block getIceSourceBlock(Player player, double range) {
@ -90,7 +119,7 @@ public abstract class WaterAbility extends ElementalAbility {
if (GeneralMethods.isRegionProtectedFromBuild(player, "IceBlast", location)) {
continue;
}
if (isIcebendable(block)) {
if (isIcebendable(player, block.getType(), false)) {
if (TempBlock.isTempBlock(block)) {
continue;
}
@ -134,7 +163,7 @@ public abstract class WaterAbility extends ElementalAbility {
Block block = location.clone().add(vector.clone().multiply(i)).getBlock();
if (GeneralMethods.isRegionProtectedFromBuild(player, "PlantDisc", location)) {
continue;
} else if (isPlantbendable(block, onlyLeaves)) {
} else if (isPlantbendable (player, block.getType(), onlyLeaves)) {
if (TempBlock.isTempBlock(block)) {
continue;
}
@ -160,11 +189,21 @@ public abstract class WaterAbility extends ElementalAbility {
Location location = player.getEyeLocation();
Vector vector = location.getDirection().clone().normalize();
BendingPlayer bPlayer = BendingPlayer.getBendingPlayer(player);
Block testBlock = player.getTargetBlock(getTransparentMaterialSet(), (int) range);
if (bPlayer == null) {
return null;
} else if (isWaterbendable(testBlock.getType())) {
return testBlock;
} else if (!isTransparent(player, testBlock)) {
return null;
}
for (double i = 0; i <= range; i++) {
Block block = location.clone().add(vector.clone().multiply(i)).getBlock();
if (GeneralMethods.isRegionProtectedFromBuild(player, "WaterManipulation", location)) {
continue;
} else if (isWaterbendable(block, player) && (!isPlant(block) || plantbending)) {
} else if (isWaterbendable(player, null, block) && (!isPlant(block) || plantbending)) {
if (TempBlock.isTempBlock(block)) {
TempBlock tb = TempBlock.get(block);
byte full = 0x0;
@ -190,32 +229,30 @@ public abstract class WaterAbility extends ElementalAbility {
return adjacent;
}
public static boolean isIcebendable(Block block) {
return block != null ? isIcebendable(block.getType()) : false;
}
public static boolean isIcebendable(Material material) {
if (material == Material.ICE || material == Material.SNOW) {
return true;
} else if (material == Material.PACKED_ICE && canBendPackedIce()) {
return true;
public static boolean isIcebendable(Player player, Material material, boolean onlyIce) {
BendingPlayer bPlayer = BendingPlayer.getBendingPlayer(player);
if(onlyIce) {
return bPlayer == null ? null : isIce(material) && bPlayer.canIcebend() && isIce(material);
} else {
return bPlayer == null ? null : isIce(material) && bPlayer.canIcebend();
}
return false;
}
public static boolean isPlantbendable(Block block) {
return isPlantbendable(block, false);
}
public static boolean isPlantbendable(Block block, boolean leavesOnly) {
if (block.getType() == Material.LEAVES) {
return true;
} else if (block.getType() == Material.LEAVES_2) {
return true;
} else if (isPlant(block) && !leavesOnly) {
return true;
public static boolean isPlantbendable(Player player, Material material, boolean onlyLeaves) {
BendingPlayer bPlayer = BendingPlayer.getBendingPlayer(player);
if(onlyLeaves) {
return bPlayer == null ? null : isPlant(material) && bPlayer.canPlantbend() && isLeaves(material);
} else {
return bPlayer == null ? null : isPlant(material) && bPlayer.canPlantbend();
}
return false;
}
public static boolean isLeaves(Block block) {
return block != null ? isLeaves(block.getType()) : false;
}
public static boolean isLeaves(Material material) {
return material == Material.LEAVES || material == Material.LEAVES;
}
public static boolean isSnow(Block block) {
@ -227,22 +264,23 @@ public abstract class WaterAbility extends ElementalAbility {
}
@SuppressWarnings("deprecation")
public static boolean isWaterbendable(Block block, Player player) {
public static boolean isWaterbendable(Player player, String abilityName, Block block) {
byte full = 0x0;
BendingPlayer bPlayer = BendingPlayer.getBendingPlayer(player);
if (bPlayer == null || !isWaterbendable(block.getType()) || GeneralMethods.isRegionProtectedFromBuild(player, abilityName, block.getLocation())) {
return false;
}
if (TempBlock.isTempBlock(block)) {
return false;
} else if (isWater(block) && block.getData() == full) {
return true;
} else if (block.getType() == Material.ICE || block.getType() == Material.SNOW) {
return true;
} else if (block.getType() == Material.PACKED_ICE && canBendPackedIce()) {
return true;
} else if (bPlayer != null && bPlayer.canPlantbend() && isPlant(block)) {
return true;
} else if (isIce(block) && !bPlayer.canIcebend()) {
return false;
} else if (isPlant(block) && !bPlayer.canPlantbend()) {
return false;
}
return false;
return true;
}
public static void playFocusWaterEffect(Block block) {

View file

@ -1,5 +1,6 @@
package com.projectkorra.projectkorra.configuration;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import java.io.File;
@ -98,35 +99,59 @@ public class ConfigManager {
case DEFAULT:
config = defaultConfig.get();
ArrayList<String> earths = new ArrayList<String>();
earths.add("STONE");
earths.add("CLAY");
earths.add("COAL_ORE");
earths.add("DIAMOND_ORE");
earths.add("DIRT");
earths.add("GOLD_ORE");
earths.add("GRASS");
earths.add("GRAVEL");
earths.add("IRON_ORE");
earths.add("LAPIS_ORE");
earths.add("NETHERRACK");
earths.add("QUARTZ_ORE");
earths.add("REDSTONE_ORE");
earths.add("SAND");
earths.add("SANDSTONE");
earths.add("RED_SANDSTONE");
earths.add("MYCEL");
ArrayList<String> earthBlocks = new ArrayList<String>();
earthBlocks.add("DIRT");
earthBlocks.add("MYCEL");
earthBlocks.add("GRASS");
earthBlocks.add("STONE");
earthBlocks.add("GRAVEL");
earthBlocks.add("CLAY");
earthBlocks.add("COAL_ORE");
earthBlocks.add("IRON_ORE");
earthBlocks.add("GOLD_ORE");
earthBlocks.add("REDSTONE_ORE");
earthBlocks.add("LAPIS_ORE");
earthBlocks.add("DIAMOND_ORE");
earthBlocks.add("NETHERRACK");
earthBlocks.add("QUARTZ_ORE");
ArrayList<String> metals = new ArrayList<String>();
metals.add("IRON_BLOCK");
metals.add("GOLD_BLOCK");
metals.add("QUARTZ_BLOCK");
ArrayList<String> metalBlocks = new ArrayList<String>();
metalBlocks.add("IRON_BLOCK");
metalBlocks.add("GOLD_BLOCK");
metalBlocks.add("QUARTZ_BLOCK");
ArrayList<String> sands = new ArrayList<String>();
sands.add("SAND");
sands.add("SANDSTONE");
sands.add("RED_SAND");
sands.add("RED_SANDSTONE");
ArrayList<String> sandBlocks = new ArrayList<String>();
sandBlocks.add("SAND");
sandBlocks.add("SANDSTONE");
sandBlocks.add("RED_SAND");
sandBlocks.add("RED_SANDSTONE");
ArrayList<String> iceBlocks = new ArrayList<String>();
iceBlocks.add("ICE");
iceBlocks.add("PACKED_ICE");
ArrayList<String> plantBlocks = new ArrayList<String>();
plantBlocks.add("SAPLING");
plantBlocks.add("LEAVES");
plantBlocks.add("LEAVES_2");
plantBlocks.add("DEAD_BUSH");
plantBlocks.add("YELLOW_FLOWER");
plantBlocks.add("RED_ROSE");
plantBlocks.add("RED_MUSHROOM");
plantBlocks.add("BROWN_MUSHROOM");
plantBlocks.add("CACTUS");
plantBlocks.add("PUMPKIN");
plantBlocks.add("HUGE_MUSHROOM_1");
plantBlocks.add("HUGE_MUSHROOM_2");
plantBlocks.add("MELON_BLOCK");
plantBlocks.add("VINE");
plantBlocks.add("WATER_LILY");
plantBlocks.add("DOUBLE_PLANT");
plantBlocks.add("CROPS");
plantBlocks.add("LONG_GRASS");
plantBlocks.add("SUGAR_CANE_BLOCK");
plantBlocks.add("PUMPKIN_STEM");
plantBlocks.add("MELON_STEM");
config.addDefault("Properties.Chat.Enable", true);
config.addDefault("Properties.Chat.Format", "<name>: <message>");
@ -160,10 +185,6 @@ public class ConfigManager {
config.addDefault("Properties.HorizontalCollisionPhysics.WallDamageMinimumDistance", 5.0);
config.addDefault("Properties.HorizontalCollisionPhysics.WallDamageCap", 6.0);
config.addDefault("Properties.CustomItems.GrapplingHook.Enable", true);
config.addDefault("Properties.CustomItems.GrapplingHook.IronUses", 25);
config.addDefault("Properties.CustomItems.GrapplingHook.GoldUses", 50);
config.addDefault("Properties.RegionProtection.AllowHarmlessAbilities", true);
config.addDefault("Properties.RegionProtection.RespectWorldGuard", true);
config.addDefault("Properties.RegionProtection.RespectGriefPrevention", true);
@ -180,10 +201,10 @@ public class ConfigManager {
config.addDefault("Properties.Air.PlaySound", true);
config.addDefault("Properties.Water.CanBendWithWeapons", true);
config.addDefault("Properties.Water.IceBlocks", iceBlocks);
config.addDefault("Properties.Water.PlantBlocks", plantBlocks);
config.addDefault("Properties.Water.NightFactor", 1.5);
config.addDefault("Properties.Water.FullMoonFactor", 2.0);
config.addDefault("Properties.Water.CanBendPackedIce", true);
config.addDefault("Properties.Water.CanBendFromBentBlocks", false);
config.addDefault("Properties.Water.PlaySound", true);
config.addDefault("Properties.Water.NightMessage", "You feel the strength of the rising moon empowering your waterbending.");
config.addDefault("Properties.Water.DayMessage", "You feel the empowering of your waterbending subside as the moon sets.");
@ -192,9 +213,9 @@ public class ConfigManager {
config.addDefault("Properties.Earth.SafeRevert", true);
config.addDefault("Properties.Earth.RevertCheckTime", 300000);
config.addDefault("Properties.Earth.CanBendWithWeapons", true);
config.addDefault("Properties.Earth.EarthBlocks", earths);
config.addDefault("Properties.Earth.MetalBlocks", metals);
config.addDefault("Properties.Earth.SandBlocks", sands);
config.addDefault("Properties.Earth.EarthBlocks", earthBlocks);
config.addDefault("Properties.Earth.MetalBlocks", metalBlocks);
config.addDefault("Properties.Earth.SandBlocks", sandBlocks);
config.addDefault("Properties.Earth.MetalPowerFactor", 1.5);
config.addDefault("Properties.Earth.PlaySound", true);

View file

@ -288,7 +288,7 @@ public class LavaSurgeWall extends LavaAbility {
if (!hasAbility(player, LavaSurgeWall.class)) {
new LavaSurgeWave(player);
return;
} else if (isLavabendable(player.getTargetBlock((HashSet<Byte>) null, SURGE_WAVE_RANGE))) {
} else if (isLavabendable(player, player.getTargetBlock((HashSet<Byte>) null, SURGE_WAVE_RANGE))) {
new LavaSurgeWave(player);
return;
}

View file

@ -137,7 +137,7 @@ public class FireBlast extends FireAbility {
&& !safeBlocks.contains(block)
&& !GeneralMethods.isRegionProtectedFromBuild(this, block.getLocation())) {
if (canFireGrief()) {
if (WaterAbility.isPlantbendable(block)) {
if (WaterAbility.isPlantbendable(player, block.getType(), false)) {
new PlantRegrowth(player, block);
}
block.setType(Material.FIRE);

View file

@ -392,7 +392,7 @@ public class FireCombo extends FireAbility implements ComboAbility {
}
Block topBlock = GeneralMethods.getTopBlock(location, 2, -4);
if (topBlock == null || (WaterAbility.isWaterbendable(topBlock, player) && !isPlant(topBlock))) {
if (topBlock == null || (WaterAbility.isWaterbendable(player, ability, topBlock) && !isPlant(topBlock))) {
remove();
return;
} else if (topBlock.getType() == Material.FIRE || ElementalAbility.isPlant(topBlock)) {

View file

@ -62,7 +62,7 @@ public class BlockSource {
if (WaterAbility.isPlant(waterBlock)) {
putSource(player, waterBlock, BlockSourceType.PLANT, clickType);
}
if (WaterAbility.isIcebendable(waterBlock)) {
if (WaterAbility.isIce(waterBlock)) {
putSource(player, waterBlock, BlockSourceType.ICE, clickType);
}
}
@ -360,17 +360,17 @@ public class BlockSource {
return false;
} else if (Math.abs(info.getPlayer().getLocation().distance(info.getBlock().getLocation())) > range) {
return false;
} else if (info.getSourceType() == BlockSourceType.WATER && !WaterAbility.isWaterbendable(info.getBlock(), info.getPlayer())) {
} else if (info.getSourceType() == BlockSourceType.WATER && !WaterAbility.isWaterbendable(info.getPlayer(), null, info.getBlock())) {
return false;
} else if (info.getSourceType() == BlockSourceType.ICE && !WaterAbility.isIcebendable(info.getBlock())) {
} else if (info.getSourceType() == BlockSourceType.ICE && !WaterAbility.isIcebendable(info.getPlayer(), info.getBlock().getType(), false)) {
return false;
} else if (info.getSourceType() == BlockSourceType.PLANT && (!WaterAbility.isPlant(info.getBlock()) || !WaterAbility.isWaterbendable(info.getBlock(), info.getPlayer()))) {
} else if (info.getSourceType() == BlockSourceType.PLANT && (!WaterAbility.isPlant(info.getBlock()) || !WaterAbility.isWaterbendable(info.getPlayer(), null, info.getBlock()))) {
return false;
} else if (info.getSourceType() == BlockSourceType.EARTH && !EarthAbility.isEarthbendable(info.getPlayer(), info.getBlock())) {
return false;
} else if (info.getSourceType() == BlockSourceType.METAL && (!EarthAbility.isMetal(info.getBlock()) || !EarthAbility.isEarthbendable(info.getPlayer(), info.getBlock()))) {
return false;
} else if (info.getSourceType() == BlockSourceType.LAVA && (!EarthAbility.isLava(info.getBlock()) || !EarthAbility.isLavabendable(info.getBlock()))) {
} else if (info.getSourceType() == BlockSourceType.LAVA && (!EarthAbility.isLava(info.getBlock()) || !EarthAbility.isLavabendable(info.getPlayer(), info.getBlock()))) {
return false;
}
return true;

View file

@ -379,7 +379,7 @@ public class OctopusForm extends WaterAbility {
}
newBlocks.add(tblock);
}
} else if (isWaterbendable(block, player) || block.getType() == Material.FIRE || block.getType() == Material.AIR) {
} else if (isWaterbendable(player, block) || block.getType() == Material.FIRE || block.getType() == Material.AIR) {
newBlocks.add(new TempBlock(block, Material.STATIONARY_WATER, (byte) 8));
}
}

View file

@ -400,7 +400,7 @@ public class SurgeWall extends WaterAbility {
wave = new SurgeWave(player);
return;
} else {
if (isWaterbendable(player.getTargetBlock((HashSet<Material>) null, range), player)) {
if (isWaterbendable(player, null, player.getTargetBlock((HashSet<Material>) null, range))) {
wave = new SurgeWave(player);
return;
}

View file

@ -256,7 +256,7 @@ public class SurgeWave extends WaterAbility {
if (!GeneralMethods.isRegionProtectedFromBuild(this, location)
&& (((blockl.getType() == Material.AIR || blockl.getType() == Material.FIRE
|| isPlant(blockl) || isWater(blockl)
|| isWaterbendable(blockl, player)))
|| isWaterbendable(player, blockl)))
&& blockl.getType() != Material.LEAVES)) {
for (double i = 0; i <= currentRadius; i += .5) {
for (double angle = 0; angle < 360; angle += 10) {

View file

@ -21,11 +21,11 @@ public class WaterPassive {
Block fallBlock = block.getRelative(BlockFace.DOWN);
if (TempBlock.isTempBlock(fallBlock) && (fallBlock.getType().equals(Material.ICE))) {
return true;
} else if (WaterAbility.isWaterbendable(block, player) && !WaterAbility.isPlant(block)) {
} else if (WaterAbility.isWaterbendable(player, null, block) && !WaterAbility.isPlant(block)) {
return true;
} else if (fallBlock.getType() == Material.AIR) {
return true;
} else if ((WaterAbility.isWaterbendable(fallBlock, player) && !WaterAbility.isPlant(fallBlock)) || fallBlock.getType() == Material.SNOW_BLOCK) {
} else if ((WaterAbility.isWaterbendable(player, null, fallBlock) && !WaterAbility.isPlant(fallBlock)) || fallBlock.getType() == Material.SNOW_BLOCK) {
return true;
}
return false;

View file

@ -55,7 +55,7 @@ public class WaterSourceGrabber {
currentLoc.add(0, animimationSpeed * Math.signum(locDiff), 0);
Block block = currentLoc.getBlock();
if (!(WaterAbility.isWaterbendable(block, player) || block.getType() == Material.AIR)
if (!(WaterAbility.isWaterbendable(player, null, block) || block.getType() == Material.AIR)
|| GeneralMethods.isRegionProtectedFromBuild(player, "WaterSpout", block.getLocation())) {
remove();
return;
@ -73,7 +73,7 @@ public class WaterSourceGrabber {
currentLoc.add(vec.normalize().multiply(animimationSpeed));
Block block = currentLoc.getBlock();
if (!(WaterAbility.isWaterbendable(block, player) || block.getType() == Material.AIR)
if (!(WaterAbility.isWaterbendable(player, null, block) || block.getType() == Material.AIR)
|| GeneralMethods.isRegionProtectedFromBuild(player, "WaterManipulation", block.getLocation())) {
remove();
return;