Fix an obscure DynEV bug where different items would be detected as the same item and not resolve properly
This commit is contained in:
parent
c8ae0b29d6
commit
61558daa61
1 changed files with 40 additions and 28 deletions
|
@ -28,38 +28,46 @@ public class ItemHelper
|
||||||
// Sort on itemID
|
// Sort on itemID
|
||||||
if (Item.getIdFromItem(itemStack1.getItem()) - Item.getIdFromItem(itemStack2.getItem()) == 0)
|
if (Item.getIdFromItem(itemStack1.getItem()) - Item.getIdFromItem(itemStack2.getItem()) == 0)
|
||||||
{
|
{
|
||||||
// Then sort on meta
|
// Sort on item
|
||||||
if (itemStack1.getItemDamage() == itemStack2.getItemDamage())
|
if (itemStack1.getItem() == itemStack2.getItem())
|
||||||
{
|
{
|
||||||
// Then sort on NBT
|
// Then sort on meta
|
||||||
if (itemStack1.hasTagCompound() && itemStack2.hasTagCompound())
|
if (itemStack1.getItemDamage() == itemStack2.getItemDamage())
|
||||||
{
|
{
|
||||||
// Then sort on stack size
|
// Then sort on NBT
|
||||||
if (itemStack1.getTagCompound().equals(itemStack2.getTagCompound()))
|
if (itemStack1.hasTagCompound() && itemStack2.hasTagCompound())
|
||||||
{
|
{
|
||||||
return (itemStack1.stackSize - itemStack2.stackSize);
|
// Then sort on stack size
|
||||||
|
if (ItemStack.areItemStackTagsEqual(itemStack1, itemStack2))
|
||||||
|
{
|
||||||
|
return (itemStack1.stackSize - itemStack2.stackSize);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return (itemStack1.getTagCompound().hashCode() - itemStack2.getTagCompound().hashCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!(itemStack1.hasTagCompound()) && itemStack2.hasTagCompound())
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else if (itemStack1.hasTagCompound() && !(itemStack2.hasTagCompound()))
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return (itemStack1.getTagCompound().hashCode() - itemStack2.getTagCompound().hashCode());
|
return (itemStack1.stackSize - itemStack2.stackSize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!(itemStack1.hasTagCompound()) && itemStack2.hasTagCompound())
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
else if (itemStack1.hasTagCompound() && !(itemStack2.hasTagCompound()))
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return (itemStack1.stackSize - itemStack2.stackSize);
|
return (itemStack1.getItemDamage() - itemStack2.getItemDamage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return (itemStack1.getItemDamage() - itemStack2.getItemDamage());
|
return itemStack1.getItem().getUnlocalizedName(itemStack1).compareToIgnoreCase(itemStack2.getItem().getUnlocalizedName(itemStack2));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -102,22 +110,26 @@ public class ItemHelper
|
||||||
// Sort on itemID
|
// Sort on itemID
|
||||||
if (Item.getIdFromItem(itemStack1.getItem()) - Item.getIdFromItem(itemStack2.getItem()) == 0)
|
if (Item.getIdFromItem(itemStack1.getItem()) - Item.getIdFromItem(itemStack2.getItem()) == 0)
|
||||||
{
|
{
|
||||||
// Then sort on meta
|
// Sort on item
|
||||||
if (itemStack1.getItemDamage() == itemStack2.getItemDamage())
|
if (itemStack1.getItem() == itemStack2.getItem())
|
||||||
{
|
{
|
||||||
// Then sort on NBT
|
// Then sort on meta
|
||||||
if (itemStack1.hasTagCompound() && itemStack2.hasTagCompound())
|
if (itemStack1.getItemDamage() == itemStack2.getItemDamage())
|
||||||
{
|
{
|
||||||
// Then sort on stack size
|
// Then sort on NBT
|
||||||
if (itemStack1.getTagCompound().equals(itemStack2.getTagCompound()))
|
if (itemStack1.hasTagCompound() && itemStack2.hasTagCompound())
|
||||||
|
{
|
||||||
|
// Then sort on stack size
|
||||||
|
if (ItemStack.areItemStackTagsEqual(itemStack1, itemStack2))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue