@SubscribeEvent public void onEntityKill(LivingDeathEvent event) { Entity killer = event.getSource().getTrueSource(); if(killer != null && killer instanceof EntityLivingBase) { EntityLivingBase living = (EntityLivingBase) killer; if(hasEffect(living)) living.heal(event.getEntityLiving().getMaxHealth() / 20); } }
@SubscribeEvent public void onEntityDeath(LivingDeathEvent deathEvent) { if (deathEvent.getSource() != null && deathEvent.getSource().getTrueSource() instanceof EntityPlayer) { OverdriveExtendedProperties extendedProperties = MOPlayerCapabilityProvider.GetExtendedCapability(deathEvent.getSource().getTrueSource()); extendedProperties.onEvent(deathEvent); } }
@SubscribeEvent public void entityDeathEvent(LivingDeathEvent event) { if (event.getSource() instanceof AbstractOMTDamageSource) { ((AbstractOMTDamageSource) event.getSource()).getBase().increaseKillCounter(); if (event.getEntity() instanceof EntityPlayer) { ((AbstractOMTDamageSource) event.getSource()).getBase().increasePlayerKillCounter(); } } }
public static EntityPlayer getKiller(LivingDeathEvent event) { if (event.getEntityLiving() != null && !event.getEntityLiving().getEntityWorld().isRemote && event.getSource() != null) { if (event.getSource().getTrueSource() != null && event.getSource().getTrueSource() instanceof EntityPlayer) { return (EntityPlayer) event.getSource().getTrueSource(); } else if (event.getEntityLiving().getCommandSenderEntity() instanceof EntityPlayer) { return (EntityPlayer) event.getEntityLiving().getCommandSenderEntity(); } } return null; }
@SubscribeEvent public static void onEntityAttacked(LivingDeathEvent event) { if (event.getSource() instanceof EntityDamageSourceIndirect) { Entity sourceEntity = event.getSource().getImmediateSource(); if (sourceEntity instanceof EntitySentientArrow) { ((EntitySentientArrow) sourceEntity).reimbursePlayer(event.getEntityLiving(), event.getEntityLiving().getMaxHealth()); } } }
@SubscribeEvent public void onLivingKill(LivingDeathEvent event) { if (event.getSource().getTrueSource() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource(); Entity target = event.getEntity(); if (player.isPotionActive(this) && target instanceof EntityEnderman) { World world = player.getEntityWorld(); int randMore = world.rand.nextInt(5) + 1;// range[1,5] world.spawnEntity(new EntityXPOrb(world, target.posX, target.posY, target.posZ, randMore)); } } } }
@SubscribeEvent public void onEntityKill(LivingDeathEvent event) { if (event.getSource() == null) { return; } if (event.getSource().getTrueSource() instanceof EntityPlayer && event.getEntity() instanceof EntityLivingBase) { EntityPlayer attacker = (EntityPlayer) event.getSource().getTrueSource(); int level = getCurrentLevelTool(attacker); if (level <= 0) { return; } EntityLivingBase target = (EntityLivingBase) event.getEntity(); World world = attacker.getEntityWorld(); BlockPos pos = target.getPosition(); dropExp(world, pos, XP_PER_LVL * level); } }
private boolean shouldDirectSpiritToPlayer(LivingDeathEvent event) { if(event.getSource().getTrueSource() instanceof EntityPlayer && Configs.isEnabled(VengeanceRingConfig.class)) { EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource(); for(PlayerExtendedInventoryIterator it = new PlayerExtendedInventoryIterator(player); it.hasNext();) { ItemStack itemStack = it.next(); if(!itemStack.isEmpty() && itemStack.getItem() == VengeanceRing.getInstance()) { return true; } } } return false; }
@SubscribeEvent public void onDeath(LivingDeathEvent event) { EntityPlayer player = getPlayerFromSource(event.getSource()); if (player != null) { if (counter < targetAmount && isValidKill(event.getEntityLiving())) { counter++; //Increase the counter syncData(player); } } }
@SubscribeEvent public void onLivingDeath(LivingDeathEvent event) { if (event.getEntity() instanceof EntityPlayer) { for (Capability listener : listeners) { ((IPlayerEventListener) event.getEntity().getCapability(listener, null)).onDeath(event.getSource()); } } }
@SubscribeEvent public void onPlayerDeath(LivingDeathEvent event) { if (event.getEntityLiving() instanceof EntityPlayerMP) { EntityPlayerMP player = (EntityPlayerMP) event.getEntityLiving(); QuestingData.getQuestingData(player).die(player); DeathType.onDeath(player, event.getSource()); } }
private void palingDeath(LivingDeathEvent event) { if(event.getSource() == ExtendedDamageSource.paling && Configs.isEnabled(SpiritPortalConfig.class)) { SpiritPortal.tryPlacePortal(event.getEntityLiving().world, event.getEntityLiving().getPosition().add(0, 1, 0)); } }
@SubscribeEvent public void handleLivingDeathEvent(LivingDeathEvent event) { Entity entity = event.getEntity(); Entity attacker = event.getSource().getTrueSource(); if (attacker instanceof EntityPlayer) { int encLeech = getHeldEnchantmentLevel((EntityPlayer) attacker, CoreEnchantments.leech); int encInsight = getHeldEnchantmentLevel((EntityPlayer) attacker, CoreEnchantments.insight); if (encLeech > 0) { ((EntityPlayer) attacker).heal(encLeech); } if (encInsight > 0) { entity.world.spawnEntity(new EntityXPOrb(entity.world, entity.posX, entity.posY + 0.5D, entity.posZ, encInsight + entity.world.rand.nextInt(1 + encInsight * 3))); } } if (!CoreProps.enableLivingEntityDeathMessages || entity.world.isRemote || !(entity instanceof EntityLiving) || !event.getEntityLiving().hasCustomName()) { return; } PlayerList playerList = entity.world.getMinecraftServer().getPlayerList(); ITextComponent deathMessage = event.getEntityLiving().getCombatTracker().getDeathMessage(); if (playerList == null) { CoFHCore.LOG.error("Null Player List! That's not good.", event); } if (deathMessage == null) { CoFHCore.LOG.error("Null Death Message! Please report to the mod responsible.", event.getSource().getClass()); } entity.world.getMinecraftServer().getPlayerList().sendMessage(event.getEntityLiving().getCombatTracker().getDeathMessage()); }
@SubscribeEvent public void onEntityKill(LivingDeathEvent event) { if (event.getSource().getTrueSource() instanceof EntityPlayer && event.getEntity() instanceof EntityLivingBase) { EntityPlayer attacker = (EntityPlayer) event.getSource().getTrueSource(); EntityLivingBase target = (EntityLivingBase) event.getEntity(); int level = getCurrentLevelTool(attacker); if (level > 0) { // we -1 since potion level 1 is II //so that means enchantment I giving poison I means this int restore = (int) Math.max(Math.ceil(target.getMaxHealth() / 5), 4); int min = level;//so if restore starts at 4 the rand will be [min,restore] restore = attacker.getEntityWorld().rand.nextInt(restore + 1) + min; if (restore > 0) { //hunger attacker.getFoodStats().addStats(restore, 0.5F); //hearts if (attacker.getHealth() < attacker.getMaxHealth()) { attacker.heal(restore); UtilParticle.spawnParticle(target.getEntityWorld(), EnumParticleTypes.HEART, attacker.getPosition().up(1)); UtilParticle.spawnParticle(attacker.getEntityWorld(), EnumParticleTypes.HEART, attacker.getPosition().up(1)); } } } } }
@SubscribeEvent public static void handleEntityKill(LivingDeathEvent event) { EntityLivingBase entity = event.getEntityLiving(); Entity killer = event.getSource().getTrueSource(); if (!entity.world.isRemote && killer != null) { if (killer instanceof EntityPlayer) { scheduleXP(entity, getXPBoost(entity, (EntityPlayer) killer)); } else if (killer instanceof EntityArrow) { NBTTagCompound tag = killer.getEntityData(); if (tag.hasKey(NBT_KEY) && tag.getInteger(NBT_KEY) >= 0) { int level = tag.getInteger(NBT_KEY); EntityArrow arrow = (EntityArrow) killer; scheduleXP(entity, getXPBoost(entity, (EntityPlayer) arrow.shootingEntity, level)); } } } }
@SubscribeEvent public void onKillChicken(LivingDeathEvent event) { if (Debug.CHICKEN_FISHING > 0) { EntityPlayer angler = event.getSource().getEntity() instanceof EntityPlayer ? (EntityPlayer) event.getSource().getEntity() : null; if (angler != null && !angler.worldObj.isRemote && event.getEntityLiving() instanceof EntityChicken) { for (int i = 0; i < Debug.CHICKEN_FISHING; i++) { LootContext.Builder lootcontext$builder = new LootContext.Builder((WorldServer) angler.worldObj); lootcontext$builder.withLuck((float) EnchantmentHelper.getLuckOfSeaModifier(angler) + angler.getLuck()); lootcontext$builder.withPlayer(angler); //Added by Mariculture lootcontext$builder.withLootedEntity(event.getEntityLiving()); //Added by Mariculture for (ItemStack itemstack : angler.worldObj.getLootTableManager().getLootTableFromLocation(LootTableList.GAMEPLAY_FISHING).generateLootForPools(this.rand, lootcontext$builder.build())) { EntityItem entityitem = new EntityItem(angler.worldObj, event.getEntityLiving().posX, event.getEntityLiving().posY, event.getEntityLiving().posZ, itemstack); double d0 = angler.posX - event.getEntityLiving().posX; double d1 = angler.posY - event.getEntityLiving().posY; double d2 = angler.posZ - event.getEntityLiving().posZ; double d3 = (double) MathHelper.sqrt_double(d0 * d0 + d1 * d1 + d2 * d2); double d4 = 0.1D; entityitem.motionX = d0 * d4; entityitem.motionY = d1 * d4 + (double) MathHelper.sqrt_double(d3) * 0.08D; entityitem.motionZ = d2 * d4; angler.worldObj.spawnEntityInWorld(entityitem); angler.worldObj.spawnEntityInWorld(new EntityXPOrb(angler.worldObj, angler.posX, angler.posY + 0.5D, angler.posZ + 0.5D, this.rand.nextInt(6) + 1)); } } } } } }
private void bloodObtainEvent(LivingDeathEvent event) { Entity e = event.getSource().getTrueSource(); if(e != null && e instanceof EntityPlayerMP && !e.world.isRemote && event.getEntityLiving() != null && Configs.isEnabled(BloodExtractorConfig.class)) { float boost = 1.0F; EntityPlayerMP player = (EntityPlayerMP) e; EnumHand hand = player.getActiveHand(); if(Configs.isEnabled(VeinSwordConfig.class) && player.getHeldItem(hand) != null && player.getHeldItem(hand).getItem() == VeinSword.getInstance()) { boost = (float) VeinSwordConfig.extractionBoost; } float health = event.getEntityLiving().getMaxHealth(); int minimumMB = MathHelper.floor(health * (float) BloodExtractorConfig.minimumMobMultiplier * boost); int maximumMB = MathHelper.floor(health * (float) BloodExtractorConfig.maximumMobMultiplier * boost); BloodExtractor.getInstance().fillForAllBloodExtractors(player, minimumMB, maximumMB); } }
private void bloodStainedBlockEvent(LivingDeathEvent event) { if(event.getSource() == DamageSource.FALL && Configs.isEnabled(BloodStainedBlockConfig.class) && !(event.getEntity() instanceof VengeanceSpirit)) {
private void vengeanceEvent(LivingDeathEvent event) { if (event.getEntityLiving() != null) { World world = event.getEntityLiving().world; boolean directToPlayer = shouldDirectSpiritToPlayer(event); if (!world.isRemote && world.getDifficulty() != EnumDifficulty.PEACEFUL && Configs.isEnabled(VengeanceSpiritConfig.class) && VengeanceSpirit.canSustain(event.getEntityLiving()) && (directToPlayer || VengeanceSpirit.canSpawnNew(world, event.getEntityLiving().getPosition()))) { VengeanceSpirit spirit = new VengeanceSpirit(world); spirit.setInnerEntity(event.getEntityLiving()); spirit.copyLocationAndAnglesFrom(event.getEntityLiving()); world.spawnEntity(spirit); if(directToPlayer) { EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource(); spirit.setBuildupDuration(3 * MinecraftHelpers.SECOND_IN_TICKS); spirit.setGlobalVengeance(true); spirit.setAttackTarget(player); } } } }