jordsta95 Posted January 17, 2015 Posted January 17, 2015 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. Quote Why bother?
jordsta95 Posted January 17, 2015 Author Posted January 17, 2015 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? Quote Why bother?
jordsta95 Posted January 17, 2015 Author Posted January 17, 2015 The && operator exists. Thanks for your help Quote Why bother?
Recommended Posts
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.