From db08dbcd801bd04c12fe19b4276d0b76d5498e43 Mon Sep 17 00:00:00 2001 From: Simp Date: Sun, 25 Nov 2018 10:08:28 -0500 Subject: [PATCH] More 1.13 bug fixes --- .../projectkorra/ProjectKorra.java | 2 +- .../projectkorra/ability/EarthAbility.java | 2 +- .../ability/util/PassiveManager.java | 2 +- .../projectkorra/chiblocking/Smokescreen.java | 4 ++-- .../projectkorra/earthbending/EarthBlast.java | 3 +++ .../projectkorra/util/TempBlock.java | 6 +++++- .../projectkorra/waterbending/SurgeWave.java | 18 +++++++++--------- 7 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/com/projectkorra/projectkorra/ProjectKorra.java b/src/com/projectkorra/projectkorra/ProjectKorra.java index 9e830d59..0009da96 100644 --- a/src/com/projectkorra/projectkorra/ProjectKorra.java +++ b/src/com/projectkorra/projectkorra/ProjectKorra.java @@ -107,7 +107,7 @@ public class ProjectKorra extends JavaPlugin { PassiveManager.registerPassives(player); GeneralMethods.removeUnusableAbilities(player.getName()); } - }, 5); + }, 30); } final Metrics metrics = new Metrics(this); diff --git a/src/com/projectkorra/projectkorra/ability/EarthAbility.java b/src/com/projectkorra/projectkorra/ability/EarthAbility.java index c2ea58e9..0510dfae 100644 --- a/src/com/projectkorra/projectkorra/ability/EarthAbility.java +++ b/src/com/projectkorra/projectkorra/ability/EarthAbility.java @@ -183,7 +183,7 @@ public abstract class EarthAbility extends ElementalAbility { final Block topblock = affectedblock.getRelative(BlockFace.UP); if (!isAir(topblock.getType())) { GeneralMethods.breakBlock(affectedblock); - } else { + } else if (!affectedblock.isLiquid() && !isAir(affectedblock.getType())){ moveEarthBlock(affectedblock, topblock); } } else { diff --git a/src/com/projectkorra/projectkorra/ability/util/PassiveManager.java b/src/com/projectkorra/projectkorra/ability/util/PassiveManager.java index 990aa7e6..84c2f869 100644 --- a/src/com/projectkorra/projectkorra/ability/util/PassiveManager.java +++ b/src/com/projectkorra/projectkorra/ability/util/PassiveManager.java @@ -44,7 +44,7 @@ public class PassiveManager { } try { - final Class clazz = PASSIVE_CLASSES.get(ability); + final Class clazz = PASSIVE_CLASSES.get((PassiveAbility) ability); final Constructor constructor = clazz.getConstructor(Player.class); final Object object = constructor.newInstance(player); ((CoreAbility) object).start(); diff --git a/src/com/projectkorra/projectkorra/chiblocking/Smokescreen.java b/src/com/projectkorra/projectkorra/chiblocking/Smokescreen.java index e94c33ec..bfa1af99 100644 --- a/src/com/projectkorra/projectkorra/chiblocking/Smokescreen.java +++ b/src/com/projectkorra/projectkorra/chiblocking/Smokescreen.java @@ -3,7 +3,6 @@ package com.projectkorra.projectkorra.chiblocking; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import org.bukkit.Effect; import org.bukkit.Location; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; @@ -15,6 +14,7 @@ import com.projectkorra.projectkorra.GeneralMethods; import com.projectkorra.projectkorra.ability.ChiAbility; import com.projectkorra.projectkorra.attribute.Attribute; import com.projectkorra.projectkorra.command.Commands; +import com.projectkorra.projectkorra.util.ParticleEffect; public class Smokescreen extends ChiAbility { @@ -55,7 +55,7 @@ public class Smokescreen extends ChiAbility { for (int i = 0; i < 125; i++) { final Location newLoc = new Location(loc.getWorld(), loc.getX() + x, loc.getY() + y, loc.getZ() + z); for (int direction = 0; direction < 8; direction++) { - loc.getWorld().playEffect(newLoc, Effect.SMOKE, direction); + ParticleEffect.SMOKE_NORMAL.display(newLoc, 4, 0.5, 0.5, 0.5); } if (z == 2) { z = -2; diff --git a/src/com/projectkorra/projectkorra/earthbending/EarthBlast.java b/src/com/projectkorra/projectkorra/earthbending/EarthBlast.java index 540c775f..3aa8ef7d 100644 --- a/src/com/projectkorra/projectkorra/earthbending/EarthBlast.java +++ b/src/com/projectkorra/projectkorra/earthbending/EarthBlast.java @@ -20,6 +20,7 @@ import com.projectkorra.projectkorra.earthbending.passive.DensityShift; import com.projectkorra.projectkorra.util.BlockSource; import com.projectkorra.projectkorra.util.ClickType; import com.projectkorra.projectkorra.util.DamageHandler; +import com.projectkorra.projectkorra.util.TempBlock; public class EarthBlast extends EarthAbility { private boolean isProgressing; @@ -156,6 +157,8 @@ public class EarthBlast extends EarthAbility { final Block block = BlockSource.getEarthSourceBlock(this.player, this.range, ClickType.SHIFT_DOWN); if (block == null || !this.isEarthbendable(block)) { return false; + } else if (TempBlock.isTempBlock(block)) { + return false; } boolean selectedABlockInUse = false; diff --git a/src/com/projectkorra/projectkorra/util/TempBlock.java b/src/com/projectkorra/projectkorra/util/TempBlock.java index 518e3819..318754cb 100644 --- a/src/com/projectkorra/projectkorra/util/TempBlock.java +++ b/src/com/projectkorra/projectkorra/util/TempBlock.java @@ -130,6 +130,10 @@ public class TempBlock { public Block getBlock() { return this.block; } + + public BlockData getBlockData() { + return this.newdata; + } public Location getLocation() { return this.block.getLocation(); @@ -176,7 +180,7 @@ public class TempBlock { } public void setType(final Material material) { - this.setType(material, this.newdata); + this.setType(material, material.createBlockData()); } public void setType(final Material material, final BlockData data) { diff --git a/src/com/projectkorra/projectkorra/waterbending/SurgeWave.java b/src/com/projectkorra/projectkorra/waterbending/SurgeWave.java index 2b05b76c..23c49e0b 100644 --- a/src/com/projectkorra/projectkorra/waterbending/SurgeWave.java +++ b/src/com/projectkorra/projectkorra/waterbending/SurgeWave.java @@ -148,23 +148,21 @@ public class SurgeWave extends WaterAbility { } for (final Block block : GeneralMethods.getBlocksAroundPoint(this.frozenLocation, freezeradius)) { - if (GeneralMethods.isRegionProtectedFromBuild(this, block.getLocation()) || GeneralMethods.isRegionProtectedFromBuild(this.player, "PhaseChange", block.getLocation())) { + if (GeneralMethods.isRegionProtectedFromBuild(this, block.getLocation())) { continue; } else if (TempBlock.isTempBlock(block)) { continue; } final Block oldBlock = block; - final TempBlock tblock = new TempBlock(block, block.getType()); - if (block.getType() == Material.AIR || block.getType() == Material.SNOW || isWater(block)) { - tblock.setType(Material.ICE); + if (!isAir(block.getType()) && block.getType() != Material.SNOW && !isWater(block) && !isPlant(block)) { + continue; } else if (isPlant(block)) { block.breakNaturally(); - tblock.setType(Material.ICE); - } else { - tblock.revertBlock(); - continue; - } + } + + final TempBlock tblock = new TempBlock(block, Material.ICE); + tblock.setRevertTask(new RevertTask() { @Override @@ -173,8 +171,10 @@ public class SurgeWave extends WaterAbility { } }); + tblock.setRevertTime(this.iceRevertTime + (new Random().nextInt(1000))); this.frozenBlocks.put(block, oldBlock.getType()); + for (final Block sound : this.frozenBlocks.keySet()) { if ((new Random()).nextInt(4) == 0) { playWaterbendingSound(sound.getLocation());