Guest User

EventHandler

a guest
May 13th, 2015
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.22 KB | None | 0 0
  1.     @ForgeSubscribe
  2.     public void onEntityConstructing(EntityConstructing event)
  3.     {
  4.         /*
  5.     Be sure to check if the entity being constructed is the correct type for the extended properties you're about to add! The null check may not be necessary - I only use it to make sure properties are only registered once per entity
  6.          */
  7.         if (event.entity instanceof EntityPlayer && ExtendedPlayer.get((EntityPlayer) event.entity) == null)
  8.             // This is how extended properties are registered using our convenient method from earlier
  9.             ExtendedPlayer.register((EntityPlayer) event.entity);
  10.         // That will call the constructor as well as cause the init() method
  11.         // to be called automatically
  12.  
  13.         // If you didn't make the two convenient methods from earlier, your code would be
  14.         // much uglier:
  15.         if (event.entity instanceof EntityPlayer && event.entity.getExtendedProperties(ExtendedPlayer.EXT_PROP_NAME) == null)
  16.             event.entity.registerExtendedProperties(ExtendedPlayer.EXT_PROP_NAME, new ExtendedPlayer((EntityPlayer) event.entity));
  17.     }
  18.  
  19.     // we need to add this new event - it is called for every living entity upon death
  20.     @ForgeSubscribe
  21.     public void onLivingDeathEvent(LivingDeathEvent event)
  22.     {
  23.         // we only want to save data for players (most likely, anyway)
  24.         if (!event.entity.worldObj.isRemote && event.entity instanceof EntityPlayer)
  25.         {
  26.             // NOTE: See step 6 for a way to do this all in one line!!!
  27.             // create a new NBT Tag Compound to store the IExtendedEntityProperties data
  28.             NBTTagCompound playerData = new NBTTagCompound();
  29.             // write the data to the new compound
  30.             ((ExtendedPlayer)(event.entity.getExtendedProperties(ExtendedPlayer.EXT_PROP_NAME))).saveNBTData(playerData);
  31.             // and store it in our proxy
  32.             FGM3.proxy.storeEntityData(((EntityPlayer) event.entity).username, playerData);
  33.             // call our handy static one-liner to save custom data to the proxy
  34.             ExtendedPlayer.saveProxyData((EntityPlayer) event.entity);
  35.             ExtendedPlayer prop = (ExtendedPlayer)event.entity.getExtendedProperties(ExtendedPlayer.EXT_PROP_NAME);
  36.            
  37.            
  38.             prop.setRad(0);
  39.             prop.setWeight(0);
  40.             prop.setbWeight(0);
  41.             EntityPlayer player = (EntityPlayer)event.entity;
  42.             player.inventory.clearInventory(ArtefactCore.knife.itemID, -1);
  43.  
  44.             ExtendedPlayer props = ExtendedPlayer.get(player);
  45.             for(int i = 0; i < 9; ++i)
  46.             {
  47.                 if(i < 5 || i > 8)
  48.                 {
  49.                     if(props.inventory.getStackInSlot(i) != null)
  50.                     {
  51.                         //System.out.println(i);
  52.                         ItemStack is = props.inventory.getStackInSlot(i);
  53.                         player.inventory.clearInventory(is.itemID, -1);
  54.                         player.worldObj.spawnEntityInWorld(new EntityItem(player.worldObj, player.posX, player.posY, player.posZ, is));
  55.                     }
  56.                 }
  57.             }
  58.         }
  59.     }
  60.  
  61.     // we already have this event, but we need to modify it some
  62.     @ForgeSubscribe
  63.     public void onEntityJoinWorld(EntityJoinWorldEvent event)
  64.     {
  65.         if(!event.entity.worldObj.isRemote && event.entity instanceof EntityLivingBase)
  66.         {
  67.             EntityLivingBase entity = (EntityLivingBase)event.entity;
  68.             entity.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setAttribute(2D);
  69.         }
  70.  
  71.         if (!event.entity.worldObj.isRemote && event.entity instanceof EntityPlayer)
  72.             ExtendedPlayer.get((EntityPlayer) event.entity).sync();
  73.     }
Advertisement
Add Comment
Please, Sign In to add comment