Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
at master 100 lines 2.9 kB view raw
1package net.lerariemann.infinity.data.recipe; 2 3import net.minecraft.core.registries.Registries; 4import net.minecraft.data.recipes.RecipeBuilder; 5//? >1.21 { 6import net.minecraft.data.recipes.RecipeOutput; 7import net.minecraft.advancements.AdvancementHolder; 8import net.minecraft.advancements.Criterion; 9import net.minecraft.world.item.crafting.CraftingBookCategory; 10import net.minecraft.resources.ResourceKey; 11import net.lerariemann.infinity.item.function.BiomeBottleCombiningRecipe; 12//?} else { 13/*import net.lerariemann.infinity.util.InfinityMethods; 14import net.minecraft.data.recipes.FinishedRecipe; 15import net.lerariemann.infinity.registry.core.ModItemFunctions; 16import com.google.gson.JsonObject; 17import net.minecraft.advancements.CriterionTriggerInstance; 18*///?} 19import net.minecraft.resources.ResourceLocation; 20import net.minecraft.world.item.Item; 21import net.minecraft.world.item.crafting.Recipe; 22import net.minecraft.world.item.crafting.RecipeSerializer; 23import org.jspecify.annotations.Nullable; 24 25import java.util.function.Consumer; 26 27import static net.lerariemann.infinity.registry.core.ModBlocks.BIOME_BOTTLE; 28 29public class BiomeBottleCombiningRecipeBuilder implements RecipeBuilder { 30 31 BiomeBottleCombiningRecipeBuilder() {} 32 33 @Override 34 public RecipeBuilder group(@Nullable String groupName) { 35 return null; 36 } 37 38 @Override 39 public Item getResult() { 40 return BIOME_BOTTLE.get().asItem(); 41 } 42 43 //? if >1.21.2 { 44 public void save(RecipeOutput recipeOutput, ResourceKey<Recipe<?>> id) { 45 BiomeBottleCombiningRecipe recipe = new BiomeBottleCombiningRecipe(CraftingBookCategory.MISC); 46 recipeOutput.accept(id, recipe, null); 47 } 48 //?} else if >1.21 { 49 /*public void save(RecipeOutput recipeOutput, ResourceLocation id) { 50 BiomeBottleCombiningRecipe recipe = new BiomeBottleCombiningRecipe(CraftingBookCategory.MISC); 51 recipeOutput.accept(id, recipe, null); 52 } 53 *///?} 54 55 //? >1.21 { 56 57 @Override 58 public RecipeBuilder unlockedBy(String name, Criterion<?> criterion) { 59 return null; 60 } 61 //?} else { 62 /*@Override 63 public RecipeBuilder unlockedBy(String criterionName, CriterionTriggerInstance criterionTrigger) { 64 return null; 65 } 66 67 @Override 68 public void save(Consumer<FinishedRecipe> finishedRecipeConsumer, ResourceLocation recipeId) { 69 finishedRecipeConsumer.accept(new CombiningRecipeResult()); 70 } 71 72 private static class CombiningRecipeResult implements FinishedRecipe { 73 @Override 74 public void serializeRecipeData(JsonObject json) { 75 json.addProperty("category", "misc"); 76 } 77 78 @Override 79 public ResourceLocation getId() { 80 return InfinityMethods.getId("biome_bottle_combining"); 81 } 82 83 @Override 84 public RecipeSerializer<?> getType() { 85 return ModItemFunctions.BIOME_BOTTLE_COMBINING.get(); 86 } 87 88 @Override 89 public @Nullable JsonObject serializeAdvancement() { 90 return null; 91 } 92 93 @Override 94 public @Nullable ResourceLocation getAdvancementId() { 95 return null; 96 } 97 } 98 *///?} 99 100}