package lv.enes.mc.eris_alchemy; 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.world.item.CreativeModeTab; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import org.quiltmc.loader.api.ModContainer; import org.quiltmc.qsl.base.api.entrypoint.ModInitializer; import org.quiltmc.qsl.item.setting.api.QuiltItemSettings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ErisAlchemy implements ModInitializer { public static final String ID = "eris_alchemy"; public static final Logger LOGGER = LoggerFactory.getLogger(ID); // Aside from crafting recipe inputs, covalence dusts can be used to repair equipment via shapeless crafting // Low covalence dust: // - wooden and stone tools // - leather armour // - fishing rods // - wooden bows // - turtle shells // Medium covalence dust: // - iron, gold, bronze, ruby, sapphire, and green sapphire tools and armour // - flints & steels // - shears // - elytras // High covalence dust: // - diamond and netherite tools and armour // 8 dusts are enough to repair 100% :3 public static final Item LOW_COVALENCE_DUST = new Item(new QuiltItemSettings()); public static final Item MEDIUM_COVALENCE_DUST = new Item(new QuiltItemSettings()); public static final Item HIGH_COVALENCE_DUST = new Item(new QuiltItemSettings()); public static final CreativeModeTab ITEM_GROUP = FabricItemGroup.builder() .icon(() -> new ItemStack(LOW_COVALENCE_DUST)) .title(Component.translatable("itemGroup.eris_alchemy.item_group")) .displayItems((context, entries) -> { entries.accept(LOW_COVALENCE_DUST); entries.accept(MEDIUM_COVALENCE_DUST); entries.accept(HIGH_COVALENCE_DUST); }) .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!"); } Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, new ResourceLocation(ID, "item_group"), ITEM_GROUP); Registry.register(BuiltInRegistries.ITEM, new ResourceLocation(ID, "low_covalence_dust"), LOW_COVALENCE_DUST); Registry.register(BuiltInRegistries.ITEM, new ResourceLocation(ID, "medium_covalence_dust"), MEDIUM_COVALENCE_DUST); Registry.register(BuiltInRegistries.ITEM, new ResourceLocation(ID, "high_covalence_dust"), HIGH_COVALENCE_DUST); Registry.register(BuiltInRegistries.RECIPE_SERIALIZER, CovalenceRepair.Serializer.ID, CovalenceRepair.Serializer.INSTANCE); } }