package wayoftime.bloodmagic.common.item.sigil; import java.util.List; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.potion.EffectInstance; import net.minecraft.potion.Effects; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import wayoftime.bloodmagic.util.DamageSourceBloodMagic; import wayoftime.bloodmagic.util.helper.PlayerHelper; public class ItemSigilFastMiner extends ItemSigilToggleableBase { public ItemSigilFastMiner() { super("fast_miner", 100); } @Override public void onSigilUpdate(ItemStack stack, World world, PlayerEntity player, int itemSlot, boolean isSelected) { if (PlayerHelper.isFakePlayer(player)) return; player.addPotionEffect(new EffectInstance(Effects.HASTE, 2, 0, true, false)); } @Override public boolean performArrayEffect(World world, BlockPos pos) { double radius = 10; int ticks = 600; int potionPotency = 2; AxisAlignedBB bb = new AxisAlignedBB(pos).grow(radius); List<PlayerEntity> playerList = world.getEntitiesWithinAABB(PlayerEntity.class, bb); for (PlayerEntity player : playerList) { if (!player.isPotionActive(Effects.HASTE) || (player.isPotionActive(Effects.HASTE) && player.getActivePotionEffect(Effects.HASTE).getAmplifier() < potionPotency)) { player.addPotionEffect(new EffectInstance(Effects.HASTE, ticks, potionPotency)); if (!player.isCreative()) { player.hurtResistantTime = 0; player.attackEntityFrom(DamageSourceBloodMagic.INSTANCE, 1.0F); } } } return false; } @Override public boolean hasArrayEffect() { return true; } }