I'm sorry, but to me it looks the same... This is from the potion class:
public void func_111185_a(EntityLivingBase par1EntityLivingBase, BaseAttributeMap par2BaseAttributeMap, int par3)
{
Iterator iterator = this.field_111188_I.entrySet().iterator();
while (iterator.hasNext())
{
Entry entry = (Entry)iterator.next();
AttributeInstance attributeinstance = par2BaseAttributeMap.func_111151_a((Attribute)entry.getKey());
if (attributeinstance != null)
{
AttributeModifier attributemodifier = (AttributeModifier)entry.getValue();
attributeinstance.func_111124_b(attributemodifier);
attributeinstance.func_111121_a(new AttributeModifier(attributemodifier.func_111167_a(), this.getName() + " " + par3, this.func_111183_a(par3, attributemodifier), attributemodifier.func_111169_c()));
}
}
}
This is basically the same thing except it grabs the AttributeInstance from the BaseAttributeMap and uses EntityLivingBase instead EntityPlayer. But changing my code to
BaseAttributeMap attributemap = par1EntityLivingBase.func_110140_aT();
AttributeInstance attributeinstance = attributemap.func_111151_a(SharedMonsterAttributes.field_111267_a);
attributeinstance.func_111124_b(attributeinstance.func_111127_a(Reference.UUID_HP));
attributeinstance.func_111121_a(new AttributeModifier(Reference.UUID_HP, "modifier.health", 0, 0));
does not work properly either.
However, calling that function like this (21 is the health boost potion):
Potion.potionTypes[21].func_111185_a(par3EntityPlayer, par3EntityPlayer.func_110140_aT(), 0);
does work. That's not really an option though because it only works in multipliers of 2 full hearts...
I feel like I'm close but I just cannot figure it out...