Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
1package net.lerariemann.infinity.compat.rrv;
2
3//? if >1.21.7 {
4
5import cc.cassian.rrv.api.ReliableRecipeViewerPlugin;
6import cc.cassian.rrv.api.recipe.ItemView;
7import cc.cassian.rrv.common.builtin.brewing.BrewingServerRecipe;
8import cc.cassian.rrv.common.recipe.ServerRecipeManager;
9import net.lerariemann.infinity.InfinityMod;
10import net.lerariemann.infinity.compat.rrv.iridescence_crafting.IridescenceCraftingServerRecipe;
11import net.lerariemann.infinity.compat.rrv.iridescence_crafting.IridescenceCraftingViewRecipe;
12import net.lerariemann.infinity.compat.rrv.portal_crafting.PortalCraftingServerRecipe;
13import net.lerariemann.infinity.compat.rrv.portal_crafting.PortalCraftingViewRecipe;
14import net.lerariemann.infinity.item.function.CollisionCraftingRecipe;
15import net.lerariemann.infinity.registry.core.ModItems;
16import net.minecraft.world.item.Items;
17import net.minecraft.world.item.alchemy.PotionContents;
18import net.minecraft.world.item.alchemy.Potions;
19import net.minecraft.world.item.crafting.Ingredient;
20
21import java.util.Collections;
22
23public class RrvIntegration implements ReliableRecipeViewerPlugin {
24 boolean initialized = false;
25 @Override
26 public void onIntegrationInitialize() {
27 if (!initialized)
28 initialize();
29 initialized = true;
30 }
31
32 public static void initialize() {
33 InfinityMod.LOGGER.info("Initializing Infinite Dimensions - RRV integration");
34 // Serverside recipes
35 ItemView.addServerRecipeProvider(recipeList -> {
36 // Portal Crafting - serverside
37 ServerRecipeManager.INSTANCE.getRecipesForType(CollisionCraftingRecipe.Type.PORTAL).forEach(recipe -> recipeList.add(new PortalCraftingServerRecipe(recipe.getInput(), recipe.getResultItem(), recipe.getLore())));
38 // Iridescence Crafting - serverside
39 ServerRecipeManager.INSTANCE.getRecipesForType(CollisionCraftingRecipe.Type.IRIDESCENCE).forEach(recipe -> recipeList.add(new IridescenceCraftingServerRecipe(recipe.getInput(), recipe.getResultItem(), recipe.getLore())));
40 // Chromatic Potions
41 recipeList.add(new BrewingServerRecipe(ModItems.CHROMATIC_POTION.get().getDefaultInstance(), Ingredient.of(ModItems.CHROMATIC_MATTER.get()), PotionContents.createItemStack(Items.POTION, Potions.AWKWARD)));
42 });
43 // Portal Crafting - Clientside
44 ItemView.addClientRecipeWrapper(PortalCraftingServerRecipe.TYPE, modRecipe -> Collections.singletonList(new PortalCraftingViewRecipe(modRecipe)));
45 // Iridescence Crafting - Clientside
46 ItemView.addClientRecipeWrapper(IridescenceCraftingServerRecipe.TYPE, modRecipe -> Collections.singletonList(new IridescenceCraftingViewRecipe(modRecipe)));
47
48 }
49}
50//?}