Package net.minecraft.recipe
Class ServerRecipeManager
java.lang.Object
net.minecraft.resource.SinglePreparationResourceReloader<PreparedRecipes>
net.minecraft.recipe.ServerRecipeManager
- All Implemented Interfaces:
RecipeManager,ResourceReloader
public class ServerRecipeManager
extends SinglePreparationResourceReloader<PreparedRecipes>
implements RecipeManager
A recipe manager allows easier use of recipes, such as finding matches and
remainders. It is also integrated with a recipe loader, which loads recipes
from data packs' JSON files.
- Mappings:
Namespace Name named net/minecraft/recipe/ServerRecipeManagerintermediary net/minecraft/class_1863official dfi
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceServerRecipeManager.MatchGetter<I extends RecipeInput,T extends Recipe<I>> static classstatic final recordstatic interfaceNested classes/interfaces inherited from interface net.minecraft.resource.ResourceReloader
ResourceReloader.Synchronizer -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final ResourceFinderprivate static final Loggerprivate PreparedRecipesprivate Map<RegistryKey<RecipePropertySet>, RecipePropertySet> private List<ServerRecipeManager.ServerRecipe> private Map<RegistryKey<Recipe<?>>, List<ServerRecipeManager.ServerRecipe>> private final RegistryWrapper.WrapperLookupprivate static final Map<RegistryKey<RecipePropertySet>, ServerRecipeManager.SoleIngredientGetter> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidapply(PreparedRecipes preparedRecipes, ResourceManager resourceManager, Profiler profiler) Handles the prepared intermediate object.private static List<ServerRecipeManager.ServerRecipe> collectServerRecipes(Iterable<RecipeEntry<?>> recipes, FeatureSet enabledFeatures) Filters recipes byenabledFeaturesand assigns an integer ID to each recipe and recipe group.private static ServerRecipeManager.SoleIngredientGettercookingIngredientGetter(RecipeType<? extends SingleStackRecipe> expectedType) static <I extends RecipeInput,T extends Recipe<I>>
ServerRecipeManager.MatchGetter<I, T> createCachedMatchGetter(RecipeType<T> type) Creates a cached match getter.protected static RecipeEntry<?> deserialize(RegistryKey<Recipe<?>> key, JsonObject json, RegistryWrapper.WrapperLookup registries) Reads a recipe from a JSON object.(package private) static List<Ingredient> filterIngredients(FeatureSet features, List<Ingredient> ingredients) voidforEachRecipeDisplay(RegistryKey<Recipe<?>> key, Consumer<RecipeDisplayEntry> action) get(NetworkRecipeId id) private <T extends Recipe<?>>
@Nullable RecipeEntry<T> get(RecipeType<T> type, RegistryKey<Recipe<?>> key) Returns a recipe with the givenidandtype, or empty if there is no such recipe.Optional<RecipeEntry<?>> get(RegistryKey<Recipe<?>> key) Returns a recipe with the givenid, or empty if there is no such recipe.<I extends RecipeInput,T extends Recipe<I>>
Optional<RecipeEntry<T>> getFirstMatch(RecipeType<T> type, I input, World world) Returns a recipe of the giventypethat match the giveninventoryandworld.<I extends RecipeInput,T extends Recipe<I>>
Optional<RecipeEntry<T>> getFirstMatch(RecipeType<T> type, I input, World world, @Nullable RecipeEntry<T> recipe) <I extends RecipeInput,T extends Recipe<I>>
Optional<RecipeEntry<T>> getFirstMatch(RecipeType<T> type, I input, World world, @Nullable RegistryKey<Recipe<?>> recipe) voidinitialize(FeatureSet features) private static booleanisEnabled(FeatureSet features, Ingredient ingredient) protected PreparedRecipesprepare(ResourceManager resourceManager, Profiler profiler) Prepares the intermediate object.values()Returns all recipes in this manager.Methods inherited from class net.minecraft.resource.SinglePreparationResourceReloader
reloadMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.minecraft.resource.ResourceReloader
getName
-
Field Details
-
LOGGER
- Mappings:
Namespace Name Mixin selector named LOGGERLnet/minecraft/recipe/ServerRecipeManager;LOGGER:Lorg/slf4j/Logger;intermediary field_9027Lnet/minecraft/class_1863;field_9027:Lorg/slf4j/Logger;official aLdfi;a:Lorg/slf4j/Logger;
-
SOLE_INGREDIENT_GETTERS
private static final Map<RegistryKey<RecipePropertySet>,ServerRecipeManager.SoleIngredientGetter> SOLE_INGREDIENT_GETTERS- Mappings:
Namespace Name Mixin selector named SOLE_INGREDIENT_GETTERSLnet/minecraft/recipe/ServerRecipeManager;SOLE_INGREDIENT_GETTERS:Ljava/util/Map;intermediary field_54897Lnet/minecraft/class_1863;field_54897:Ljava/util/Map;official bLdfi;b:Ljava/util/Map;
-
FINDER
- Mappings:
Namespace Name Mixin selector named FINDERLnet/minecraft/recipe/ServerRecipeManager;FINDER:Lnet/minecraft/resource/ResourceFinder;intermediary field_55213Lnet/minecraft/class_1863;field_55213:Lnet/minecraft/class_7654;official cLdfi;c:Lalk;
-
registries
- Mappings:
Namespace Name Mixin selector named registriesLnet/minecraft/recipe/ServerRecipeManager;registries:Lnet/minecraft/registry/RegistryWrapper$WrapperLookup;intermediary field_54637Lnet/minecraft/class_1863;field_54637:Lnet/minecraft/class_7225$class_7874;official dLdfi;d:Lji$a;
-
preparedRecipes
- Mappings:
Namespace Name Mixin selector named preparedRecipesLnet/minecraft/recipe/ServerRecipeManager;preparedRecipes:Lnet/minecraft/recipe/PreparedRecipes;intermediary field_54638Lnet/minecraft/class_1863;field_54638:Lnet/minecraft/class_10289;official eLdfi;e:Ldfj;
-
propertySets
- Mappings:
Namespace Name Mixin selector named propertySetsLnet/minecraft/recipe/ServerRecipeManager;propertySets:Ljava/util/Map;intermediary field_54639Lnet/minecraft/class_1863;field_54639:Ljava/util/Map;official fLdfi;f:Ljava/util/Map;
-
stonecutterRecipes
- Mappings:
Namespace Name Mixin selector named stonecutterRecipesLnet/minecraft/recipe/ServerRecipeManager;stonecutterRecipes:Lnet/minecraft/recipe/display/CuttingRecipeDisplay$Grouping;intermediary field_54640Lnet/minecraft/class_1863;field_54640:Lnet/minecraft/class_10291$class_10293;official gLdfi;g:Ldfo$b;
-
recipes
- Mappings:
Namespace Name Mixin selector named recipesLnet/minecraft/recipe/ServerRecipeManager;recipes:Ljava/util/List;intermediary field_54641Lnet/minecraft/class_1863;field_54641:Ljava/util/List;official hLdfi;h:Ljava/util/List;
-
recipesByKey
- Mappings:
Namespace Name Mixin selector named recipesByKeyLnet/minecraft/recipe/ServerRecipeManager;recipesByKey:Ljava/util/Map;intermediary field_54642Lnet/minecraft/class_1863;field_54642:Ljava/util/Map;official iLdfi;i:Ljava/util/Map;
-
-
Constructor Details
-
ServerRecipeManager
- Mappings:
Namespace Name Mixin selector named <init>Lnet/minecraft/recipe/ServerRecipeManager;<init>(Lnet/minecraft/registry/RegistryWrapper$WrapperLookup;)Vintermediary <init>Lnet/minecraft/class_1863;<init>(Lnet/minecraft/class_7225$class_7874;)Vofficial <init>Ldfi;<init>(Lji$a;)V
-
-
Method Details
-
prepare
Description copied from class:SinglePreparationResourceReloaderPrepares the intermediate object.This method is called in the prepare executor in a reload.
- Specified by:
preparein classSinglePreparationResourceReloader<PreparedRecipes>- Parameters:
resourceManager- the resource managerprofiler- the prepare profiler- Returns:
- the prepared object
- Mappings:
Namespace Name Mixin selector named prepareLnet/minecraft/recipe/ServerRecipeManager;prepare(Lnet/minecraft/resource/ResourceManager;Lnet/minecraft/util/profiler/Profiler;)Lnet/minecraft/recipe/PreparedRecipes;intermediary method_64680Lnet/minecraft/class_1863;method_64680(Lnet/minecraft/class_3300;Lnet/minecraft/class_3695;)Lnet/minecraft/class_10289;official aLdfi;a(Lavo;Lbrm;)Ldfj;
-
apply
protected void apply(PreparedRecipes preparedRecipes, ResourceManager resourceManager, Profiler profiler) Description copied from class:SinglePreparationResourceReloaderHandles the prepared intermediate object.This method is called in the apply executor, or the game engine, in a reload.
- Specified by:
applyin classSinglePreparationResourceReloader<PreparedRecipes>- Parameters:
preparedRecipes- the prepared objectresourceManager- the resource managerprofiler- the apply profiler- Mappings:
Namespace Name Mixin selector named applyLnet/minecraft/recipe/ServerRecipeManager;apply(Lnet/minecraft/recipe/PreparedRecipes;Lnet/minecraft/resource/ResourceManager;Lnet/minecraft/util/profiler/Profiler;)Vintermediary method_20705Lnet/minecraft/class_1863;method_20705(Lnet/minecraft/class_10289;Lnet/minecraft/class_3300;Lnet/minecraft/class_3695;)Vofficial aLdfi;a(Ldfj;Lavo;Lbrm;)V
-
initialize
- Mappings:
Namespace Name Mixin selector named initializeLnet/minecraft/recipe/ServerRecipeManager;initialize(Lnet/minecraft/resource/featuretoggle/FeatureSet;)Vintermediary method_64681Lnet/minecraft/class_1863;method_64681(Lnet/minecraft/class_7699;)Vofficial aLdfi;a(Lcvs;)V
-
filterIngredients
- Mappings:
Namespace Name Mixin selector named filterIngredientsLnet/minecraft/recipe/ServerRecipeManager;filterIngredients(Lnet/minecraft/resource/featuretoggle/FeatureSet;Ljava/util/List;)Ljava/util/List;intermediary method_64683Lnet/minecraft/class_1863;method_64683(Lnet/minecraft/class_7699;Ljava/util/List;)Ljava/util/List;official aLdfi;a(Lcvs;Ljava/util/List;)Ljava/util/List;
-
isEnabled
- Mappings:
Namespace Name Mixin selector named isEnabledLnet/minecraft/recipe/ServerRecipeManager;isEnabled(Lnet/minecraft/resource/featuretoggle/FeatureSet;Lnet/minecraft/recipe/Ingredient;)Zintermediary method_64682Lnet/minecraft/class_1863;method_64682(Lnet/minecraft/class_7699;Lnet/minecraft/class_1856;)Zofficial aLdfi;a(Lcvs;Ldex;)Z
-
getFirstMatch
public <I extends RecipeInput,T extends Recipe<I>> Optional<RecipeEntry<T>> getFirstMatch(RecipeType<T> type, I input, World world, @Nullable @Nullable RegistryKey<Recipe<?>> recipe) - Mappings:
Namespace Name Mixin selector named getFirstMatchLnet/minecraft/recipe/ServerRecipeManager;getFirstMatch(Lnet/minecraft/recipe/RecipeType;Lnet/minecraft/recipe/input/RecipeInput;Lnet/minecraft/world/World;Lnet/minecraft/registry/RegistryKey;)Ljava/util/Optional;intermediary method_42299Lnet/minecraft/class_1863;method_42299(Lnet/minecraft/class_3956;Lnet/minecraft/class_9695;Lnet/minecraft/class_1937;Lnet/minecraft/class_5321;)Ljava/util/Optional;official aLdfi;a(Ldfm;Ldfh;Ldkj;Lalq;)Ljava/util/Optional;
-
getFirstMatch
public <I extends RecipeInput,T extends Recipe<I>> Optional<RecipeEntry<T>> getFirstMatch(RecipeType<T> type, I input, World world, @Nullable @Nullable RecipeEntry<T> recipe) - Mappings:
Namespace Name Mixin selector named getFirstMatchLnet/minecraft/recipe/ServerRecipeManager;getFirstMatch(Lnet/minecraft/recipe/RecipeType;Lnet/minecraft/recipe/input/RecipeInput;Lnet/minecraft/world/World;Lnet/minecraft/recipe/RecipeEntry;)Ljava/util/Optional;intermediary method_59993Lnet/minecraft/class_1863;method_59993(Lnet/minecraft/class_3956;Lnet/minecraft/class_9695;Lnet/minecraft/class_1937;Lnet/minecraft/class_8786;)Ljava/util/Optional;official aLdfi;a(Ldfm;Ldfh;Ldkj;Ldfg;)Ljava/util/Optional;
-
getFirstMatch
public <I extends RecipeInput,T extends Recipe<I>> Optional<RecipeEntry<T>> getFirstMatch(RecipeType<T> type, I input, World world) Returns a recipe of the giventypethat match the giveninventoryandworld.If there are multiple matching recipes, the result is arbitrary, but this method will return the same result unless the recipes in this manager are updated.
- Parameters:
type- the desired recipe typeworld- the input world- Returns:
- a recipe of the given
typethat match the giveninventoryandworld - Mappings:
Namespace Name Mixin selector named getFirstMatchLnet/minecraft/recipe/ServerRecipeManager;getFirstMatch(Lnet/minecraft/recipe/RecipeType;Lnet/minecraft/recipe/input/RecipeInput;Lnet/minecraft/world/World;)Ljava/util/Optional;intermediary method_8132Lnet/minecraft/class_1863;method_8132(Lnet/minecraft/class_3956;Lnet/minecraft/class_9695;Lnet/minecraft/class_1937;)Ljava/util/Optional;official aLdfi;a(Ldfm;Ldfh;Ldkj;)Ljava/util/Optional;
-
get
Returns a recipe with the givenid, or empty if there is no such recipe.- Returns:
- a recipe with the given
id, or empty if there is no such recipe - Mappings:
Namespace Name Mixin selector named getLnet/minecraft/recipe/ServerRecipeManager;get(Lnet/minecraft/registry/RegistryKey;)Ljava/util/Optional;intermediary method_8130Lnet/minecraft/class_1863;method_8130(Lnet/minecraft/class_5321;)Ljava/util/Optional;official bLdfi;b(Lalq;)Ljava/util/Optional;
-
get
@Nullable private <T extends Recipe<?>> @Nullable RecipeEntry<T> get(RecipeType<T> type, RegistryKey<Recipe<?>> key) Returns a recipe with the givenidandtype, or empty if there is no such recipe.- Parameters:
type- the type of the desired recipe- Returns:
- a recipe with the given
idandtype, or empty if there is no such recipe - Mappings:
Namespace Name Mixin selector named getLnet/minecraft/recipe/ServerRecipeManager;get(Lnet/minecraft/recipe/RecipeType;Lnet/minecraft/registry/RegistryKey;)Lnet/minecraft/recipe/RecipeEntry;intermediary method_59821Lnet/minecraft/class_1863;method_59821(Lnet/minecraft/class_3956;Lnet/minecraft/class_5321;)Lnet/minecraft/class_8786;official aLdfi;a(Ldfm;Lalq;)Ldfg;
-
getPropertySets
- Mappings:
Namespace Name Mixin selector named getPropertySetsLnet/minecraft/recipe/ServerRecipeManager;getPropertySets()Ljava/util/Map;intermediary method_64692Lnet/minecraft/class_1863;method_64692()Ljava/util/Map;official bLdfi;b()Ljava/util/Map;
-
getStonecutterRecipeForSync
- Mappings:
Namespace Name Mixin selector named getStonecutterRecipeForSyncLnet/minecraft/recipe/ServerRecipeManager;getStonecutterRecipeForSync()Lnet/minecraft/recipe/display/CuttingRecipeDisplay$Grouping;intermediary method_64694Lnet/minecraft/class_1863;method_64694()Lnet/minecraft/class_10291$class_10293;official cLdfi;c()Ldfo$b;
-
getPropertySet
- Specified by:
getPropertySetin interfaceRecipeManager- Mappings:
Namespace Name Mixin selector named getPropertySetLnet/minecraft/recipe/RecipeManager;getPropertySet(Lnet/minecraft/registry/RegistryKey;)Lnet/minecraft/recipe/RecipePropertySet;intermediary method_64678Lnet/minecraft/class_10286;method_64678(Lnet/minecraft/class_5321;)Lnet/minecraft/class_10290;official aLdfc;a(Lalq;)Ldfk;
-
getStonecutterRecipes
- Specified by:
getStonecutterRecipesin interfaceRecipeManager- Mappings:
Namespace Name Mixin selector named getStonecutterRecipesLnet/minecraft/recipe/RecipeManager;getStonecutterRecipes()Lnet/minecraft/recipe/display/CuttingRecipeDisplay$Grouping;intermediary method_64677Lnet/minecraft/class_10286;method_64677()Lnet/minecraft/class_10291$class_10293;official aLdfc;a()Ldfo$b;
-
values
Returns all recipes in this manager.The returned set does not update with the manager. Modifications to the returned set does not affect this manager.
- Returns:
- all recipes in this manager
- Mappings:
Namespace Name Mixin selector named valuesLnet/minecraft/recipe/ServerRecipeManager;values()Ljava/util/Collection;intermediary method_8126Lnet/minecraft/class_1863;method_8126()Ljava/util/Collection;official dLdfi;d()Ljava/util/Collection;
-
get
- Mappings:
Namespace Name Mixin selector named getLnet/minecraft/recipe/ServerRecipeManager;get(Lnet/minecraft/recipe/NetworkRecipeId;)Lnet/minecraft/recipe/ServerRecipeManager$ServerRecipe;intermediary method_64686Lnet/minecraft/class_1863;method_64686(Lnet/minecraft/class_10298;)Lnet/minecraft/class_1863$class_10288;official aLdfi;a(Ldgj;)Ldfi$d;
-
forEachRecipeDisplay
- Mappings:
Namespace Name Mixin selector named forEachRecipeDisplayLnet/minecraft/recipe/ServerRecipeManager;forEachRecipeDisplay(Lnet/minecraft/registry/RegistryKey;Ljava/util/function/Consumer;)Vintermediary method_64679Lnet/minecraft/class_1863;method_64679(Lnet/minecraft/class_5321;Ljava/util/function/Consumer;)Vofficial aLdfi;a(Lalq;Ljava/util/function/Consumer;)V
-
deserialize
protected static RecipeEntry<?> deserialize(RegistryKey<Recipe<?>> key, JsonObject json, RegistryWrapper.WrapperLookup registries) Reads a recipe from a JSON object.- Returns:
- the read recipe
- Throws:
JsonParseException- if the recipe JSON is invalid- Implementation Note:
- Even though a recipe's serializer
is stored in a
typefield in the JSON format and referred so in this method, its registry has keyminecraft:root/minecraft:recipe_serializerand is thus named. - Mappings:
Namespace Name Mixin selector named deserializeLnet/minecraft/recipe/ServerRecipeManager;deserialize(Lnet/minecraft/registry/RegistryKey;Lcom/google/gson/JsonObject;Lnet/minecraft/registry/RegistryWrapper$WrapperLookup;)Lnet/minecraft/recipe/RecipeEntry;intermediary method_17720Lnet/minecraft/class_1863;method_17720(Lnet/minecraft/class_5321;Lcom/google/gson/JsonObject;Lnet/minecraft/class_7225$class_7874;)Lnet/minecraft/class_8786;official aLdfi;a(Lalq;Lcom/google/gson/JsonObject;Lji$a;)Ldfg;
-
createCachedMatchGetter
public static <I extends RecipeInput,T extends Recipe<I>> ServerRecipeManager.MatchGetter<I,T> createCachedMatchGetter(RecipeType<T> type) Creates a cached match getter. This is optimized for getting matches of the same recipe repeatedly, such as furnaces.- Mappings:
Namespace Name Mixin selector named createCachedMatchGetterLnet/minecraft/recipe/ServerRecipeManager;createCachedMatchGetter(Lnet/minecraft/recipe/RecipeType;)Lnet/minecraft/recipe/ServerRecipeManager$MatchGetter;intermediary method_42302Lnet/minecraft/class_1863;method_42302(Lnet/minecraft/class_3956;)Lnet/minecraft/class_1863$class_7266;official aLdfi;a(Ldfm;)Ldfi$a;
-
collectServerRecipes
private static List<ServerRecipeManager.ServerRecipe> collectServerRecipes(Iterable<RecipeEntry<?>> recipes, FeatureSet enabledFeatures) Filters recipes byenabledFeaturesand assigns an integer ID to each recipe and recipe group.- Mappings:
Namespace Name Mixin selector named collectServerRecipesLnet/minecraft/recipe/ServerRecipeManager;collectServerRecipes(Ljava/lang/Iterable;Lnet/minecraft/resource/featuretoggle/FeatureSet;)Ljava/util/List;intermediary method_64688Lnet/minecraft/class_1863;method_64688(Ljava/lang/Iterable;Lnet/minecraft/class_7699;)Ljava/util/List;official aLdfi;a(Ljava/lang/Iterable;Lcvs;)Ljava/util/List;
-
cookingIngredientGetter
private static ServerRecipeManager.SoleIngredientGetter cookingIngredientGetter(RecipeType<? extends SingleStackRecipe> expectedType) - Mappings:
Namespace Name Mixin selector named cookingIngredientGetterLnet/minecraft/recipe/ServerRecipeManager;cookingIngredientGetter(Lnet/minecraft/recipe/RecipeType;)Lnet/minecraft/recipe/ServerRecipeManager$SoleIngredientGetter;intermediary method_64992Lnet/minecraft/class_1863;method_64992(Lnet/minecraft/class_3956;)Lnet/minecraft/class_1863$class_10357;official bLdfi;b(Ldfm;)Ldfi$c;
-