package top.azimkin.militaryarmor; import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.Component; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.RegistryObject; import java.lang.reflect.Modifier; @SuppressWarnings({"unused", "unchecked"}) public class ModCreativeTabs { private static final DeferredRegister CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MilitaryArmor.MOD_ID); public static final RegistryObject MILITARY_ARMOR_TAB = CREATIVE_MODE_TABS.register("example_tab", () -> CreativeModeTab.builder() .icon(() -> ModItems.VSU_HELMET_1.get().getDefaultInstance()) .title(Component.translatable("item_group." + MilitaryArmor.MOD_ID + ".main")) .displayItems((parameters, output) -> { try { for (var f : ModItems.class.getDeclaredFields()) { if (Modifier.isStatic(f.getModifiers()) && Modifier.isFinal(f.getModifiers()) && f.getType() == RegistryObject.class) { output.accept(((RegistryObject) f.get(null)).get()); } } } catch (Throwable throwable) { MilitaryArmor.LOGGER.error("Error while trying to register items in a tab", throwable); } }).build()); public static void register(IEventBus bus) { CREATIVE_MODE_TABS.register(bus); } }