Files
CraterLib/NeoForge/src/main/java/com/hypherionmc/craterlib/CraterLib.java

60 lines
2.7 KiB
Java
Raw Normal View History

2023-11-25 21:38:04 +02:00
package com.hypherionmc.craterlib;
import com.hypherionmc.craterlib.api.events.client.LateInitEvent;
2024-05-05 23:07:50 +02:00
import com.hypherionmc.craterlib.client.gui.config.CraterConfigScreen;
2023-11-25 21:38:04 +02:00
import com.hypherionmc.craterlib.common.NeoForgeServerEvents;
import com.hypherionmc.craterlib.compat.Vanish;
2024-05-05 23:07:50 +02:00
import com.hypherionmc.craterlib.core.config.ConfigController;
import com.hypherionmc.craterlib.core.config.ModuleConfig;
import com.hypherionmc.craterlib.core.config.annotations.NoConfigScreen;
2023-11-25 21:38:04 +02:00
import com.hypherionmc.craterlib.core.event.CraterEventBus;
2024-01-02 15:16:13 +02:00
import com.hypherionmc.craterlib.core.networking.CraterPacketNetwork;
import com.hypherionmc.craterlib.core.networking.PacketRegistry;
import com.hypherionmc.craterlib.core.networking.data.PacketSide;
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
2024-01-02 15:16:13 +02:00
import com.hypherionmc.craterlib.network.CraterNeoForgeNetworkHandler;
import com.hypherionmc.craterlib.nojang.client.BridgedMinecraft;
import com.hypherionmc.craterlib.nojang.client.BridgedOptions;
2023-11-25 21:38:04 +02:00
import net.minecraft.client.Minecraft;
import net.neoforged.bus.api.IEventBus;
2024-05-05 23:07:50 +02:00
import net.neoforged.fml.ModList;
2023-11-25 21:38:04 +02:00
import net.neoforged.fml.common.Mod;
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
import net.neoforged.fml.loading.FMLEnvironment;
2024-01-02 15:16:13 +02:00
import net.neoforged.fml.loading.FMLLoader;
2024-05-05 23:07:50 +02:00
import net.neoforged.neoforge.client.gui.IConfigScreenFactory;
2023-11-25 21:38:04 +02:00
import net.neoforged.neoforge.common.NeoForge;
2024-05-05 23:07:50 +02:00
import java.util.Optional;
2023-11-25 21:38:04 +02:00
@Mod(CraterConstants.MOD_ID)
public class CraterLib {
2024-01-02 15:16:13 +02:00
private final PacketRegistry handler;
2023-11-25 21:38:04 +02:00
public CraterLib(IEventBus eventBus) {
NeoForge.EVENT_BUS.register(new NeoForgeServerEvents());
eventBus.addListener(this::commonSetup);
2024-01-02 15:16:13 +02:00
handler = new CraterNeoForgeNetworkHandler(FMLLoader.getDist().isClient() ? PacketSide.CLIENT : PacketSide.SERVER);
if (ModloaderEnvironment.INSTANCE.isModLoaded("vmod")) {
eventBus.register(new Vanish());
}
2023-11-25 21:38:04 +02:00
}
public void commonSetup(FMLCommonSetupEvent evt) {
2024-01-02 15:16:13 +02:00
new CraterPacketNetwork(handler);
2023-11-25 21:38:04 +02:00
if (FMLEnvironment.dist.isClient()) {
LateInitEvent event = new LateInitEvent(new BridgedMinecraft(), BridgedOptions.of(Minecraft.getInstance().options));
2023-11-25 21:38:04 +02:00
CraterEventBus.INSTANCE.postEvent(event);
2024-05-05 23:07:50 +02:00
ConfigController.getMonitoredConfigs().forEach((conf, watcher) -> {
if (!conf.getClass().isAnnotationPresent(NoConfigScreen.class)) {
ModuleConfig config = (ModuleConfig) conf;
ModList.get().getModContainerById(config.getModId()).ifPresent(c -> c.registerExtensionPoint(IConfigScreenFactory.class, ((minecraft, screen) -> new CraterConfigScreen(config, screen))));
}
});
2023-11-25 21:38:04 +02:00
}
}
}