Topic category: General discussion
I have this code which activates when the entity is right-clicked. But it doesn't work properly for some reason. What happens is that the first part of the code activates but when the "Tamed" double becomes true the if statement still activates the first part of the code. And the else if part of the code does not function. Am I doing something wrong with the code or is it just a bug. If it is a bug is there any way I can go around this bug? I think the problem is that the "Tamed" part is not turning to true, but I can't find the reason.
The code goes like this;
double Tamed = false;
if (((Tamed) == false)) {
if ((((entity instanceof EntityLivingBase) ? ((EntityLivingBase) entity).getHeldItemMainhand() : ItemStack.EMPTY)
.getItem() == new ItemStack(Items.DIAMOND, (int) (1)).getItem())) {
if (entity instanceof EntityPlayer)
((EntityPlayer) entity).inventory.clearMatchingItems(new ItemStack(Items.DIAMOND, (int) (1)).getItem(), -1, (int) 1, null);
if (world instanceof WorldServer)
((WorldServer) world).spawnParticle(EnumParticleTypes.HEART, x, y, z, (int) 10, 1, 3, 1, 1, new int[0]);
if (entity instanceof EntityLivingBase) {
((EntityLivingBase) entity).swingArm(EnumHand.MAIN_HAND);
}
Tamed = (double) true;
}
} else if (((Tamed) == true)) {
if ((((entity instanceof EntityLivingBase) ? ((EntityLivingBase) entity).getHeldItemMainhand() : ItemStack.EMPTY)
.getItem() == new ItemStack(ItemLapisPowder.block, (int) (1)).getItem())) {
if (entity instanceof EntityLivingBase)
((EntityLivingBase) entity).addPotionEffect(new PotionEffect(MobEffects.INSTANT_HEALTH, (int) 1, (int) 1));
if (entity instanceof EntityPlayer)
((EntityPlayer) entity).inventory.clearMatchingItems(new ItemStack(ItemLapisPowder.block, (int) (1)).getItem(), -1, (int) 1,
null);
if (world instanceof WorldServer)
((WorldServer) world).spawnParticle(EnumParticleTypes.HEART, x, y, z, (int) 10, 1, 3, 1, 1, new int[0]);
if (entity instanceof EntityLivingBase) {
((EntityLivingBase) entity).swingArm(EnumHand.MAIN_HAND);
}
}
}
}
}
Double variables are numbers, not true/false. You might want to use "boolean" instead