mirror of
https://github.com/TotalFreedomMC/TF-ProjectKorra.git
synced 2025-02-11 03:30:10 +00:00
Fixes
This commit is contained in:
parent
a543e13acf
commit
89de7a3a36
9 changed files with 163 additions and 196 deletions
|
@ -1145,7 +1145,7 @@ public class GeneralMethods {
|
|||
}
|
||||
|
||||
public static Location getTargetedLocation(final Player player, final double range, final Material... nonOpaque2) {
|
||||
return getTargetedLocation(player, range, true, nonOpaque2);
|
||||
return getTargetedLocation(player, range, false, nonOpaque2);
|
||||
}
|
||||
|
||||
public static Location getTargetedLocation(final Player player, final int range) {
|
||||
|
|
|
@ -1357,7 +1357,7 @@ public class PKListener implements Listener {
|
|||
} else if (abil.equalsIgnoreCase("AirBurst")) {
|
||||
new AirBurst(player, false);
|
||||
} else if (abil.equalsIgnoreCase("AirSuction")) {
|
||||
AirSuction.setOrigin(player);
|
||||
new AirSuction(player);
|
||||
} else if (abil.equalsIgnoreCase("AirSwipe")) {
|
||||
new AirSwipe(player, true);
|
||||
} else if (abil.equalsIgnoreCase("AirShield")) {
|
||||
|
@ -1561,7 +1561,7 @@ public class PKListener implements Listener {
|
|||
if (abil.equalsIgnoreCase("AirBlast")) {
|
||||
new AirBlast(player);
|
||||
} else if (abil.equalsIgnoreCase("AirSuction")) {
|
||||
new AirSuction(player);
|
||||
AirSuction.shoot(player);
|
||||
} else if (abil.equalsIgnoreCase("AirBurst")) {
|
||||
AirBurst.coneBurst(player);
|
||||
} else if (abil.equalsIgnoreCase("AirScooter")) {
|
||||
|
|
|
@ -229,7 +229,7 @@ public abstract class ElementalAbility extends CoreAbility {
|
|||
}
|
||||
|
||||
public static boolean isWater(final Material material) {
|
||||
return material == Material.WATER || material == Material.SEAGRASS || material == Material.TALL_SEAGRASS || material == Material.KELP_PLANT || material == Material.KELP;
|
||||
return material == Material.WATER || material == Material.SEAGRASS || material == Material.TALL_SEAGRASS || material == Material.KELP_PLANT || material == Material.KELP || material == Material.BUBBLE_COLUMN;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
package com.projectkorra.projectkorra.airbending;
|
||||
|
||||
import com.projectkorra.projectkorra.BendingPlayer;
|
||||
import com.projectkorra.projectkorra.GeneralMethods;
|
||||
import com.projectkorra.projectkorra.ProjectKorra;
|
||||
import com.projectkorra.projectkorra.ability.AirAbility;
|
||||
import com.projectkorra.projectkorra.ability.util.Collision;
|
||||
import com.projectkorra.projectkorra.attribute.Attribute;
|
||||
import com.projectkorra.projectkorra.command.Commands;
|
||||
import com.projectkorra.projectkorra.object.HorizontalVelocityTracker;
|
||||
import com.projectkorra.projectkorra.waterbending.WaterSpout;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
|
@ -20,17 +16,21 @@ import org.bukkit.entity.Entity;
|
|||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import com.projectkorra.projectkorra.GeneralMethods;
|
||||
import com.projectkorra.projectkorra.ProjectKorra;
|
||||
import com.projectkorra.projectkorra.ability.AirAbility;
|
||||
import com.projectkorra.projectkorra.ability.CoreAbility;
|
||||
import com.projectkorra.projectkorra.ability.util.Collision;
|
||||
import com.projectkorra.projectkorra.attribute.Attribute;
|
||||
import com.projectkorra.projectkorra.command.Commands;
|
||||
import com.projectkorra.projectkorra.object.HorizontalVelocityTracker;
|
||||
import com.projectkorra.projectkorra.waterbending.WaterSpout;
|
||||
|
||||
public class AirSuction extends AirAbility {
|
||||
|
||||
private static final int MAX_TICKS = 10000;
|
||||
private static final Map<Player, Location> ORIGINS = new ConcurrentHashMap<>();
|
||||
private final List<Block> affectedDoors = new ArrayList<>();
|
||||
|
||||
private boolean hasOtherOrigin;
|
||||
private int ticks;
|
||||
|
||||
private boolean progressing;
|
||||
private int particleCount;
|
||||
@Attribute(Attribute.COOLDOWN)
|
||||
private long cooldown;
|
||||
|
@ -57,9 +57,20 @@ public class AirSuction extends AirAbility {
|
|||
} else if (hasAbility(player, AirSpout.class) || hasAbility(player, WaterSpout.class)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (hasAbility(player, AirSuction.class)) {
|
||||
AirSuction suc = getAbility(player, AirSuction.class);
|
||||
if (!suc.isProgressing()) {
|
||||
Location loc = getTargetLocation();
|
||||
|
||||
if (!GeneralMethods.isRegionProtectedFromBuild(player, this.getName(), loc)) {
|
||||
suc.setOrigin(loc);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
this.hasOtherOrigin = false;
|
||||
this.ticks = 0;
|
||||
this.progressing = false;
|
||||
this.particleCount = getConfig().getInt("Abilities.Air.AirSuction.Particles");
|
||||
this.speed = getConfig().getDouble("Abilities.Air.AirSuction.Speed");
|
||||
this.range = getConfig().getDouble("Abilities.Air.AirSuction.Range");
|
||||
|
@ -67,81 +78,21 @@ public class AirSuction extends AirAbility {
|
|||
this.pushFactor = getConfig().getDouble("Abilities.Air.AirSuction.Push");
|
||||
this.cooldown = getConfig().getLong("Abilities.Air.AirSuction.Cooldown");
|
||||
this.random = new Random();
|
||||
|
||||
if (ORIGINS.containsKey(player)) {
|
||||
this.origin = ORIGINS.get(player);
|
||||
this.hasOtherOrigin = true;
|
||||
ORIGINS.remove(player);
|
||||
} else {
|
||||
this.origin = player.getEyeLocation();
|
||||
this.origin = getTargetLocation();
|
||||
|
||||
if (GeneralMethods.isRegionProtectedFromBuild(player, this.getName(), origin)) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.location = GeneralMethods.getTargetedLocation(player, this.range, getTransparentMaterials());
|
||||
this.direction = GeneralMethods.getDirection(this.location, this.origin).normalize();
|
||||
final Entity entity = GeneralMethods.getTargetedEntity(player, this.range);
|
||||
|
||||
if (entity != null) {
|
||||
this.direction = GeneralMethods.getDirection(entity.getLocation(), this.origin).normalize();
|
||||
this.location = this.getLocation(this.origin, this.direction.clone().multiply(-1));
|
||||
}
|
||||
|
||||
this.bPlayer.addCooldown(this);
|
||||
|
||||
this.location = null;
|
||||
|
||||
if (this.bPlayer.isAvatarState()) {
|
||||
this.pushFactor = getConfig().getDouble("Abilities.Avatar.AvatarState.Air.AirSuction.Push");
|
||||
}
|
||||
|
||||
this.start();
|
||||
}
|
||||
|
||||
private static void playOriginEffect(final Player player) {
|
||||
if (!ORIGINS.containsKey(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Location origin = ORIGINS.get(player);
|
||||
final BendingPlayer bPlayer = BendingPlayer.getBendingPlayer(player);
|
||||
if (bPlayer == null || player.isDead() || !player.isOnline()) {
|
||||
return;
|
||||
} else if (!origin.getWorld().equals(player.getWorld())) {
|
||||
ORIGINS.remove(player);
|
||||
return;
|
||||
} else if (!bPlayer.canBendIgnoreCooldowns(getAbility("AirSuction"))) {
|
||||
ORIGINS.remove(player);
|
||||
return;
|
||||
} else if (origin.distanceSquared(player.getEyeLocation()) > getSelectRange() * getSelectRange()) {
|
||||
ORIGINS.remove(player);
|
||||
return;
|
||||
}
|
||||
|
||||
playAirbendingParticles(origin, getSelectParticles());
|
||||
}
|
||||
|
||||
public static void progressOrigins() {
|
||||
for (final Player player : ORIGINS.keySet()) {
|
||||
playOriginEffect(player);
|
||||
}
|
||||
}
|
||||
|
||||
public static void setOrigin(final Player player) {
|
||||
final Material[] ignore = new Material[getTransparentMaterials().length + AirBlast.DOORS.length + AirBlast.TDOORS.length];
|
||||
for (int i = 0; i < ignore.length; i++) {
|
||||
if (i < getTransparentMaterials().length) {
|
||||
ignore[i] = getTransparentMaterials()[i];
|
||||
} else if (i < getTransparentMaterials().length + AirBlast.DOORS.length){
|
||||
ignore[i] = AirBlast.DOORS[i - getTransparentMaterials().length];
|
||||
} else {
|
||||
ignore[i] = AirBlast.TDOORS[i - getTransparentMaterials().length - AirBlast.DOORS.length];
|
||||
}
|
||||
}
|
||||
final Location location = GeneralMethods.getTargetedLocation(player, getSelectRange(), false, ignore);
|
||||
if (location.getBlock().isLiquid() || GeneralMethods.isSolid(location.getBlock())) {
|
||||
return;
|
||||
} else if (GeneralMethods.isRegionProtectedFromBuild(player, "AirSuction", location)) {
|
||||
return;
|
||||
} else {
|
||||
ORIGINS.put(player, location);
|
||||
}
|
||||
}
|
||||
|
||||
private void advanceLocation() {
|
||||
playAirbendingParticles(this.location, this.particleCount, 0.275F, 0.275F, 0.275F);
|
||||
if (this.random.nextInt(4) == 0) {
|
||||
|
@ -209,91 +160,131 @@ public class AirSuction extends AirAbility {
|
|||
this.affectedDoors.add(block);
|
||||
}
|
||||
|
||||
private Location getLocation(final Location origin, final Vector direction) {
|
||||
Location location = origin.clone();
|
||||
for (double i = 1; i <= this.range; i++) {
|
||||
location = origin.clone().add(direction.clone().multiply(i));
|
||||
if ((!this.isTransparent(location.getBlock()) && !(Arrays.asList(AirBlast.DOORS).contains(location.getBlock().getType()) && Arrays.asList(AirBlast.TDOORS).contains(location.getBlock().getType()))) || GeneralMethods.isRegionProtectedFromBuild(this, location)) {
|
||||
return origin.clone().add(direction.clone().multiply(i - 1));
|
||||
private Location getTargetLocation() {
|
||||
final Material[] ignore = new Material[getTransparentMaterials().length + AirBlast.DOORS.length + AirBlast.TDOORS.length];
|
||||
|
||||
for (int i = 0; i < ignore.length; i++) {
|
||||
if (i < getTransparentMaterials().length) {
|
||||
ignore[i] = getTransparentMaterials()[i];
|
||||
} else if (i < getTransparentMaterials().length + AirBlast.DOORS.length){
|
||||
ignore[i] = AirBlast.DOORS[i - getTransparentMaterials().length];
|
||||
} else {
|
||||
ignore[i] = AirBlast.TDOORS[i - getTransparentMaterials().length - AirBlast.DOORS.length];
|
||||
}
|
||||
}
|
||||
return location;
|
||||
|
||||
return GeneralMethods.getTargetedLocation(player, getSelectRange(), ignore);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void progress() {
|
||||
if (this.player.isDead() || !this.player.isOnline()) {
|
||||
this.remove();
|
||||
return;
|
||||
} else if (GeneralMethods.isRegionProtectedFromBuild(this.player, "AirSuction", this.location)) {
|
||||
this.remove();
|
||||
this.remove();
|
||||
return;
|
||||
}
|
||||
|
||||
this.ticks++;
|
||||
if (this.ticks > MAX_TICKS) {
|
||||
this.remove();
|
||||
return;
|
||||
} else if ((this.location.distanceSquared(this.origin) > this.range * this.range) || (this.location.distanceSquared(this.origin) <= 1)) {
|
||||
this.remove();
|
||||
return;
|
||||
}
|
||||
|
||||
for (final Entity entity : GeneralMethods.getEntitiesAroundPoint(this.location, this.radius)) {
|
||||
if (entity.getEntityId() != this.player.getEntityId() || this.hasOtherOrigin) {
|
||||
if (entity instanceof Player) {
|
||||
if (GeneralMethods.isRegionProtectedFromBuild(this, entity.getLocation()) || Commands.invincible.contains(((Player) entity).getName())){
|
||||
continue;
|
||||
}
|
||||
}
|
||||
final Vector velocity = entity.getVelocity();
|
||||
final double max = this.speed;
|
||||
double factor = this.pushFactor;
|
||||
|
||||
final Vector push = this.direction.clone();
|
||||
if (Math.abs(push.getY()) > max && entity.getEntityId() != this.player.getEntityId()) {
|
||||
if (push.getY() < 0) {
|
||||
push.setY(-max);
|
||||
} else {
|
||||
push.setY(max);
|
||||
}
|
||||
}
|
||||
if (this.location.getWorld().equals(this.origin.getWorld())) {
|
||||
factor *= 1 - this.location.distance(this.origin) / (2 * this.range);
|
||||
}
|
||||
|
||||
final double comp = velocity.dot(push.clone().normalize());
|
||||
if (comp > factor) {
|
||||
velocity.multiply(.5);
|
||||
velocity.add(push.clone().normalize().multiply(velocity.clone().dot(push.clone().normalize())));
|
||||
} else if (comp + factor * .5 > factor) {
|
||||
velocity.add(push.clone().multiply(factor - comp));
|
||||
} else {
|
||||
velocity.add(push.clone().multiply(factor * .5));
|
||||
}
|
||||
|
||||
if (entity instanceof Player) {
|
||||
if (Commands.invincible.contains(((Player) entity).getName())) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
GeneralMethods.setVelocity(entity, velocity);
|
||||
new HorizontalVelocityTracker(entity, this.player, 200l, this);
|
||||
entity.setFallDistance(0);
|
||||
if (entity.getEntityId() != this.player.getEntityId() && entity instanceof Player) {
|
||||
flightHandler.createInstance((Player) entity, this.player, 5000L, this.getName());
|
||||
}
|
||||
|
||||
if (entity.getFireTicks() > 0) {
|
||||
entity.getWorld().playEffect(entity.getLocation(), Effect.EXTINGUISH, 0);
|
||||
}
|
||||
entity.setFireTicks(0);
|
||||
breakBreathbendingHold(entity);
|
||||
if (this.progressing) {
|
||||
if (GeneralMethods.isRegionProtectedFromBuild(this.player, "AirSuction", this.location)) {
|
||||
this.remove();
|
||||
return;
|
||||
} else if (this.location.distanceSquared(this.origin) > this.range * this.range || this.location.distanceSquared(this.origin) <= 1) {
|
||||
this.remove();
|
||||
return;
|
||||
}
|
||||
|
||||
for (final Entity entity : GeneralMethods.getEntitiesAroundPoint(this.location, this.radius)) {
|
||||
if (entity.getEntityId() != this.player.getEntityId()) {
|
||||
if (entity instanceof Player) {
|
||||
if (GeneralMethods.isRegionProtectedFromBuild(this, entity.getLocation()) || Commands.invincible.contains(((Player) entity).getName())){
|
||||
continue;
|
||||
}
|
||||
}
|
||||
final Vector velocity = entity.getVelocity();
|
||||
final double max = this.speed;
|
||||
final Vector push = this.direction.clone();
|
||||
double factor = this.pushFactor;
|
||||
|
||||
if (Math.abs(push.getY()) > max && entity.getEntityId() != this.player.getEntityId()) {
|
||||
if (push.getY() < 0) {
|
||||
push.setY(-max);
|
||||
} else {
|
||||
push.setY(max);
|
||||
}
|
||||
}
|
||||
|
||||
if (this.location.getWorld().equals(this.origin.getWorld())) {
|
||||
factor *= 1 - this.location.distance(this.origin) / (2 * this.range);
|
||||
}
|
||||
|
||||
final double comp = velocity.dot(push.clone().normalize());
|
||||
if (comp > factor) {
|
||||
velocity.multiply(.5);
|
||||
velocity.add(push.clone().normalize().multiply(velocity.clone().dot(push.clone().normalize())));
|
||||
} else if (comp + factor * .5 > factor) {
|
||||
velocity.add(push.clone().multiply(factor - comp));
|
||||
} else {
|
||||
velocity.add(push.clone().multiply(factor * .5));
|
||||
}
|
||||
|
||||
if (entity instanceof Player) {
|
||||
if (Commands.invincible.contains(((Player) entity).getName())) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
GeneralMethods.setVelocity(entity, velocity);
|
||||
new HorizontalVelocityTracker(entity, this.player, 200l, this);
|
||||
entity.setFallDistance(0);
|
||||
if (entity.getEntityId() != this.player.getEntityId() && entity instanceof Player) {
|
||||
flightHandler.createInstance((Player) entity, this.player, 5000L, this.getName());
|
||||
}
|
||||
|
||||
if (entity.getFireTicks() > 0) {
|
||||
entity.getWorld().playEffect(entity.getLocation(), Effect.EXTINGUISH, 0);
|
||||
}
|
||||
entity.setFireTicks(0);
|
||||
breakBreathbendingHold(entity);
|
||||
}
|
||||
}
|
||||
|
||||
this.advanceLocation();
|
||||
} else {
|
||||
playAirbendingParticles(origin, 5, 0.5, 0.5, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
public void shoot() {
|
||||
Location target;
|
||||
Entity entity = GeneralMethods.getTargetedEntity(player, this.range);
|
||||
|
||||
this.advanceLocation();
|
||||
if (entity != null) {
|
||||
target = entity.getLocation();
|
||||
} else {
|
||||
target = getTargetLocation();
|
||||
}
|
||||
|
||||
this.location = target.clone();
|
||||
this.direction = GeneralMethods.getDirection(this.location, this.origin).normalize();
|
||||
this.progressing = true;
|
||||
this.bPlayer.addCooldown(this);
|
||||
}
|
||||
|
||||
public static void shoot(Player player) {
|
||||
AirSuction suc = null;
|
||||
|
||||
if (CoreAbility.hasAbility(player, AirSuction.class)) {
|
||||
suc = CoreAbility.getAbility(player, AirSuction.class);
|
||||
if (suc.isProgressing()) {
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
suc = new AirSuction(player);
|
||||
suc.setOrigin(player.getEyeLocation().clone());
|
||||
}
|
||||
|
||||
if (suc.getOrigin() != null) {
|
||||
suc.shoot();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -344,6 +335,10 @@ public class AirSuction extends AirAbility {
|
|||
public double getCollisionRadius() {
|
||||
return this.getRadius();
|
||||
}
|
||||
|
||||
public boolean isProgressing() {
|
||||
return progressing;
|
||||
}
|
||||
|
||||
public Location getOrigin() {
|
||||
return this.origin;
|
||||
|
@ -361,22 +356,6 @@ public class AirSuction extends AirAbility {
|
|||
this.direction = direction;
|
||||
}
|
||||
|
||||
public boolean isHasOtherOrigin() {
|
||||
return this.hasOtherOrigin;
|
||||
}
|
||||
|
||||
public void setHasOtherOrigin(final boolean hasOtherOrigin) {
|
||||
this.hasOtherOrigin = hasOtherOrigin;
|
||||
}
|
||||
|
||||
public int getTicks() {
|
||||
return this.ticks;
|
||||
}
|
||||
|
||||
public void setTicks(final int ticks) {
|
||||
this.ticks = ticks;
|
||||
}
|
||||
|
||||
public int getParticleCount() {
|
||||
return this.particleCount;
|
||||
}
|
||||
|
@ -425,10 +404,6 @@ public class AirSuction extends AirAbility {
|
|||
this.cooldown = cooldown;
|
||||
}
|
||||
|
||||
public static Map<Player, Location> getOrigins() {
|
||||
return ORIGINS;
|
||||
}
|
||||
|
||||
public static int getSelectParticles() {
|
||||
return getConfig().getInt("Abilities.Air.AirSuction.SelectParticles");
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.projectkorra.projectkorra.airbending.util;
|
|||
|
||||
import com.projectkorra.projectkorra.ProjectKorra;
|
||||
import com.projectkorra.projectkorra.airbending.AirBlast;
|
||||
import com.projectkorra.projectkorra.airbending.AirSuction;
|
||||
|
||||
public class AirbendingManager implements Runnable {
|
||||
|
||||
|
@ -15,7 +14,6 @@ public class AirbendingManager implements Runnable {
|
|||
@Override
|
||||
public void run() {
|
||||
AirBlast.progressOrigins();
|
||||
AirSuction.progressOrigins();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -145,7 +145,7 @@ public class EarthBlast extends EarthAbility {
|
|||
}
|
||||
|
||||
if (target == null) {
|
||||
location = GeneralMethods.getTargetedLocation(this.player, this.range, trans);
|
||||
location = GeneralMethods.getTargetedLocation(this.player, this.range, true, trans);
|
||||
} else {
|
||||
location = ((LivingEntity) target).getEyeLocation();
|
||||
}
|
||||
|
@ -455,7 +455,6 @@ public class EarthBlast extends EarthAbility {
|
|||
if (mloc.distanceSquared(location) <= blast.range * blast.range && GeneralMethods.getDistanceFromLine(vector, location, blast.location) < blast.deflectRange && mloc.distanceSquared(location.clone().add(vector)) < mloc.distanceSquared(location.clone().add(vector.clone().multiply(-1)))) {
|
||||
blast.redirect(player, blast.getTargetLocation());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -535,7 +535,7 @@ public class EarthSmash extends EarthAbility {
|
|||
return null;
|
||||
}
|
||||
|
||||
final List<Block> blocks = GeneralMethods.getBlocksAroundPoint(GeneralMethods.getTargetedLocation(player, this.grabRange, false, getTransparentMaterials()), 1);
|
||||
final List<Block> blocks = GeneralMethods.getBlocksAroundPoint(GeneralMethods.getTargetedLocation(player, this.grabRange, getTransparentMaterials()), 1);
|
||||
for (final EarthSmash smash : getAbilities(EarthSmash.class)) {
|
||||
if (reqState == null || smash.state == reqState) {
|
||||
for (final Block block : blocks) {
|
||||
|
|
|
@ -28,7 +28,6 @@ import com.projectkorra.projectkorra.ability.FireAbility;
|
|||
import com.projectkorra.projectkorra.attribute.Attribute;
|
||||
import com.projectkorra.projectkorra.earthbending.lava.LavaFlow;
|
||||
import com.projectkorra.projectkorra.util.ParticleEffect;
|
||||
import com.projectkorra.projectkorra.util.ReflectionHandler.PackageType;
|
||||
import com.projectkorra.projectkorra.util.TempBlock;
|
||||
import com.projectkorra.projectkorra.waterbending.SurgeWave;
|
||||
import com.projectkorra.projectkorra.waterbending.Torrent;
|
||||
|
@ -221,7 +220,7 @@ public class HeatControl extends FireAbility {
|
|||
final Location targetLocation = GeneralMethods.getTargetedLocation(this.player, this.solidifyRange);
|
||||
|
||||
this.resetLocation(targetLocation);
|
||||
final List<Location> area = GeneralMethods.getCircle(this.solidifyLocation, this.solidifyRadius, 3, true, true, 0);
|
||||
final List<Location> area = GeneralMethods.getCircle(this.solidifyLocation, this.solidifyRadius, 3, false, true, 0);
|
||||
this.solidify(area);
|
||||
}
|
||||
|
||||
|
@ -363,11 +362,7 @@ public class HeatControl extends FireAbility {
|
|||
|
||||
final Block b = lava.get(this.randy.nextInt(lava.size()));
|
||||
|
||||
Material tempRevertMaterial = Material.STONE;
|
||||
|
||||
if (Integer.parseInt(PackageType.getServerVersion().split("_")[1]) > 9) {
|
||||
tempRevertMaterial = Material.valueOf("MAGMA");
|
||||
}
|
||||
Material tempRevertMaterial = Material.MAGMA_BLOCK;
|
||||
|
||||
final TempBlock tempBlock;
|
||||
if (TempBlock.isTempBlock(b)) {
|
||||
|
|
|
@ -255,7 +255,7 @@ public class IceSpikeBlast extends IceAbility {
|
|||
|
||||
final LivingEntity target = (LivingEntity) GeneralMethods.getTargetedEntity(this.player, this.range);
|
||||
if (target == null) {
|
||||
this.destination = GeneralMethods.getTargetedLocation(this.player, this.range, getTransparentMaterials());
|
||||
this.destination = GeneralMethods.getTargetedLocation(this.player, this.range, true, getTransparentMaterials());
|
||||
} else {
|
||||
this.destination = target.getEyeLocation();
|
||||
}
|
||||
|
@ -376,7 +376,7 @@ public class IceSpikeBlast extends IceAbility {
|
|||
Location loc;
|
||||
final Entity target = GeneralMethods.getTargetedEntity(player, iceSpike.range);
|
||||
if (target == null) {
|
||||
loc = GeneralMethods.getTargetedLocation(player, iceSpike.range);
|
||||
loc = GeneralMethods.getTargetedLocation(player, iceSpike.range, true);
|
||||
} else {
|
||||
loc = ((LivingEntity) target).getEyeLocation();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue