diff --git a/Fabric/src/main/java/me/hypherionmc/craterlib/CraterLibInitializer.java b/Fabric/src/main/java/me/hypherionmc/craterlib/CraterLibInitializer.java index 85508e3..62d4c49 100644 --- a/Fabric/src/main/java/me/hypherionmc/craterlib/CraterLibInitializer.java +++ b/Fabric/src/main/java/me/hypherionmc/craterlib/CraterLibInitializer.java @@ -1,37 +1,13 @@ package me.hypherionmc.craterlib; import me.hypherionmc.craterlib.common.FabricCommonHelper; -import me.hypherionmc.craterlib.systems.internal.CreativeTabRegistry; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; -import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; -import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; -import net.minecraft.network.chat.Component; -import net.minecraft.world.item.CreativeModeTab; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.stream.Collectors; public class CraterLibInitializer implements ModInitializer { @Override public void onInitialize() { ServerLifecycleEvents.SERVER_STARTING.register(server -> FabricCommonHelper.server = server); - - CreativeTabRegistry.getTABS().forEach(tab -> { - CreativeModeTab finalTab = FabricItemGroup.builder(tab.getResourceLocation()) - .title(Component.translatable("itemGroup." + - tab.getResourceLocation().toString().replace(":", ".") - )) - .icon(tab.getIcon()) - .build(); - - tab.setTab(finalTab); - - ItemGroupEvents.modifyEntriesEvent(finalTab).register(entries -> CreativeTabRegistry - .getTabItems() - .stream().filter(t -> t.getLeft().get() == finalTab && t.getRight() != null) - .map(Pair::getRight).forEach(itm -> entries.accept(itm.get()))); - }); } } diff --git a/Fabric/src/main/java/me/hypherionmc/craterlib/mixin/MinecraftMixin.java b/Fabric/src/main/java/me/hypherionmc/craterlib/mixin/MinecraftMixin.java new file mode 100644 index 0000000..0d2194a --- /dev/null +++ b/Fabric/src/main/java/me/hypherionmc/craterlib/mixin/MinecraftMixin.java @@ -0,0 +1,38 @@ +package me.hypherionmc.craterlib.mixin; + +import me.hypherionmc.craterlib.systems.internal.CreativeTabRegistry; +import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; +import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; +import net.minecraft.client.Minecraft; +import net.minecraft.client.main.GameConfig; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.CreativeModeTab; +import org.apache.commons.lang3.tuple.Pair; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(Minecraft.class) +public class MinecraftMixin { + + @Inject(method = "", at = @At("RETURN")) + private void injectCraterLateInit(GameConfig gameConfig, CallbackInfo ci) { + CreativeTabRegistry.getTABS().forEach(tab -> { + CreativeModeTab finalTab = FabricItemGroup.builder(tab.getResourceLocation()) + .title(Component.translatable("itemGroup." + + tab.getResourceLocation().toString().replace(":", ".") + )) + .icon(tab.getIcon()) + .build(); + + tab.setTab(finalTab); + + ItemGroupEvents.modifyEntriesEvent(finalTab).register(entries -> CreativeTabRegistry + .getTabItems() + .stream().filter(t -> t.getLeft().get() == finalTab && t.getRight() != null) + .map(Pair::getRight).forEach(itm -> entries.accept(itm.get()))); + }); + } + +} diff --git a/Fabric/src/main/resources/craterlib.fabric.mixins.json b/Fabric/src/main/resources/craterlib.fabric.mixins.json index d767094..d84e77f 100644 --- a/Fabric/src/main/resources/craterlib.fabric.mixins.json +++ b/Fabric/src/main/resources/craterlib.fabric.mixins.json @@ -6,6 +6,7 @@ "mixins": [ ], "client": [ + "MinecraftMixin" ], "server": [ ], diff --git a/gradle.properties b/gradle.properties index ddf3dab..6591ebb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ # Project version_major=0 version_minor=0 -version_patch=5d +version_patch=6d group=me.hypherionmc.craterlib # Common