001    package net.minecraftforge.common;
002    
003    import net.minecraft.src.*;
004    import net.minecraftforge.event.*;
005    import net.minecraftforge.event.entity.*;
006    
007    public class ForgeInternalHandler
008    {
009        @ForgeSubscribe(priority = EventPriority.HIGHEST)
010        public void onEntityJoinWorld(EntityJoinWorldEvent event)
011        {
012            Entity entity = event.entity;
013            if (entity instanceof EntityItem)
014            {
015                ItemStack item = ((EntityItem)entity).item;
016                if (item.getItem().hasCustomEntity(item))
017                {
018                    Entity newEntity = item.getItem().createEntity(event.world, entity, item);
019                    if (newEntity != null)
020                    {
021                        entity.setDead();
022                        event.setCanceled(true);
023                        event.world.spawnEntityInWorld(newEntity);
024                    }
025                }
026            }
027        }
028    }