From d6c9717d258e6782ed8faeadfde78a3a37ccb67f Mon Sep 17 00:00:00 2001 From: PhanaticD Date: Sun, 20 Jan 2019 01:04:25 -0500 Subject: [PATCH] fix up metalclips --- .../projectkorra/projectkorra/PKListener.java | 8 ++++ .../earthbending/metal/MetalClips.java | 44 +++++++------------ 2 files changed, 23 insertions(+), 29 deletions(-) diff --git a/src/com/projectkorra/projectkorra/PKListener.java b/src/com/projectkorra/projectkorra/PKListener.java index e97528b0..93c597ba 100644 --- a/src/com/projectkorra/projectkorra/PKListener.java +++ b/src/com/projectkorra/projectkorra/PKListener.java @@ -1693,6 +1693,14 @@ public class PKListener implements Listener { Smokescreen.getSnowballs().remove(id); } } + @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) + public void onPickupItem(final EntityPickupItemEvent event) { + for (MetalClips metalClips : CoreAbility.getAbilities(MetalClips.class)) { + if (metalClips.getTrackedIngots().contains(event.getItem())) { + event.setCancelled(true); + } + } + } @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) public void onBlockPistonExtendEvent(final BlockPistonExtendEvent event){ diff --git a/src/com/projectkorra/projectkorra/earthbending/metal/MetalClips.java b/src/com/projectkorra/projectkorra/earthbending/metal/MetalClips.java index 8cd9e242..819fd598 100644 --- a/src/com/projectkorra/projectkorra/earthbending/metal/MetalClips.java +++ b/src/com/projectkorra/projectkorra/earthbending/metal/MetalClips.java @@ -1,28 +1,19 @@ package com.projectkorra.projectkorra.earthbending.metal; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import org.bukkit.Location; -import org.bukkit.Material; -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.util.Vector; - import com.projectkorra.projectkorra.GeneralMethods; import com.projectkorra.projectkorra.ability.CoreAbility; import com.projectkorra.projectkorra.ability.MetalAbility; import com.projectkorra.projectkorra.attribute.Attribute; import com.projectkorra.projectkorra.util.DamageHandler; import com.projectkorra.projectkorra.util.TempArmor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.*; +import org.bukkit.inventory.ItemStack; +import org.bukkit.util.Vector; + +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; public class MetalClips extends MetalAbility { @@ -232,7 +223,7 @@ public class MetalClips extends MetalAbility { dz = target.getZ() - location.getZ(); final Vector vector = new Vector(dx, dy, dz); vector.normalize(); - this.targetEntity.setVelocity(vector.multiply(this.metalClipsCount / 2).normalize()); + this.targetEntity.setVelocity(vector.multiply(this.metalClipsCount / 2D)); this.remove(); } @@ -270,7 +261,7 @@ public class MetalClips extends MetalAbility { } this.isControlling = false; this.isMagnetized = false; - if (this.metalClipsCount < 4 && this.hasSnuck && this.abilityType == 0) { + if (this.metalClipsCount > 0 && this.hasSnuck && this.abilityType == 0) { this.launch(); } } @@ -413,11 +404,11 @@ public class MetalClips extends MetalAbility { this.targetEntity.setFallDistance(0); } } - - for (int i = this.trackedIngots.size() - 1; i >= 0; i--) { - final Item ii = this.trackedIngots.get(i); + Iterator it = this.trackedIngots.iterator(); + while (it.hasNext()) { + final Item ii = it.next(); if (ii.isOnGround()) { - this.trackedIngots.remove(i); + it.remove(); continue; } @@ -466,12 +457,7 @@ public class MetalClips extends MetalAbility { } public void removeDeadIngots() { - for (int i = 0; i < this.trackedIngots.size(); i++) { - final Item ii = this.trackedIngots.get(i); - if (ii.isDead()) { - this.trackedIngots.remove(ii); - } - } + this.trackedIngots.removeIf((Item item) -> item.isDead()); } @Override