fix up metalclips

This commit is contained in:
PhanaticD 2019-01-20 01:04:25 -05:00
parent ac2c8b8be3
commit d6c9717d25
2 changed files with 23 additions and 29 deletions

View file

@ -1693,6 +1693,14 @@ public class PKListener implements Listener {
Smokescreen.getSnowballs().remove(id); 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) @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onBlockPistonExtendEvent(final BlockPistonExtendEvent event){ public void onBlockPistonExtendEvent(final BlockPistonExtendEvent event){

View file

@ -1,28 +1,19 @@
package com.projectkorra.projectkorra.earthbending.metal; 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.GeneralMethods;
import com.projectkorra.projectkorra.ability.CoreAbility; import com.projectkorra.projectkorra.ability.CoreAbility;
import com.projectkorra.projectkorra.ability.MetalAbility; import com.projectkorra.projectkorra.ability.MetalAbility;
import com.projectkorra.projectkorra.attribute.Attribute; import com.projectkorra.projectkorra.attribute.Attribute;
import com.projectkorra.projectkorra.util.DamageHandler; import com.projectkorra.projectkorra.util.DamageHandler;
import com.projectkorra.projectkorra.util.TempArmor; 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 { public class MetalClips extends MetalAbility {
@ -232,7 +223,7 @@ public class MetalClips extends MetalAbility {
dz = target.getZ() - location.getZ(); dz = target.getZ() - location.getZ();
final Vector vector = new Vector(dx, dy, dz); final Vector vector = new Vector(dx, dy, dz);
vector.normalize(); vector.normalize();
this.targetEntity.setVelocity(vector.multiply(this.metalClipsCount / 2).normalize()); this.targetEntity.setVelocity(vector.multiply(this.metalClipsCount / 2D));
this.remove(); this.remove();
} }
@ -270,7 +261,7 @@ public class MetalClips extends MetalAbility {
} }
this.isControlling = false; this.isControlling = false;
this.isMagnetized = false; this.isMagnetized = false;
if (this.metalClipsCount < 4 && this.hasSnuck && this.abilityType == 0) { if (this.metalClipsCount > 0 && this.hasSnuck && this.abilityType == 0) {
this.launch(); this.launch();
} }
} }
@ -413,11 +404,11 @@ public class MetalClips extends MetalAbility {
this.targetEntity.setFallDistance(0); this.targetEntity.setFallDistance(0);
} }
} }
Iterator<Item> it = this.trackedIngots.iterator();
for (int i = this.trackedIngots.size() - 1; i >= 0; i--) { while (it.hasNext()) {
final Item ii = this.trackedIngots.get(i); final Item ii = it.next();
if (ii.isOnGround()) { if (ii.isOnGround()) {
this.trackedIngots.remove(i); it.remove();
continue; continue;
} }
@ -466,12 +457,7 @@ public class MetalClips extends MetalAbility {
} }
public void removeDeadIngots() { public void removeDeadIngots() {
for (int i = 0; i < this.trackedIngots.size(); i++) { this.trackedIngots.removeIf((Item item) -> item.isDead());
final Item ii = this.trackedIngots.get(i);
if (ii.isDead()) {
this.trackedIngots.remove(ii);
}
}
} }
@Override @Override