Class SpecialRecipeSerializer<T extends Recipe<?>>

java.lang.Object
net.minecraft.recipe.SpecialRecipeSerializer<T>
All Implemented Interfaces:
RecipeSerializer<T>

public class SpecialRecipeSerializer<T extends Recipe<?>> extends Object implements RecipeSerializer<T>
A serializer for hardcoded recipes. The recipes with this serializer don't transport any extra data besides their ID when read from JSON or synchronized over network.

The name "special" comes from the fact that in vanilla, recipes using this serializer have IDs starting with crafting_special_. All of their logic and ingredients are also defined in code, which distinguishes them from "non-special" recipes.

Mappings:
Namespace Name
official cdc
intermediary net/minecraft/class_1866
named net/minecraft/recipe/SpecialRecipeSerializer
  • Field Details

    • factory

      private final Function<Identifier,T extends Recipe<?>> factory
      Mappings:
      Namespace Name Mixin selector
      official v Lcdc;v:Ljava/util/function/Function;
      intermediary field_9046 Lnet/minecraft/class_1866;field_9046:Ljava/util/function/Function;
      named factory Lnet/minecraft/recipe/SpecialRecipeSerializer;factory:Ljava/util/function/Function;
  • Constructor Details

    • SpecialRecipeSerializer

      public SpecialRecipeSerializer(Function<Identifier,T> factory)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lcdc;<init>(Ljava/util/function/Function;)V
      intermediary <init> Lnet/minecraft/class_1866;<init>(Ljava/util/function/Function;)V
      named <init> Lnet/minecraft/recipe/SpecialRecipeSerializer;<init>(Ljava/util/function/Function;)V
  • Method Details

    • read

      public T read(Identifier id, JsonObject json)
      Reads a recipe from a JSON object.
      Specified by:
      read in interface RecipeSerializer<T extends Recipe<?>>
      Parameters:
      id - the recipe's ID
      json - the recipe JSON
      Returns:
      the read recipe
      Mappings:
      Namespace Name Mixin selector
      official a Lccu;a(Laaj;Lcom/google/gson/JsonObject;)Lccs;
      intermediary method_8121 Lnet/minecraft/class_1865;method_8121(Lnet/minecraft/class_2960;Lcom/google/gson/JsonObject;)Lnet/minecraft/class_1860;
      named read Lnet/minecraft/recipe/RecipeSerializer;read(Lnet/minecraft/util/Identifier;Lcom/google/gson/JsonObject;)Lnet/minecraft/recipe/Recipe;
    • read

      public T read(Identifier id, PacketByteBuf buf)
      Reads a recipe from a packet byte buf, usually on the client.

      This can throw whatever exception the packet byte buf throws. This may be called in the netty event loop than the client game engine thread.

      Specified by:
      read in interface RecipeSerializer<T extends Recipe<?>>
      Parameters:
      id - the recipe's ID
      buf - the recipe buf
      Returns:
      the read recipe
      Mappings:
      Namespace Name Mixin selector
      official a Lccu;a(Laaj;Lqx;)Lccs;
      intermediary method_8122 Lnet/minecraft/class_1865;method_8122(Lnet/minecraft/class_2960;Lnet/minecraft/class_2540;)Lnet/minecraft/class_1860;
      named read Lnet/minecraft/recipe/RecipeSerializer;read(Lnet/minecraft/util/Identifier;Lnet/minecraft/network/PacketByteBuf;)Lnet/minecraft/recipe/Recipe;
    • write

      public void write(PacketByteBuf buf, T recipe)
      Writes a recipe to a packet byte buf, usually on the server.

      The recipe's ID is already written into the buf when this is called.

      This can throw whatever exception the packet byte buf throws. This may be called in the netty event loop than the server game engine thread.

      Specified by:
      write in interface RecipeSerializer<T extends Recipe<?>>
      Parameters:
      buf - the recipe buf
      recipe - the recipe
      Mappings:
      Namespace Name Mixin selector
      official a Lccu;a(Lqx;Lccs;)V
      intermediary method_8124 Lnet/minecraft/class_1865;method_8124(Lnet/minecraft/class_2540;Lnet/minecraft/class_1860;)V
      named write Lnet/minecraft/recipe/RecipeSerializer;write(Lnet/minecraft/network/PacketByteBuf;Lnet/minecraft/recipe/Recipe;)V