@SuppressWarnings("deprecation")
	public int hashCode() {
		CustomItemHashCodeBuilder hashBuilder = new CustomItemHashCodeBuilder();
		hashBuilder.append(itemStack.getTypeId());
		hashBuilder.append(itemStack.getDurability());
		if (itemStack.getData() != null){
			hashBuilder.append(itemStack.getData().getItemTypeId());
			hashBuilder.append(itemStack.getData().getData());
		}
		if (itemStack.getItemMeta() != null && itemStack.getItemMeta().getDisplayName() != null){
			hashBuilder.append(itemStack.getItemMeta().getDisplayName());
		}
		if (itemStack.getItemMeta() != null && itemStack.getItemMeta().getLore() != null){
			for (String lore : itemStack.getItemMeta().getLore()){
				hashBuilder.append(lore);
			}
		}
		if (itemStack.getItemMeta() != null && itemStack.getItemMeta().getEnchants() != null){
			for (Enchantment enchantment : itemStack.getItemMeta().getEnchants().keySet()){
				hashBuilder.append(enchantment.getId())
					.append(itemStack.getEnchantmentLevel(enchantment));
			}
		}
		return hashBuilder.toHashCode();
	}