@@ -0,0 +1,2149 @@
+/*%0A * Copyright (c) 2017 3TUSK, Seraph-JACK, yesterday17, et al.%0A *%0A * This Source Code Form is subject to the terms of the Mozilla Public%0A * License, v. 2.0. If a copy of the MPL was not distributed with this%0A * file, You can obtain one at http://mozilla.org/MPL/2.0/.%0A */%0A%0Apackage info.tritusk.mooncakecraft.crafting;%0A%0Aimport com.google.gson.JsonObject;%0Aimport net.minecraft.init.Items;%0Aimport net.minecraft.inventory.InventoryCrafting;%0Aimport net.minecraft.item.ItemStack;%0Aimport net.minecraft.item.crafting.IRecipe;%0Aimport net.minecraft.item.crafting.Ingredient;%0Aimport net.minecraft.item.crafting.ShapelessRecipes;%0Aimport net.minecraft.util.NonNullList;%0Aimport net.minecraftforge.common.crafting.IRecipeFactory;%0Aimport net.minecraftforge.common.crafting.JsonContext;%0Aimport net.minecraftforge.oredict.ShapelessOreRecipe;%0A%0Apublic class RemainBottleRecipeFactory implements IRecipeFactory%7B%0A%0A    @Override%0A    public IRecipe parse(JsonContext context, JsonObject json) %7B%0A        ShapelessOreRecipe recipe = ShapelessOreRecipe.factory(context, json);%0A%0A        return new RemainBottleRecipe(%22mooncakecraft:remain_bottle%22, recipe.getRecipeOutput(), recipe.getIngredients());%0A    %7D%0A%0A    public static class RemainBottleRecipe extends ShapelessRecipes %7B%0A        public RemainBottleRecipe(String group, ItemStack output, NonNullList%3CIngredient%3E ingredients) %7B%0A            super(group, output, ingredients);%0A        %7D%0A%0A        @Override%0A        public NonNullList%3CItemStack%3E getRemainingItems(InventoryCrafting inv)%0A        %7B%0A            NonNullList%3CItemStack%3E nonnulllist = NonNullList.%3CItemStack%3EwithSize(inv.getSizeInventory(), ItemStack.EMPTY);%0A%0A            for (int i = 0; i %3C nonnulllist.size(); ++i)%0A            %7B%0A                ItemStack itemstack = inv.getStackInSlot(i);%0A%0A                if(itemstack.isItemEqual(new ItemStack(Items.POTIONITEM))) %7B%0A                    nonnulllist.set(i, new ItemStack(Items.GLASS_BOTTLE, 1));%0A                    continue;%0A                %7D%0A%0A                nonnulllist.set(i, net.minecraftforge.common.ForgeHooks.getContainerItem(itemstack));%0A            %7D%0A%0A            return nonnulllist;%0A        %7D%0A    %7D%0A%7D%0A

Remove IRecipe and uses IRecipeFactory & Recipe files instead.