@SubscribeEvent public void onEnderTeleport(EnderTeleportEvent event) { if (isTeleportPrevented(event.getEntity().world, event.getEntity().posX, event.getEntity().posY, event.getEntity().posZ)) { event.setCanceled(true); } if (isTeleportPrevented(event.getEntity().world, event.getTargetX(), event.getTargetY(), event.getTargetZ())) { event.setCanceled(true); } }
@SubscribeEvent public static void onEndermanTeleportEvent(EnderTeleportEvent event) { if (event.getEntity() instanceof EntityEnderman && event.getEntityLiving() .getActivePotionEffect(MobEffects.WEAKNESS) != null) { event.setCanceled(true); } }
/** * Most generic handling of EnderTeleportEvent * * @param event to handle * @return true only if the event is not cancelled */ private boolean handleTeleportEvent(EnderTeleportEvent event){ if (!MinecraftForge.EVENT_BUS.post(event)) { for (int i = 0; i < 32; ++i){ this.world.spawnParticle(EnumParticleTypes.PORTAL, event.getTargetX(), event.getTargetY() + this.rand.nextDouble() * 2.0D, event.getTargetZ(), this.rand.nextGaussian(), 0.0D, this.rand.nextGaussian()); } event.getEntity().dismountRidingEntity(); event.getEntity().setPositionAndUpdate(event.getTargetX(), event.getTargetY(), event.getTargetZ()); event.getEntity().fallDistance = 0.0F; event.getEntity().attackEntityFrom(getEnderDamage(), event.getAttackDamage()); return true; } return false; } }
@SubscribeEvent public void onEnderTeleportEvent(EnderTeleportEvent event) { if (mountedPearl) { Entity rider = event.getEntity(); if (rider != null && rider instanceof EntityPlayer && rider.getRidingEntity() != null) { EntityPlayer playerRider = (EntityPlayer) rider; Entity maybeHorse = playerRider.getRidingEntity(); //take the players horse and set its position to the target event.getEntity().getRidingEntity().setPositionAndUpdate(event.getTargetX(), event.getTargetY(), event.getTargetZ()); playerRider.getEntityData().setInteger(KEY_MOUNTENTITY, maybeHorse.getEntityId()); } } } }