List of usage examples for net.minecraftforge.event.entity.living LivingDeathEvent getSource
public DamageSource getSource()
From source file:com.buuz135.industrial.item.infinity.OneThreeFiveHandler.java
License:Open Source License
@SubscribeEvent public static void onEntityKill(LivingDeathEvent event) { if (event.getEntityLiving().getUniqueID().toString().contains(SPECIAL) && event.getSource().getTrueSource() instanceof EntityPlayer && !(event.getSource().getTrueSource() instanceof FakePlayer)) { EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource(); if (player.getHeldItemMainhand().getItem().equals(ItemRegistry.itemInfinityDrill)) { player.getHeldItemMainhand().getTagCompound().setBoolean("Special", true); }/*from w w w .jav a2 s . c o m*/ } }
From source file:com.cnaude.purpleirc.GameListeners.GamePlayerDeathListener.java
License:Open Source License
@SubscribeEvent public void onPlayerDeath(LivingDeathEvent event) { if (event.getEntityLiving() instanceof EntityPlayerMP) { final EntityPlayerMP player = (EntityPlayerMP) event.getEntityLiving(); for (PurpleBot ircBot : plugin.ircBots.values()) { ircBot.gameDeath(player, event.getSource().getDeathMessage(player).getUnformattedText(), TemplateName.GAME_DEATH); }//ww w .j ava 2s .c o m } }
From source file:com.lothrazar.cyclicmagic.enchant.EnchantBeheading.java
License:Open Source License
@SubscribeEvent public void onEntityKill(LivingDeathEvent event) { if (event.getSource().getTrueSource() instanceof EntityPlayer && event.getEntity() instanceof EntityLivingBase) { EntityPlayer attacker = (EntityPlayer) event.getSource().getTrueSource(); World world = attacker.world;//from w w w . j a v a 2 s. c o m if (MathHelper.getInt(world.rand, 0, 100) > this.percentDrop) { return; } EntityLivingBase target = (EntityLivingBase) event.getEntity(); if (target == null) { return; } //probably wont happen just extra safe BlockPos pos = target.getPosition(); if (target instanceof EntityPlayer) { UtilItemStack.dropItemStackInWorld(world, pos, UtilNBT.buildNamedPlayerSkull((EntityPlayer) target)); return; } int level = getCurrentLevelTool(attacker); if (level < 0) { return; } //else the random number was less than 10, so it passed the 10% chance req String key = target.getClass().getName(); ////we allow all these, which include config, to override the vanilla skulls below //first do my wacky class mapping// TODO delete and go to minecraft:blah if (mapClassToSkin.containsKey(key)) { UtilItemStack.dropItemStackInWorld(world, pos, UtilNBT.buildNamedPlayerSkull(mapClassToSkin.get(key))); return; } else if (mapClassToTag.containsKey(key)) { UtilItemStack.dropItemStackInWorld(world, pos, UtilNBT.buildSkullFromTag(mapClassToTag.get(key))); return; } else if (target instanceof EntityCreeper) {//4 UtilItemStack.dropItemStackInWorld(world, pos, new ItemStack(Items.SKULL, 1, Const.skull_creeper)); return; } else if (target instanceof EntityZombie) {//2 UtilItemStack.dropItemStackInWorld(world, pos, new ItemStack(Items.SKULL, 1, Const.skull_zombie)); return; } else if (target instanceof EntitySkeleton) {//0 UtilItemStack.dropItemStackInWorld(world, pos, new ItemStack(Items.SKULL, 1, Const.skull_skeleton)); return; } else if (target instanceof EntityWitherSkeleton) {//1 UtilItemStack.dropItemStackInWorld(world, pos, new ItemStack(Items.SKULL, 1, Const.skull_wither)); return; } else if (target instanceof EntityDragon) {//5 UtilItemStack.dropItemStackInWorld(world, pos, new ItemStack(Items.SKULL, 1, Const.skull_dragon)); return; } else if (target instanceof EntityPlayer) {//player name UtilItemStack.dropItemStackInWorld(world, pos, UtilNBT.buildNamedPlayerSkull((EntityPlayer) target)); return; } if (EntityList.getKey(target) != null) { String resourcelocation = EntityList.getKey(target).toString(); if (mapResourceToSkin.containsKey(resourcelocation)) { UtilItemStack.dropItemStackInWorld(world, pos, UtilNBT.buildNamedPlayerSkull(mapResourceToSkin.get(resourcelocation))); return; } } ModCyclic.logger.error("Beheading : mob not found in EntityList " + target.getName()); } }
From source file:com.lothrazar.cyclicmagic.enchant.EnchantLifeLeech.java
License:Open Source License
@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)); }//w ww .ja v a 2 s .c o m } } } }
From source file:com.lothrazar.cyclicmagic.enchant.EnchantXpBoost.java
License:Open Source License
@SubscribeEvent public void onEntityKill(LivingDeathEvent event) { if (event.getSource() == null) { return;/*from ww w. j av a 2 s . com*/ } 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); } }
From source file:com.lothrazar.cyclicmagic.potion.effect.PotionEnder.java
License:Open Source License
@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)); }//ww w . j a v a 2 s . c om } }
From source file:hellfirepvp.astralsorcery.common.event.listener.EventHandlerServer.java
License:Open Source License
@SubscribeEvent(priority = EventPriority.HIGHEST) public void onDeath(LivingDeathEvent event) { if (phoenixProtect(event.getEntityLiving())) { event.setCanceled(true);// w w w . j a va 2s . c o m } else { if (event.getEntityLiving() == null || event.getEntityLiving().getEntityWorld().isRemote) return; DamageSource source = event.getSource(); if (source.getEntity() != null && source.getEntity() instanceof EntityPlayer) { EntityPlayer p = (EntityPlayer) source.getEntity(); PlayerProgress prog = ResearchManager.getProgress(p); if (prog != null) { Map<ConstellationPerk, Integer> perks = prog.getAppliedPerks(); for (ConstellationPerk perk : perks.keySet()) { if (!prog.isPerkActive(perk)) continue; if (perk.mayExecute(ConstellationPerk.Target.ENTITY_KILL)) { perk.onEntityKilled(p, event.getEntityLiving()); } } } } } }
From source file:nightkosh.gravestone.core.event.EventsHandler.java
License:LGPL
@SubscribeEvent(priority = EventPriority.HIGH) public void onEntityLivingDeath(LivingDeathEvent event) { if (FMLCommonHandler.instance().getEffectiveSide().isServer()) { if (!Config.generateGravesInLava && event.getSource().damageType.equals("lava")) { return; }//from w w w . j a va2 s .c om if (Config.generatePlayerGraves && event.getEntityLiving() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.getEntity(); if (!Config.playerGravesDimensionalBlackList.contains(player.dimension)) { for (IPlayerDeathHandler playerDeathHandler : APIGraveGeneration.PLAYER_DEATH_HANDLERS) { if (playerDeathHandler.cancelGraveGeneration(player, event.getSource())) { return; } } GraveGenerationHelper.createPlayerGrave(player, event, MobHandler.getAndRemoveSpawnTime(event.getEntity())); } return; } else { if (Config.generateVillagerGraves && event.getEntity() instanceof EntityVillager) { EntityVillager villager = (EntityVillager) event.getEntity(); for (IVillagerDeathHandler villagerDeathHandler : APIGraveGeneration.VILLAGER_DEATH_HANDLERS) { if (villagerDeathHandler.cancelGraveGeneration(villager, event.getSource())) { return; } } GraveGenerationHelper.createVillagerGrave(villager, event); return; } else if (Config.generatePetGraves) { if (event.getEntity() instanceof EntityTameable) { if (event.getEntity() instanceof EntityWolf) { EntityWolf dog = (EntityWolf) event.getEntity(); for (IDogDeathHandler dogDeathHandler : APIGraveGeneration.DOG_DEATH_HANDLERS) { if (dogDeathHandler.cancelGraveGeneration(dog, event.getSource())) { return; } } GraveGenerationHelper.createDogGrave(dog, event); return; } else if (event.getEntity() instanceof EntityOcelot) { EntityOcelot cat = (EntityOcelot) event.getEntity(); for (ICatDeathHandler catDeathHandler : APIGraveGeneration.CAT_DEATH_HANDLERS) { if (catDeathHandler.cancelGraveGeneration(cat, event.getSource())) { return; } } GraveGenerationHelper.createCatGrave(cat, event); return; } } else if (event.getEntity() instanceof AbstractHorse) { AbstractHorse horse = (AbstractHorse) event.getEntity(); for (IHorseDeathHandler horseDeathHandler : APIGraveGeneration.HORSE_DEATH_HANDLERS) { if (horseDeathHandler.cancelGraveGeneration(horse, event.getSource())) { return; } } GraveGenerationHelper.createHorseGrave(horse, event); return; } } } for (ICustomEntityDeathHandler customEntityDeathHandler : APIGraveGeneration.CUSTOM_ENTITY_DEATH_HANDLERS) { if (event.getEntity().getClass().equals(customEntityDeathHandler.getEntityClass()) && customEntityDeathHandler.canGenerateGrave(event.getEntity(), event.getSource())) { GraveGenerationHelper.createCustomGrave(event.getEntity(), event, customEntityDeathHandler); return; } } } }
From source file:nightkosh.gravestone.helper.GraveGenerationHelper.java
License:LGPL
public static void createPlayerGrave(EntityPlayer player, LivingDeathEvent event, long spawnTime) { if (player.getEntityWorld() != null && !player.getEntityWorld().getGameRules().getBoolean("keepInventory") && Config.graveItemsCount > 0 && !isInRestrictedArea(player.getEntityWorld(), player.getPosition())) { List<ItemStack> items = new ArrayList<>(41); // GSCompatibilityAntiqueAtlas.placeDeathMarkerAtDeath(player); //TODO !!!!!!!!!!!! addNonEmptyItems(items, player.inventory.mainInventory); addNonEmptyItems(items, player.inventory.armorInventory); addNonEmptyItems(items, player.inventory.offHandInventory); // items.addAll(player.inventory.mainInventory); // items.addAll(player.inventory.armorInventory); // items.addAll(player.inventory.offHandInventory); CompatibilityTwilightForest.addSlotTags(items); CompatibilityBattlegear.addItems(items, player); if (!CompatibilityTwilightForest.handleCharmsOfKeeping(items, player)) { player.inventory.clear();/* ww w . j ava2 s . co m*/ } for (IPlayerItems additionalItems : APIGraveGeneration.PLAYER_ITEMS) { try { List<ItemStack> modItems = additionalItems.addItems(player, event.getSource()); if (modItems != null && !modItems.isEmpty() && modItems.size() != 0) { items.addAll(modItems); } } catch (Exception e) { GSLogger.logError("Compatibility error occurred in additionalItems.addItems"); e.printStackTrace(); } } //TODO is it really required?? CompatibilityTwilightForest.removeSlotTags(items); // remove some items by other mods for (IPlayerItems additionalItems : APIGraveGeneration.PLAYER_ITEMS) { try { additionalItems.getItems(player, event.getSource(), items); } catch (Exception e) { GSLogger.logError("Compatibility error occurred in additionalItems.getItems"); e.printStackTrace(); } } // remove items with Curse of Vanishing enchantment if (Config.removeCurseOfVanishingItems) { for (int i = 0; i < items.size(); i++) { if (EnchantmentHelper.hasEnchantment(items.get(i), Enchantments.VANISHING_CURSE)) { items.set(i, ItemStack.EMPTY); } } } if (Config.generateEmptyPlayerGraves || items.size() != 0) { createGrave(player, event, items, EnumGraveTypeByEntity.PLAYER_GRAVES, false, spawnTime); } } else if (Config.generateEmptyPlayerGraves) { createGrave(player, event, null, EnumGraveTypeByEntity.PLAYER_GRAVES, false, spawnTime); } }
From source file:nightkosh.gravestone.helper.GraveGenerationHelper.java
License:LGPL
public static void createVillagerGrave(EntityVillager villager, LivingDeathEvent event) { List<ItemStack> items = new ArrayList<>(5); for (IVillagerItems additionalItems : APIGraveGeneration.VILLAGER_ITEMS) { items.addAll(additionalItems.addItems(villager, event.getSource())); }/*w w w . j a v a 2 s .c o m*/ IItemHandler itemHandler = villager.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, villager.getHorizontalFacing()); if (villager.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, villager.getHorizontalFacing())) { for (int slot = 0; slot < itemHandler.getSlots(); slot++) { ItemStack stack = itemHandler.extractItem(slot, 100500, false); if (stack != null && !stack.isEmpty()) { items.add(stack); } } } long spawnTime = MobHandler.getAndRemoveSpawnTime(event.getEntity()); createGrave(villager, event, items, GraveGenerationHelper.EnumGraveTypeByEntity.VILLAGERS_GRAVES, true, spawnTime); }