Example #1
0
 @Override
 public boolean matchesExact(IItemStack item) {
   ItemStack internal = getItemStack(item);
   if (internal.getTagCompound() != null && stack.getTagCompound() == null) {
     return false;
   }
   if (internal.getTagCompound() == null && stack.getTagCompound() != null) {
     return false;
   }
   if (internal.getTagCompound() == null && stack.getTagCompound() == null) {
     return stack.getItem() == internal.getItem()
         && (internal.getMetadata() == 32767 || stack.getMetadata() == internal.getMetadata());
   }
   if (internal.getTagCompound().getKeySet().equals(stack.getTagCompound().getKeySet())) {
     for (String s : internal.getTagCompound().getKeySet()) {
       if (!internal.getTagCompound().getTag(s).equals(stack.getTagCompound().getTag(s))) {
         return false;
       }
     }
   }
   return stack.getItem() == internal.getItem()
       && (internal.getMetadata() == 32767 || stack.getMetadata() == internal.getMetadata());
 }