Posted January 17, 201510 yr Hey there, so I haven't really messed around with potion effects before, and I have this set of armour which works perfectly, until you come to remove it... Here is the code: public class BedrockArmour extends ItemArmor { public BedrockArmour(ArmorMaterial material, int armorType) { super(material, 0, armorType); } @Override public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) { if(stack.getItem() == itemRegist.bedrockChest || stack.getItem() == itemRegist.bedrockHelmet || stack.getItem() == itemRegist.bedrockBoots) { return Reference.MODID + ":models/armor/bedrock_layer_1.png"; } else if(stack.getItem() == itemRegist.bedrockLegs) { return Reference.MODID + ":models/armor/bedrock_layer_2.png"; } else{ System.out.println("Invalid Item for Bedrock Armour"); return null; } } public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) { if(player.getCurrentArmor(3) != null || player.getCurrentArmor(2) != null || player.getCurrentArmor(1) != null || player.getCurrentArmor(0) != null){ ItemStack helmet2 = player.getCurrentArmor(3); ItemStack plate2 = player.getCurrentArmor(2); ItemStack legs2 = player.getCurrentArmor(1); ItemStack boots = player.getCurrentArmor(0); if(helmet2.getItem() == itemRegist.bedrockHelmet || legs2.getItem() == itemRegist.bedrockLegs || plate2.getItem() == itemRegist.bedrockChest || boots.getItem() == itemRegist.bedrockBoots){ player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.getId(), 5, 0)); } } if(player.getCurrentArmor(3) != null && player.getCurrentArmor(2) != null || player.getCurrentArmor(2) != null && player.getCurrentArmor(1) != null || player.getCurrentArmor(3) != null && player.getCurrentArmor(2) != null || player.getCurrentArmor(1) != null && player.getCurrentArmor(0) != null || player.getCurrentArmor(0) != null && player.getCurrentArmor(2) != null || player.getCurrentArmor(3) != null && player.getCurrentArmor(0) != null){ ItemStack helmet2 = player.getCurrentArmor(3); ItemStack plate2 = player.getCurrentArmor(2); ItemStack legs2 = player.getCurrentArmor(1); ItemStack boots = player.getCurrentArmor(0); if(helmet2.getItem() == itemRegist.bedrockHelmet && plate2.getItem() == itemRegist.bedrockChest || plate2.getItem() == itemRegist.bedrockChest && legs2.getItem() == itemRegist.bedrockLegs || helmet2.getItem() == itemRegist.bedrockHelmet && plate2.getItem() == itemRegist.bedrockChest || legs2.getItem() == itemRegist.bedrockLegs && boots.getItem() == itemRegist.bedrockBoots || boots.getItem() == itemRegist.bedrockBoots && plate2.getItem() == itemRegist.bedrockChest || helmet2.getItem() == itemRegist.bedrockHelmet && boots.getItem() == itemRegist.bedrockBoots) { player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.getId(), 5, 1)); player.addPotionEffect(new PotionEffect(Potion.resistance.getId(), 5, 0)); } } if(player.getCurrentArmor(3) != null && player.getCurrentArmor(2) != null && player.getCurrentArmor(1) != null || player.getCurrentArmor(3) != null && player.getCurrentArmor(2) != null && player.getCurrentArmor(0) != null || player.getCurrentArmor(3) != null && player.getCurrentArmor(1) != null && player.getCurrentArmor(0) != null || player.getCurrentArmor(1) != null && player.getCurrentArmor(2) != null && player.getCurrentArmor(0) != null){ ItemStack helmet2 = player.getCurrentArmor(3); ItemStack plate2 = player.getCurrentArmor(2); ItemStack legs2 = player.getCurrentArmor(1); ItemStack boots = player.getCurrentArmor(0); if(helmet2.getItem() == itemRegist.bedrockHelmet && plate2.getItem() == itemRegist.bedrockChest && legs2.getItem() == itemRegist.bedrockLegs || helmet2.getItem() == itemRegist.bedrockHelmet && plate2.getItem() == itemRegist.bedrockChest && boots.getItem() == itemRegist.bedrockBoots || helmet2.getItem() == itemRegist.bedrockHelmet && legs2.getItem() == itemRegist.bedrockLegs && boots.getItem() == itemRegist.bedrockBoots || legs2.getItem() == itemRegist.bedrockLegs && plate2.getItem() == itemRegist.bedrockChest && boots.getItem() == itemRegist.bedrockBoots){ player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.getId(), 5, 2)); player.addPotionEffect(new PotionEffect(Potion.resistance.getId(), 5, 1)); } } if(player.getCurrentArmor(1) != null && player.getCurrentArmor(2) != null && player.getCurrentArmor(0) != null && player.getCurrentArmor(3) != null ){ ItemStack helmet2 = player.getCurrentArmor(3); ItemStack plate2 = player.getCurrentArmor(2); ItemStack legs2 = player.getCurrentArmor(1); ItemStack boots = player.getCurrentArmor(0); if(legs2.getItem() == itemRegist.bedrockLegs && plate2.getItem() == itemRegist.bedrockChest && boots.getItem() == itemRegist.bedrockBoots && helmet2.getItem() == itemRegist.bedrockHelmet){ player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.getId(), 5, 3)); player.addPotionEffect(new PotionEffect(Potion.resistance.getId(), 5, 2)); } } } } Here's a copy of the crashlog: http://pastebin.com/4DRxBKJU This crash happens when: The armour isn't added (whether placed or shift clicked) in the order - Helmet, Chest, Legs, Boots Armour is removed (via mouse or shift click) in an order that isn't - Boots, Legs, Chest, Helmet If it is because of the very messy code, then ideas on how to fix it would be greatly appreciated. Why bother?
January 17, 201510 yr Author So separate out the or statements into multiple if statements? That way it would be: if slot 1 != null{ } if slot 2 != null { } if slot 3 != null{ } if slot 4 != null{ } Or am I going about this the wrong way? Why bother?
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.