Fix LateInitEvent on Forge
This commit is contained in:
@@ -11,8 +11,7 @@
|
||||
"events.PlayerMixin",
|
||||
"events.client.ClientLevelMixin",
|
||||
"events.client.MinecraftMixin",
|
||||
"events.client.RealmsMainScreenMixin",
|
||||
"events.client.TutorialMixin"
|
||||
"events.client.RealmsMainScreenMixin"
|
||||
],
|
||||
"server": [
|
||||
"events.CommandMixin",
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package com.hypherionmc.craterlib.mixin.events.client;
|
||||
package com.hypherionmc.craterlib.mixin;
|
||||
|
||||
import com.hypherionmc.craterlib.api.event.client.LateInitEvent;
|
||||
import com.hypherionmc.craterlib.core.event.CraterEventBus;
|
@@ -6,6 +6,7 @@
|
||||
"mixins": [
|
||||
],
|
||||
"client": [
|
||||
"TutorialMixin"
|
||||
],
|
||||
"server": [
|
||||
],
|
||||
|
@@ -1,13 +1,22 @@
|
||||
package com.hypherionmc.craterlib;
|
||||
|
||||
import com.hypherionmc.craterlib.common.ForgeCommonEvents;
|
||||
import com.hypherionmc.craterlib.api.event.client.LateInitEvent;
|
||||
import com.hypherionmc.craterlib.client.CraterClientBus;
|
||||
import com.hypherionmc.craterlib.core.event.CraterEventBus;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
@Mod(CraterConstants.MOD_ID)
|
||||
public class CraterLib {
|
||||
|
||||
public CraterLib() {
|
||||
CraterEventBus.INSTANCE.registerEventListener(ForgeCommonEvents.class);
|
||||
CraterEventBus.INSTANCE.registerEventListener(CraterClientBus.class);
|
||||
|
||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> {
|
||||
LateInitEvent event = new LateInitEvent(Minecraft.getInstance(), Minecraft.getInstance().options);
|
||||
CraterEventBus.INSTANCE.postEvent(event);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,32 @@
|
||||
package com.hypherionmc.craterlib.client;
|
||||
|
||||
import com.hypherionmc.craterlib.CraterConstants;
|
||||
import com.hypherionmc.craterlib.api.event.client.LateInitEvent;
|
||||
import com.hypherionmc.craterlib.core.event.annot.CraterEventListener;
|
||||
import com.hypherionmc.craterlib.core.systems.internal.CreativeTabRegistry;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
|
||||
public class CraterClientBus {
|
||||
|
||||
@CraterEventListener
|
||||
public static void lateInit(LateInitEvent event) {
|
||||
CraterConstants.LOG.info("Registering Creative Tabs");
|
||||
|
||||
CreativeTabRegistry.getTabs().forEach(tab -> {
|
||||
CreativeModeTab.Builder builder = CreativeModeTab.builder();
|
||||
builder.title(Component.translatable("itemGroup." + tab.getResourceLocation().toString().replace(":", ".")));
|
||||
builder.icon(tab.getIcon());
|
||||
|
||||
if (!tab.getBackgroundSuffix().isEmpty()) {
|
||||
builder.backgroundSuffix(tab.getBackgroundSuffix());
|
||||
}
|
||||
|
||||
CreativeModeTab tabb = Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, tab.getResourceKey(), builder.build());
|
||||
tab.setTab(tabb);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
package com.hypherionmc.craterlib.client;
|
||||
|
||||
import com.hypherionmc.craterlib.CraterConstants;
|
||||
import com.hypherionmc.craterlib.api.event.client.CraterClientTickEvent;
|
||||
import com.hypherionmc.craterlib.core.event.CraterEventBus;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.event.TickEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
@Mod.EventBusSubscriber(modid = CraterConstants.MOD_ID, bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT)
|
||||
public class ForgeClientEvents {
|
||||
|
||||
@SubscribeEvent
|
||||
public static void clientTick(TickEvent.LevelTickEvent event) {
|
||||
CraterClientTickEvent craterClientTickEvent = new CraterClientTickEvent(Minecraft.getInstance().level);
|
||||
CraterEventBus.INSTANCE.postEvent(craterClientTickEvent);
|
||||
}
|
||||
|
||||
}
|
@@ -1,12 +1,7 @@
|
||||
package com.hypherionmc.craterlib.common;
|
||||
|
||||
import com.hypherionmc.craterlib.CraterConstants;
|
||||
import com.hypherionmc.craterlib.api.event.client.LateInitEvent;
|
||||
import com.hypherionmc.craterlib.core.event.annot.CraterEventListener;
|
||||
import com.hypherionmc.craterlib.core.systems.internal.CreativeTabRegistry;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
@@ -15,24 +10,6 @@ import net.minecraftforge.fml.common.Mod;
|
||||
@Mod.EventBusSubscriber(modid = CraterConstants.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
public class ForgeCommonEvents {
|
||||
|
||||
@CraterEventListener
|
||||
public static void lateInit(LateInitEvent event) {
|
||||
CraterConstants.LOG.info("Registering Creative Tabs");
|
||||
|
||||
CreativeTabRegistry.getTabs().forEach(tab -> {
|
||||
CreativeModeTab.Builder builder = CreativeModeTab.builder();
|
||||
builder.title(Component.translatable("itemGroup." + tab.getResourceLocation().toString().replace(":", ".")));
|
||||
builder.icon(tab.getIcon());
|
||||
|
||||
if (!tab.getBackgroundSuffix().isEmpty()) {
|
||||
builder.backgroundSuffix(tab.getBackgroundSuffix());
|
||||
}
|
||||
|
||||
CreativeModeTab tabb = Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, tab.getResourceKey(), builder.build());
|
||||
tab.setTab(tabb);
|
||||
});
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerTabs(BuildCreativeModeTabContentsEvent event) {
|
||||
CreativeModeTab tab = event.getTab();
|
||||
|
Reference in New Issue
Block a user