/** * Cancel the attack if the player reach is lowered by some types of items, or if barehanded * Note: Applies to either hands, since item is hotswap before this event for offhand weapons * @param event for the player attacking an entity */ @SubscribeEvent public void attackEntity(AttackEntityEvent event){ if(((IBattlePlayer) event.getEntityPlayer()).getSpecialActionTimer() > 0){ event.setCanceled(true); return; } double reachMod = maxReachDistance(event.getEntityPlayer()); if (reachMod < event.getEntityPlayer().getDistanceToEntity(event.getTarget())) { event.setCanceled(true); } }
@SubscribeEvent(priority = EventPriority.HIGHEST) public void onAttackEntity(AttackEntityEvent event) { if (VampirePlayer.get(event.getEntityPlayer()).getSpecialAttributes().bat || HunterPlayer.get(event.getEntityPlayer()).getSpecialAttributes().isDisguised()) { event.setCanceled(true); } if (!checkItemUsePerm(event.getEntityPlayer().getHeldItemMainhand(), event.getEntityPlayer())) { event.setCanceled(true); } }
@SubscribeEvent(priority = EventPriority.HIGH) public static void onEntityAttacked(AttackEntityEvent event) { if (!ClaimedChunks.canAttackEntity(event.getEntityPlayer(), event.getTarget())) { InvUtils.forceUpdate(event.getEntityPlayer()); event.setCanceled(true); } }
@SubscribeEvent public static void onLeftClickEntity(AttackEntityEvent event) { if (event.getTarget() instanceof EntityPainting) { ItemStack held = event.getEntityPlayer().getHeldItemMainhand(); if (held.getItem() instanceof IChiselItem) { EntityPainting painting = (EntityPainting) event.getTarget(); EnumArt[] values = EnumArt.values(); do { painting.art = values[((painting.art.ordinal() + (event.getEntityPlayer().isSneaking() ? -1 : 1)) + values.length) % values.length]; painting.updateFacingWithBoundingBox(painting.facingDirection); } while (!painting.onValidSurface()); damageItem(held, event.getEntityPlayer()); event.getEntityPlayer().world.playSound(event.getEntityPlayer(), event.getTarget().getPosition(), SoundEvents.ENTITY_PAINTING_PLACE, SoundCategory.NEUTRAL, 1, 1); event.setCanceled(true); } } }