private boolean alreadyContainsDrop(LivingDropsEvent event, ItemStack head) { return event.getDrops().stream().map(EntityItem::getItem).anyMatch(drop -> ItemStack.areItemStacksEqual(drop, head)); }
@SubscribeEvent(priority = EventPriority.LOWEST) public static void onDrops(LivingDropsEvent event) { EntityLivingBase e = event.getEntityLiving(); if(e.getEntityData().hasKey(TAG_ITEMSTACK_TO_DROP)) { NBTTagCompound cmp = e.getEntityData().getCompoundTag(TAG_ITEMSTACK_TO_DROP); ItemStack stack = new ItemStack(cmp); event.getDrops().clear(); event.getDrops().add(new EntityItem(e.world, e.posX, e.posY, e.posZ, stack)); } } }
private void addDrop(LivingDropsEvent event, ItemStack drop) { EntityItem entityitem = new EntityItem(event.getEntityLiving().world, event.getEntityLiving().posX, event.getEntityLiving().posY, event.getEntityLiving().posZ, drop); entityitem.setPickupDelay(10); event.getDrops().add(entityitem); }
@SubscribeEvent public static void onDrops(LivingDropsEvent event) { if(event.getEntityLiving() instanceof EntityBlaze && event.getEntityLiving().getEntityData().getBoolean(TAG_FEL_SPAWNED)) if(event.getDrops().isEmpty()) event.getDrops().add(new EntityItem(event.getEntityLiving().world, event.getEntityLiving().posX, event.getEntityLiving().posY, event.getEntityLiving().posZ, new ItemStack(Items.BLAZE_POWDER, 6))); else for(EntityItem item : event.getDrops()) { ItemStack stack = item.getItem(); if(stack.getItem() == Items.BLAZE_ROD) item.setItem(new ItemStack(Items.BLAZE_POWDER, stack.getCount() * 10)); } }
@SubscribeEvent public void onLivingDrops(LivingDropsEvent event) { if(event.getSource().getTrueSource() instanceof EntityPlayer) { ItemStack item = CapabilityTinkerProjectile.getTinkerProjectile(event.getSource()) .map(ITinkerProjectile::getItemStack) .orElse(((EntityPlayer) event.getSource().getTrueSource()).getHeldItem(EnumHand.MAIN_HAND)); NBTTagCompound tag = TinkerUtil.getModifierTag(item, getIdentifier()); int level = ModifierNBT.readTag(tag).level; if(level == 0) { tag = TinkerUtil.getModifierTag(item, CLEAVER_MODIFIER_ID); level = ModifierNBT.readTag(tag).level; } // has beheading if(level > 0) { ItemStack head = getHeadDrop(event.getEntityLiving()); if(head != null && !head.isEmpty() && level > random.nextInt(10) && !alreadyContainsDrop(event, head)) { EntityItem entityitem = new EntityItem(event.getEntityLiving().getEntityWorld(), event.getEntityLiving().posX, event.getEntityLiving().posY, event.getEntityLiving().posZ, head); entityitem.setDefaultPickupDelay(); event.getDrops().add(entityitem); } } } }
@SubscribeEvent public static void onRitualDeath(LivingDropsEvent event){ if(!ConfigHandler.values.wellOfSufferingDrops){ if(event.getSource().equals(RitualManager.RITUAL_DAMAGE)) { event.getDrops().clear(); } } }
@SubscribeEvent public void onDrops(LivingDropsEvent event) { Entity e = event.getEntity(); if(e instanceof EntityWitherSkeleton) { if(removeCoalDrops) event.getDrops().removeIf((ei) -> ei.getItem().getItem() == Items.COAL); addDrop(event.getDrops(), e, witherSkeletonMin, witherSkeletonMax); } else if(e instanceof EntityWither) addDrop(event.getDrops(), e, witherMin, witherMax); }
public static void addDrop (ItemStack stack, LivingDropsEvent event) { final EntityLivingBase living = event.getEntityLiving(); event.getDrops().add(new EntityItem(living.getEntityWorld(), living.posX, living.posY, living.posZ, stack)); } }
@SubscribeEvent public void onDrops(LivingDropsEvent event) { EntityLivingBase e = event.getEntityLiving(); if(enableTallow && e instanceof EntityPig && maxDrop > 0) { int drops = minDrop + e.world.rand.nextInt(maxDrop - minDrop + 1); if(drops > 0) event.getDrops().add(new EntityItem(e.world, e.posX, e.posY, e.posZ, new ItemStack(tallow, drops))); } }
private static boolean containsDrop(LivingDropsEvent evt, @Nonnull ItemStack skull) { for (EntityItem ei : evt.getDrops()) { if (ei != null && ei.getItem().getItem() == skull.getItem() && ei.getItem().getItemDamage() == skull.getItemDamage()) { return true; } } return false; }
@SubscribeEvent public static void onDrop(LivingDropsEvent event) { Entity entity = event.getEntity(); if (entity != null && NbtValue.INFINITY.getBoolean(entity.getEntityData()) && entity.world.rand.nextFloat() < InfinityConfig.dropChanceFogCreatures.get()) { EntityItem entityitem = new EntityItem(entity.world, entity.posX, entity.posY, entity.posZ, Material.POWDER_INFINITY.getStack()); entityitem.setDefaultPickupDelay(); event.getDrops().add(entityitem); } }
@SubscribeEvent public void onEntityDrops(LivingDropsEvent event) { if(event.getEntity().getEntityData().getBoolean(TAG_SHEARED)) event.getDrops().removeIf((EntityItem e) -> e.getItem().getItem() == Items.FEATHER); }
private static void dropSkull(LivingDropsEvent evt, EntityPlayer player) { ItemStack skull = getSkullForEntity(evt.getEntityLiving()); if (skull != null && !skull.isEmpty() && !containsDrop(evt, skull)) { evt.getDrops().add(Util.createEntityItem(player.world, skull, evt.getEntityLiving().posX, evt.getEntityLiving().posY, evt.getEntityLiving().posZ)); } }
@SubscribeEvent (priority = EventPriority.NORMAL) public void handleLivingDropsEvent(LivingDropsEvent event) { Entity entity = event.getEntity(); if (entity.isImmuneToFire() && TFProps.dropSulfurFireImmuneMobs && event.getEntityLiving().world.getGameRules().getBoolean("doMobLoot")) { boolean s = entity instanceof EntitySlime; if (event.getEntityLiving().getRNG().nextInt(6 + (s ? 16 : 0)) != 0) { return; } event.getDrops().add(new EntityItem(entity.world, entity.posX, entity.posY, entity.posZ, ItemMaterial.dustSulfur.copy())); } }
@SubscribeEvent public void onLivingDrops(LivingDropsEvent event) { if(!dropAtLeastOne || event.getEntity().getEntityWorld().isRemote || !(event.getEntity() instanceof EntityChicken) || !((EntityChicken)event.getEntity()).isChild() && !chicksDropFeathers) return; EntityChicken chicken = (EntityChicken) event.getEntity(); boolean hasFeather = false; for(EntityItem item : event.getDrops()) if(!item.getItem().isEmpty() && item.getItem().getItem().equals(Items.FEATHER)) { hasFeather = true; break; } if(!hasFeather) event.getDrops().add(new EntityItem(event.getEntity().getEntityWorld(), chicken.posX, chicken.posY, chicken.posZ, new ItemStack(Items.FEATHER, 1))); }
@SubscribeEvent public void onDrops(LivingDropsEvent event) { if(event.getEntityLiving() instanceof EntityWitch && (!verifyTruePlayer || event.getSource().getTrueSource() instanceof EntityPlayer) && Math.random() < dropRate + lootingBoost * event.getLootingLevel()) event.getDrops().add(new EntityItem(event.getEntity().getEntityWorld(), event.getEntity().posX, event.getEntity().posY, event.getEntity().posZ, new ItemStack(witch_hat))); }
@SubscribeEvent public static void onLivingDrops(LivingDropsEvent event) { EntityLivingBase attackedEntity = event.getEntityLiving(); DamageSource source = event.getSource(); Entity entity = source.getTrueSource(); if (entity != null && entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) entity; ItemStack heldStack = player.getHeldItemMainhand(); if (!heldStack.isEmpty() && heldStack.getItem() == RegistrarBloodMagicItems.BOUND_SWORD && !(attackedEntity instanceof EntityAnimal)) for (int i = 0; i <= EnchantmentHelper.getLootingModifier(player); i++) if (attackedEntity.getEntityWorld().rand.nextDouble() < 0.2) event.getDrops().add(new EntityItem(attackedEntity.getEntityWorld(), attackedEntity.posX, attackedEntity.posY, attackedEntity.posZ, new ItemStack(RegistrarBloodMagicItems.BLOOD_SHARD, 1, 0))); } }
@SubscribeEvent public void onEntityDropEvent(LivingDropsEvent event){ if(event.getEntityLiving().world != null && !event.getEntityLiving().world.isRemote && event.getSource().getTrueSource() instanceof EntityPlayer){ //Drop Cobwebs from Spiders if(ConfigBoolValues.DO_SPIDER_DROPS.isEnabled() && event.getEntityLiving() instanceof EntitySpider){ if(event.getEntityLiving().world.rand.nextInt(20) <= event.getLootingLevel()*2){ event.getDrops().add(new EntityItem(event.getEntityLiving().world, event.getEntityLiving().posX, event.getEntityLiving().posY, event.getEntityLiving().posZ, new ItemStack(Blocks.WEB, event.getEntityLiving().world.rand.nextInt(2+event.getLootingLevel())+1))); } } } }
@SubscribeEvent public void onEntityDropEvent(LivingDropsEvent event){ if(ConfigBoolValues.DO_XP_DROPS.isEnabled()){ if(event.getEntityLiving().world != null && !event.getEntityLiving().world.isRemote && event.getSource().getTrueSource() instanceof EntityPlayer){ //Drop Solidified XP if(event.getEntityLiving() instanceof EntityCreature){ if(event.getEntityLiving().world.rand.nextInt(10) <= event.getLootingLevel()*2){ event.getDrops().add(new EntityItem(event.getEntityLiving().world, event.getEntityLiving().posX, event.getEntityLiving().posY, event.getEntityLiving().posZ, new ItemStack(InitItems.itemSolidifiedExperience, event.getEntityLiving().world.rand.nextInt(2+event.getLootingLevel())+1))); } } } } }
@SubscribeEvent public void onDrops(LivingDropsEvent event) { Entity e = event.getEntity(); if(e.hasCustomName() && e instanceof EntitySnowman && event.getSource().getTrueSource() != null && event.getSource().getTrueSource() instanceof EntityWitch) { EntitySnowman snowman = (EntitySnowman) e; if(snowman.isPumpkinEquipped()) { ItemStack stack = new ItemStack(Items.SKULL, 1, 3); ItemNBTHelper.setString(stack, "SkullOwner", e.getCustomNameTag()); event.getDrops().add(new EntityItem(e.getEntityWorld(), e.posX, e.posY, e.posZ, stack)); } } }