Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
1package net.lerariemann.infinity.registry.var;
2
3import static net.lerariemann.infinity.registry.core.ModItems.*;
4import static net.minecraft.world.item.Items.*;
5//? if >1.21 {
6import static net.minecraft.world.item.Items.OMINOUS_TRIAL_KEY;
7import static net.minecraft.world.item.Items.VAULT;
8//?}
9import net.lerariemann.infinity.registry.core.ModItems;
10import net.lerariemann.infinity.util.VersionMethods;
11import net.minecraft.core.registries.BuiltInRegistries;
12import net.minecraft.resources.ResourceKey;
13import net.minecraft.world.item.CreativeModeTab;
14import net.minecraft.world.item.CreativeModeTabs;
15import net.minecraft.world.item.Item;
16//? if neoforge {
17/*import net.neoforged.bus.api.SubscribeEvent;
18import net.neoforged.fml.common.EventBusSubscriber;
19import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent;
20@EventBusSubscriber
21*///?} else if forge {
22/*import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
23import net.minecraftforge.eventbus.api.SubscribeEvent;
24import net.minecraftforge.fml.common.Mod;
25@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
26*///?} else {
27import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroupEntries;
28//?}
29
30public class ModItemGroups {
31
32 public static void addAfter(
33 //? forge || neoforge {
34 /*BuildCreativeModeTabContentsEvent
35 *///?} else {
36 FabricItemGroupEntries
37 //?}
38 event, Item itemBefore, Item itemAfter) {
39 //? if neoforge {
40 /*event.insertAfter(itemBefore.getDefaultInstance(), itemAfter.getDefaultInstance(), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS);
41 *///?} else if fabric {
42 event.addAfter(itemBefore, itemAfter);
43 //?} else {
44 /*event.accept(itemAfter.getDefaultInstance(), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS);
45 *///?}
46 }
47 public static void addAfter(
48 //? forge || neoforge {
49 /*BuildCreativeModeTabContentsEvent
50 *///?} else {
51 FabricItemGroupEntries
52 //?}
53 event, Item itemBefore) {
54 event.accept(itemBefore);
55 }
56
57 //MyItemsClass.MY_ITEM is a Supplier<? extends Item>, MyBlocksClass.MY_BLOCK is a Supplier<? extends Block>
58 //? forge || neoforge {
59 /*@SubscribeEvent
60 public static void buildContents(BuildCreativeModeTabContentsEvent event) {
61 buildContents(event.getTabKey(), event);
62 }
63 *///?}
64
65 public static void buildContents(
66 //? forge || neoforge {
67 /*ResourceKey<CreativeModeTab> creativeModeTab, BuildCreativeModeTabContentsEvent
68 *///?} else {
69 CreativeModeTab creativeModeTab, FabricItemGroupEntries
70 //?}
71 event) {
72 // Is this the tab we want to add to?
73 if (equals(creativeModeTab, CreativeModeTabs.BUILDING_BLOCKS)) {
74 addAfter(event, NETHERITE_BLOCK, ModItems.NETHERITE_SLAB_ITEM.get());
75 addAfter(event, NETHERITE_BLOCK, ModItems.NETHERITE_STAIRS_ITEM.get());
76 } else if (equals(creativeModeTab, CreativeModeTabs.FUNCTIONAL_BLOCKS)) {
77 addAfter(event, LECTERN, ModItems.COSMIC_ALTAR_ITEM.get());
78 addAfter(event, LECTERN, ModItems.ALTAR_ITEM.get());
79 addAfter(event, LODESTONE, ModItems.ANT_ITEM.get());
80 addAfter(event, CHISELED_BOOKSHELF, ModItems.BOOK_BOX_ITEM.get());
81 addAfter(event, VAULT, ModItems.TIME_BOMB_ITEM.get());
82 } else if (equals(creativeModeTab, CreativeModeTabs.INGREDIENTS)) {
83 addAfter(event, DISC_FRAGMENT_5, ModItems.FOOTPRINT.get());
84 addAfter(event, OMINOUS_TRIAL_KEY, TRANSFINITE_KEY.get());
85 addAfter(event, NETHER_STAR, ModItems.IRIDESCENT_STAR.get());
86 addAfter(event, NETHER_STAR, ModItems.STAR_OF_LANG.get());
87 addAfter(event, DISC_FRAGMENT_5, ModItems.CHROMATIC_MATTER.get());
88 addAfter(event, DISC_FRAGMENT_5, ModItems.WHITE_MATTER.get());
89 addAfter(event, DISC_FRAGMENT_5, ModItems.BLACK_MATTER.get());
90 addAfter(event, EXPERIENCE_BOTTLE, ModItems.BIOME_BOTTLE_ITEM.get());
91 } else if (equals(creativeModeTab, CreativeModeTabs.FOOD_AND_DRINKS)) {
92 addAfter(event, MILK_BUCKET, ModItems.HOME_ITEM.get());
93 addAfter(event, HONEY_BOTTLE, ModItems.IRIDESCENT_POTION.get());
94 addAfter(event, HONEY_BOTTLE, ModItems.CHROMATIC_POTION.get());
95 } else if (equals(creativeModeTab, CreativeModeTabs.TOOLS_AND_UTILITIES)) {
96 addAfter(event, WRITABLE_BOOK, ModItems.F4.get());
97 addAfter(event, MUSIC_DISC_PIGSTEP, ModItems.DISC.get());
98 addAfter(event, MILK_BUCKET, ModItems.IRIDESCENCE_BUCKET.get());
99 } else if (equals(creativeModeTab, CreativeModeTabs.COLORED_BLOCKS)) {
100 addAfter(event, PINK_WOOL, ModItems.IRIDESCENT_WOOL.get());
101 addAfter(event, PINK_CARPET, ModItems.IRIDESCENT_CARPET.get());
102 addAfter(event, PINK_WOOL, ModItems.CHROMATIC_WOOL.get());
103 addAfter(event, PINK_CARPET, ModItems.CHROMATIC_CARPET.get());
104 addAfter(event, PINK_TERRACOTTA, ModItems.CURSOR_ITEM.get());
105 } else if (equals(creativeModeTab, CreativeModeTabs.SPAWN_EGGS)) {
106 addAfter(event, ANT_SPAWN_EGG.get());
107 addAfter(event, CHAOS_PAWN_SPAWN_EGG.get());
108 addAfter(event, BISHOP_SPAWN_EGG.get());
109 addAfter(event, CREEPER_SPAWN_EGG, CHAOS_CREEPER_SPAWN_EGG.get());
110 addAfter(event, SKELETON_SPAWN_EGG, CHAOS_SKELETON_SPAWN_EGG.get());
111 addAfter(event, SLIME_SPAWN_EGG, CHAOS_SLIME_SPAWN_EGG.get());
112 }
113 }
114
115 private static boolean equals(CreativeModeTab creativeModeTab, ResourceKey<CreativeModeTab> tabKey) {
116 return creativeModeTab == VersionMethods.getFromRegistry(BuiltInRegistries.CREATIVE_MODE_TAB, tabKey);
117 }
118
119 private static boolean equals(ResourceKey<CreativeModeTab> creativeModeTab, ResourceKey<CreativeModeTab> tabKey) {
120 return creativeModeTab == tabKey;
121 }
122}