@SubscribeEvent public static void onEntityUpdate(LivingEvent.LivingUpdateEvent event) if (event.getEntityLiving() instanceof EntityPlayer) EntityPlayer player = (EntityPlayer) event.getEntityLiving(); if (!player.world.isRemote) if (event.getEntityLiving().isPotionActive(RegistrarBloodMagic.WHIRLWIND)) AxisAlignedBB axisAlignedBB = new AxisAlignedBB(event.getEntityLiving().posX - 0.5, event.getEntityLiving().posY - 0.5, event.getEntityLiving().posZ - 0.5, event.getEntityLiving().posX + 0.5, event.getEntityLiving().posY + 0.5, event.getEntityLiving().posZ + 0.5).expand(d0, d0, d0); List<Entity> entityList = event.getEntityLiving().getEntityWorld().getEntitiesWithinAABB(Entity.class, axisAlignedBB); throwingEntity = ((EntityThrowable) projectile).getThrower(); if (throwingEntity != null && throwingEntity.equals(event.getEntityLiving())) continue; double delX = projectile.posX - event.getEntityLiving().posX; double delY = projectile.posY - event.getEntityLiving().posY; double delZ = projectile.posZ - event.getEntityLiving().posZ;
@SubscribeEvent public void onEntityUpdate(LivingUpdateEvent event) { if (event.getEntity() instanceof EntityPlayer) { EntityPlayer p = (EntityPlayer) event.getEntity(); ItemStack armor = p.getItemStackFromSlot(EntityEquipmentSlot.FEET); int level = 0; if (armor.isEmpty() == false && EnchantmentHelper.getEnchantments(armor) != null && EnchantmentHelper.getEnchantments(armor).containsKey(this)) { //todo: maybe any armor? level = EnchantmentHelper.getEnchantments(armor).get(this); } if (level > 0) { setLiquidWalk(p); } } }
@SubscribeEvent public void onEntityUpdate(LivingEvent.LivingUpdateEvent event) { if(!event.getEntityLiving().world.isRemote && isAnimaniaChicken(event.getEntityLiving()) && !event.getEntityLiving().isChild() && event.getEntityLiving() instanceof EntityAnimal){ ChickenEntityProperties chickenProps = EntityPropertiesHandler.INSTANCE.getProperties(event.getEntityLiving(), ChickenEntityProperties.class); if(chickenProps != null){ if(chickenProps.timeUntilNextEgg == 0 && event.getEntityLiving().ticksExisted > 30) { if (event.getEntityLiving().getRNG().nextInt(IceAndFire.CONFIG.cockatriceEggChance) == 0) { event.getEntityLiving().playSound(SoundEvents.ENTITY_CHICKEN_HURT, 2.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); event.getEntityLiving().playSound(SoundEvents.ENTITY_CHICKEN_EGG, 1.0F, (this.rand.nextFloat() - this.rand.nextFloat()) * 0.2F + 1.0F); event.getEntityLiving().dropItem(ModItems.rotten_egg, 1); FrozenEntityProperties frozenProps = EntityPropertiesHandler.INSTANCE.getProperties(event.getEntityLiving(), FrozenEntityProperties.class); if(frozenProps != null){ boolean prevFrozen = frozenProps.isFrozen; if(event.getEntityLiving() instanceof EntityIceDragon){ frozenProps.isFrozen = false; if(!event.getEntityLiving().world.isRemote) { if(frozenProps.isFrozen && event.getEntityLiving().isBurning()){ frozenProps.isFrozen = false; event.getEntityLiving().extinguish(); if (event.getEntityLiving().deathTime > 0) { frozenProps.isFrozen = false; if(frozenProps.isFrozen && !(event.getEntityLiving() instanceof EntityPlayer && ((EntityPlayer)event.getEntityLiving()).isCreative())){ event.getEntityLiving().motionX *= 0.25; event.getEntityLiving().motionZ *= 0.25; if(!(event.getEntityLiving() instanceof EntityDragon)) { event.getEntityLiving().motionY -= 0.1D;
@SubscribeEvent public void onLivingUpdate(LivingUpdateEvent event) if(event.getEntityLiving().world.isRemote) if(event.getEntityLiving() instanceof EntityPlayer) if(event.getEntityLiving().ticksExisted%20 != 0) return; // Only triggers once per second EntityPlayer player = (EntityPlayer)event.getEntityLiving(); betterquesting.api2.cache.QuestCache qc = player.getCapability(CapabilityProviderQuestCache.CAP_QUEST_CACHE, null); boolean editMode = QuestSettings.INSTANCE.getProperty(NativeProps.EDIT_MODE);
@SubscribeEvent public void updateVillagers(LivingUpdateEvent event) { EntityLivingBase entityLiving = event.getEntityLiving(); if (entityLiving instanceof EntityVillager && ReflectionHelper.timeUntilResetField != null && ReflectionHelper.lastBuyingPlayerField != null) { EntityVillager villager = (EntityVillager) entityLiving;
@SubscribeEvent public void handleArmor(LivingEvent.LivingUpdateEvent event) { EntityLivingBase entity = event.getEntityLiving(); if (!(entity instanceof EntityPlayer)) { return;
@SubscribeEvent public void livingUpdateEvent(LivingEvent.LivingUpdateEvent event){ if(event.getEntityLiving() instanceof EntityPlayer){ EntityPlayer player = (EntityPlayer)event.getEntityLiving();
@SubscribeEvent public static void onLivingUpdate(LivingUpdateEvent event) { if (!event.getEntityLiving().getEntityWorld().isRemote) { EntityLivingBase entity = event.getEntityLiving(); if (entity instanceof EntityPlayer && entity.ticksExisted % 50 == 0) //TODO: Change to an incremental counter if (event.getEntityLiving() instanceof EntityAnimal) { EntityAnimal animal = (EntityAnimal) event.getEntityLiving(); if (animal.isPotionActive(RegistrarBloodMagic.SACRIFICIAL_LAMB)) { if (!targetTaskMap.containsKey(animal)) { EntityLivingBase entity = event.getEntityLiving();
@SubscribeEvent(priority = EventPriority.HIGHEST) public static void onEntityUpdate(LivingEvent.LivingUpdateEvent event) if (event.getEntityLiving() instanceof EntityPlayer) EntityPlayer player = (EntityPlayer) event.getEntityLiving(); boolean hasAssist = false; if (event.getEntityLiving().isPotionActive(RegistrarBloodMagic.BOOST)) if (event.getEntityLiving().isPotionActive(RegistrarBloodMagic.BOOST)) int i = event.getEntityLiving().getActivePotionEffect(RegistrarBloodMagic.BOOST).getAmplifier();
@SubscribeEvent public void onPlayerUpdate(LivingUpdateEvent event) { if (event.getEntityLiving() instanceof EntityPlayer == false) { return; EntityPlayer player = (EntityPlayer) event.getEntityLiving(); World world = player.getEntityWorld(); IPlayerExtendedProperties props = CapabilityRegistry.getPlayerProperties(player);
@SideOnly(Side.CLIENT) public void updateRangeClient(LivingEvent.LivingUpdateEvent event) { EntityLivingBase entity = event.getEntityLiving(); if (entity == Minecraft.getMinecraft().player) {
@SubscribeEvent public void onLivingUpdate(LivingEvent.LivingUpdateEvent event) { if (event.getEntityLiving() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.getEntityLiving(); if (player.world.isRemote && ModKeys.dragon_change_view.isPressed()) { int currentView = IceAndFire.PROXY.getDragon3rdPersonView(); SirenEntityProperties sirenProps = EntityPropertiesHandler.INSTANCE.getProperties(event.getEntityLiving(), SirenEntityProperties.class); if (player.world.isRemote && sirenProps != null) { EntityRenderer renderer = Minecraft.getMinecraft().entityRenderer; EntitySiren siren = sirenProps.getSiren(event.getEntityLiving().world); if(siren == null){ sirenProps.isCharmed = false;
@SubscribeEvent public void onEntityUpdate(LivingUpdateEvent event) { if (fragileTorches) { Entity ent = event.getEntity(); World world = ent.getEntityWorld(); if (world.isRemote) { return; } //we only need to break block on server, it gets propogated for us if (world.rand.nextDouble() > oddsWillBreak) { return; } //no chance of breaking anyway, just stop //ok the dice roll passed if (ent instanceof EntityLiving == false) { return; } EntityLivingBase living = (EntityLivingBase) event.getEntity(); if (living == null) { return; } if (living instanceof EntityPlayer && ((EntityPlayer) living).isSneaking()) { return; } //if you are a player, then cancel if sneaking if (world.getGameRules().getBoolean("mobGriefing") == false) { return; } if (UtilWorld.isBlockTorch(world, living.getPosition())) { world.destroyBlock(living.getPosition(), true); } } }
@SubscribeEvent public void onEntityUpdate(LivingEvent.LivingUpdateEvent event) { if (event.getEntity().world.isRemote || !(event.getEntity() instanceof EntityPlayerMP)) { return; } EntityPlayerMP player = (EntityPlayerMP) event.getEntity(); List<PropertiesTracker<?>> trackers = EntityPropertiesHandler.INSTANCE.getEntityTrackers(player); if (trackers != null && trackers.size() > 0) { boolean hasPlayer = false; for (PropertiesTracker tracker : trackers) { if (hasPlayer = tracker.getEntity() == player) { break; } } if (!hasPlayer) { EntityPropertiesHandler.INSTANCE.addTracker(player, player); } for (PropertiesTracker<?> tracker : trackers) { tracker.updateTracker(); if (tracker.isTrackerReady()) { tracker.onSync(); PropertiesMessage message = new PropertiesMessage(tracker.getProperties(), tracker.getEntity()); LLibrary.NETWORK_WRAPPER.sendTo(message, player); } } } }
/** * Sends a JumpValueChangePacket to the server from the client whenever an entity's clientside isJumping value * changes. The rationale behind this is that isJumping is only set on the server when the entity is riding * another entity (minecart, horse, etc), and it is different than simply subscribing to LivingJumpEvent because * isJumping is true when the player has already jumped but is still holding the key, whereas LivingJumpEvent is * fired once per physical jump. It is probably a good idea to think of isJumping as isJumpKeybindDown. */ @SubscribeEvent public void sendPlayerInputPacketToServer(LivingEvent.LivingUpdateEvent event) { EntityLivingBase elb = event.getEntityLiving(); if (elb.world.isRemote) { boolean isJumping; try { isJumping = ReflectionHelper.getIsEntityJumping(elb); } catch (IllegalAccessException e) { e.printStackTrace(); return; } UUID id = elb.getUniqueID(); if (!prevIsJumping.containsKey(id) || prevIsJumping.get(id) != isJumping) { prevIsJumping.put(id, isJumping); EsteemedInnovation.channel.sendToServer(new JumpValueChangePacket(isJumping)); } } }
@SubscribeEvent public void onEntityUpdate(LivingUpdateEvent event) { //check if NOT holding this harm if (event.getEntityLiving() instanceof EntityPlayer == false) { return; } EntityPlayer player = (EntityPlayer) event.getEntityLiving(); //Ticking ItemStack armor = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST); int level = 0; if (armor.isEmpty() == false && EnchantmentHelper.getEnchantments(armor) != null && EnchantmentHelper.getEnchantments(armor).containsKey(this)) { //todo: maybe any armor? level = EnchantmentHelper.getEnchantments(armor).get(this); } if (level > 0) { turnReachOn(player); } else { //was it on before, do we need to do an off hit if (player.getEntityData().hasKey(NBT_REACH_ON) && player.getEntityData().getBoolean(NBT_REACH_ON)) { turnReachOff(player); } } } }
@SubscribeEvent public void entityUpdate(LivingUpdateEvent event) { if(event.getEntity() instanceof EntityZombie && !(event.getEntity() instanceof EntityHusk)) { EntityZombie zombie = (EntityZombie) event.getEntity(); if(zombie.getEntityWorld().isDaytime() && !zombie.getEntityWorld().isRemote && zombie.isChild()) { float f = zombie.getBrightness(); BlockPos blockpos = zombie.getRidingEntity() instanceof EntityBoat ? new BlockPos(zombie.posX, Math.round(zombie.posY), zombie.posZ).up() : new BlockPos(zombie.posX, Math.round(zombie.posY), zombie.posZ); if(f > 0.5F && zombie.getEntityWorld().rand.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && zombie.getEntityWorld().canSeeSky(blockpos)) { boolean flag = true; ItemStack itemstack = zombie.getItemStackFromSlot(EntityEquipmentSlot.HEAD); if(!itemstack.isEmpty()) { if(itemstack.isItemStackDamageable()) { itemstack.setItemDamage(itemstack.getItemDamage() + zombie.getEntityWorld().rand.nextInt(2)); if(itemstack.getItemDamage() >= itemstack.getMaxDamage()) { zombie.renderBrokenItemStack(itemstack); zombie.setItemStackToSlot(EntityEquipmentSlot.HEAD, ItemStack.EMPTY); } } flag = false; } if(flag) zombie.setFire(8); } } } }
@SubscribeEvent public void onEntityUpdate(LivingUpdateEvent event) { if (event.getEntityLiving() instanceof EntityPlayer) {//some of the items need an off switch EntityPlayer player = (EntityPlayer) event.getEntityLiving(); final IPlayerExtendedProperties data = CapabilityRegistry.getPlayerProperties(player); if (data.isStepHeightOn()) { if (player.isSneaking()) { //make sure that, when sneaking, dont fall off!! player.stepHeight = 0.9F; } else { player.stepHeight = 1.0F + (1F / 16F);//PATH BLOCKS etc are 1/16th downif MY feature turns this on, then do it } } else if (data.doForceStepOff()) { data.setForceStepOff(false); //otherwise, dont automatically force it off. only force it off the once if player is toggling FROM on TO off with my feature // EntityLivingBase default constructor uses 0.6 as default, so slabs + path block for example player.stepHeight = 0.6F; } //else leave it alone (allows other mods to turn it on without me disrupting) } }
@SubscribeEvent public void onPlayerUpdate(LivingUpdateEvent event) { if (event.getEntityLiving() instanceof EntityPlayer == false) { return; } EntityPlayer player = (EntityPlayer) event.getEntityLiving(); IPlayerExtendedProperties props = CapabilityRegistry.getPlayerProperties(player); int flyingTicks = props.getFlyingTimer();//TICKS NOT SECONDS if (flyingTicks > 1) {//it decays at 1 not zero so that we only set flying False once, not constantly. avoids having boolean flag setFlying(player); //if you are flying but not using it (grounded) dont tick. //this pauses the timer //player.onGround == false || if (!player.onGround || player.world.getBlockState(player.getPosition().down()).getBlock() == Blocks.AIR) { props.setFlyingTimer(props.getFlyingTimer() - 1); } } else if (flyingTicks == 1) { //times up! only 1/20 of a second left props.setFlyingTimer(0);//skip ahead to zero setNonFlying(player); } //else it is zero. so this is the same as null/undefined/ so player has never eaten or it wore off. }
@SubscribeEvent public static void skipTick(LivingEvent.LivingUpdateEvent event) { if (event.getEntity().getEntityData().hasKey("skip_tick") && event.getEntity().getEntityData().hasKey("skip_tick_interval") && event.getEntity().getEntityData().hasKey("skip_tick_interval_save")) { int tickCountdown = event.getEntity().getEntityData().getInteger("skip_tick"); int tickInterval = event.getEntity().getEntityData().getInteger("skip_tick_interval"); if (tickInterval <= 0) { event.getEntity().getEntityData().setInteger("skip_tick_interval", event.getEntity().getEntityData().getInteger("skip_tick_interval_save")); if (tickCountdown <= 0) { event.getEntity().getEntityData().removeTag("skip_tick"); event.getEntity().getEntityData().removeTag("skip_tick_interval"); event.getEntity().getEntityData().removeTag("skip_tick_interval_save"); } else { event.getEntity().getEntityData().setInteger("skip_tick", --tickCountdown); event.setCanceled(true); } } else { event.getEntity().getEntityData().setInteger("skip_tick_interval", --tickInterval); } } }