36 lines
1.7 KiB
Java
36 lines
1.7 KiB
Java
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<CreativeModeTab> CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MilitaryArmor.MOD_ID);
|
|
|
|
public static final RegistryObject<CreativeModeTab> 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<? extends Item>) 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);
|
|
}
|
|
}
|