package lv.enes.mc.eris_alchemy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.PackType; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.ItemStack; import org.quiltmc.loader.api.ModContainer; import org.quiltmc.qsl.base.api.entrypoint.ModInitializer; import org.quiltmc.qsl.resource.loader.api.ResourceLoader; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ErisAlchemy implements ModInitializer { public static final Gson GSON = new GsonBuilder() .registerTypeAdapter(ResourceLocation.class, new ResourceLocation.Serializer()) .registerTypeAdapter(SimplifiedRecipe.class, new SimplifiedRecipe.Deserializer()) .create(); public static final String ID = "eris_alchemy"; public static final Logger LOGGER = LoggerFactory.getLogger(ID); public static final CreativeModeTab ITEM_GROUP = FabricItemGroup.builder() .icon(() -> new ItemStack(ErisAlchemyRegistry.Items.LOW_COVALENCE_DUST)) .title(Component.translatable("itemGroup.eris_alchemy.item_group")) .displayItems( (context, entries) -> ErisAlchemyRegistry.Items.consume((id, item) -> entries.accept(item)) ) .build(); @Override public void onInitialize(ModContainer mod) { LOGGER.info("Hello World from {}!", mod.metadata().name()); if (!mod.metadata().id().equals(ID)) { throw new RuntimeException("Hardcoded mod ID doesn't match the configured one!"); } ResourceLoader.get(PackType.SERVER_DATA).registerReloader(EmcLoader.INSTANCE); Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, new ResourceLocation(ID, "item_group"), ITEM_GROUP); ErisAlchemyRegistry.BlockEntities.consume( (id, block) -> Registry.register(BuiltInRegistries.BLOCK_ENTITY_TYPE, id, block) ); ErisAlchemyRegistry.Blocks.consume((id, block) -> Registry.register(BuiltInRegistries.BLOCK, id, block)); ErisAlchemyRegistry.Items.consume((id, item) -> Registry.register(BuiltInRegistries.ITEM, id, item)); ErisAlchemyRegistry.Menus.consume((id, menu) -> Registry.register(BuiltInRegistries.MENU, id, menu)); ErisAlchemyRegistry.RecipeSerializers.consume( (id, serializer) -> Registry.register(BuiltInRegistries.RECIPE_SERIALIZER, id, serializer) ); } }