@Override
  public boolean contains(IIngredient ingredient) {
    if (!ingredient.getItems().isEmpty()) return false;

    for (ILiquidStack liquid : ingredient.getLiquids()) {
      if (!matches(liquid)) return false;
    }

    return false;
  }
  @Override
  public boolean contains(IIngredient ingredient) {
    List<IItemStack> items = ingredient.getItems();
    for (IItemStack item : items) {
      if (!matches(item)) return false;
    }

    return true;
  }
 @Override
 public boolean contains(IIngredient ingredient) {
   List<IItemStack> iitems = ingredient.getItems();
   return !(iitems == null || iitems.size() != 1) && matches(iitems.get(0));
 }