Guest User

Untitled

a guest
Jan 24th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.76 KB | None | 0 0
  1. package spicy.jojomod.objects.armor;
  2.  
  3.  
  4. import net.minecraft.client.model.ModelBiped;
  5. import net.minecraft.entity.Entity;
  6. import net.minecraft.entity.EntityLivingBase;
  7. import net.minecraft.entity.player.EntityPlayer;
  8. import net.minecraft.init.MobEffects;
  9. import net.minecraft.inventory.EntityEquipmentSlot;
  10. import net.minecraft.item.Item;
  11. import net.minecraft.item.ItemArmor;
  12. import net.minecraft.item.ItemStack;
  13. import net.minecraft.potion.PotionEffect;
  14. import net.minecraft.util.DamageSource;
  15. import net.minecraft.util.math.BlockPos;
  16. import net.minecraft.world.World;
  17. import net.minecraftforge.event.entity.living.LivingDeathEvent;
  18. import net.minecraftforge.event.entity.living.LivingEvent;
  19. import net.minecraftforge.fml.common.Mod;
  20. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
  21. import net.minecraftforge.fml.relauncher.Side;
  22. import net.minecraftforge.fml.relauncher.SideOnly;
  23. import spicy.jojomod.JojoMod;
  24. import spicy.jojomod.init.ItemInit;
  25. import spicy.jojomod.objects.item.models.ModelStoneMask;
  26. import spicy.jojomod.util.IHasModel;
  27.  
  28.  
  29. @Mod.EventBusSubscriber
  30. public class ItemStoneMask extends ItemArmor implements IHasModel {
  31. public ItemStoneMask(String name, ArmorMaterial materialIn, int renderIndexIn, EntityEquipmentSlot equipmentSlotIn) {
  32. super(materialIn, renderIndexIn, equipmentSlotIn);
  33. setUnlocalizedName(JojoMod.modid + name);
  34. setRegistryName(name);
  35. setCreativeTab(JojoMod.jojoTab);
  36.  
  37. ItemInit.ITEMS.add(this);
  38. }
  39.  
  40. public static boolean isVampire = false;
  41.  
  42. @SubscribeEvent
  43. public static void onDeath(LivingDeathEvent e){
  44. if(e.getSource().getTrueSource() instanceof EntityPlayer){ //If the killer was a player & helmet is equipped
  45. EntityPlayer sourcePlayer = (EntityPlayer) e.getSource().getTrueSource(); //Cast the source to a player varible
  46. if(sourcePlayer.getItemStackFromSlot(EntityEquipmentSlot.HEAD).getItem() == ItemInit.STONE_MASK){
  47. //Vampire Effects
  48. effectsVampire(sourcePlayer);
  49. }
  50. }
  51. }
  52.  
  53.  
  54. private static void effectsVampire(EntityPlayer player){
  55. isVampire = true;
  56. player.addPotionEffect(new PotionEffect(MobEffects.REGENERATION, 100000, 20, false, false));
  57. player.addPotionEffect(new PotionEffect(MobEffects.STRENGTH, 100000, 3, false, false));
  58. player.addPotionEffect(new PotionEffect(MobEffects.ABSORPTION, 100000, 2, false, false));
  59. player.addPotionEffect(new PotionEffect(MobEffects.JUMP_BOOST, 100000, 3, false, false));
  60. player.setAbsorptionAmount(20.0F);
  61.  
  62. }
  63.  
  64. @SubscribeEvent
  65. public static void onLivingUpdate(LivingEvent.LivingUpdateEvent e){
  66. if(e.getEntityLiving() instanceof EntityPlayer){
  67. EntityPlayer player = (EntityPlayer)e.getEntityLiving();
  68. while(isVampire = true){
  69. if(player.world.isDaytime()){
  70. if (player.world.canSeeSky(new BlockPos(player.posX, player.posY + (double)player.getEyeHeight(), player.posZ))){
  71. player.attackEntityFrom(DamageSource.ON_FIRE, Integer.MAX_VALUE);
  72. }
  73. }
  74. }
  75. }
  76. }
  77.  
  78. /* lame model registry stuff nobody cares about and i hate it */
  79. public void registerModels(){
  80. JojoMod.proxy.registerItemRenderer(this,0, "inventory");
  81. }
  82.  
  83. @SideOnly(Side.CLIENT)
  84. @Override
  85. public String getArmorTexture(ItemStack itemStack, Entity entity, EntityEquipmentSlot slot, String type){
  86. return JojoMod.modid + ":textures/items/stonemask.png";
  87. }
  88.  
  89. @SideOnly(Side.CLIENT)
  90. @Override
  91. public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, EntityEquipmentSlot armorSLot, ModelBiped _default){
  92.  
  93. return new ModelStoneMask(_default);
  94. }
  95. }
Add Comment
Please, Sign In to add comment