Fix ConfigScreen registration

This commit is contained in:
Suel_ki
2023-07-17 16:44:14 +08:00
committed by GitHub
parent f71e8dbdc3
commit 8466b3f21a
2 changed files with 49 additions and 55 deletions

View File

@@ -1,29 +1,30 @@
package eu.midnightdust.forge; package eu.midnightdust.forge;
import eu.midnightdust.lib.config.MidnightConfig; import eu.midnightdust.lib.config.MidnightConfig;
import eu.midnightdust.lib.util.MidnightColorUtil; import eu.midnightdust.lib.util.MidnightColorUtil;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.ConfigScreenHandler; import net.minecraftforge.client.ConfigScreenHandler;
import net.minecraftforge.event.TickEvent; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.event.TickEvent;
import net.minecraftforge.fml.ModList; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.ModList;
import net.minecraftforge.fml.event.lifecycle.FMLLoadCompleteEvent; import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
@Mod.EventBusSubscriber(modid = "midnightlib", bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
public class MidnightLibClientEvents { @Mod.EventBusSubscriber(modid = "midnightlib", bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
@SubscribeEvent public class MidnightLibClientEvents {
public void registerClientTick(TickEvent.ClientTickEvent event) { public static void registerClientTick(TickEvent.ClientTickEvent event) {
MidnightColorUtil.tick(); MidnightColorUtil.tick();
} }
@SubscribeEvent
public void onPostInit(FMLLoadCompleteEvent event) { @SubscribeEvent
ModList.get().applyForEachModContainer(modContainer -> { public static void onPostInit(FMLClientSetupEvent event) {
if (MidnightConfig.configClass.containsKey(modContainer.getModId())) { MinecraftForge.EVENT_BUS.addListener(MidnightLibClientEvents::registerClientTick);
modContainer.registerExtensionPoint(ConfigScreenHandler.ConfigScreenFactory.class, () -> ModList.get().forEachModContainer((modid, modContainer) -> {
new ConfigScreenHandler.ConfigScreenFactory((client, parent) -> MidnightConfig.getScreen(parent, modContainer.getModId()))); if (MidnightConfig.configClass.containsKey(modid)) {
} modContainer.registerExtensionPoint(ConfigScreenHandler.ConfigScreenFactory.class, () ->
return true; new ConfigScreenHandler.ConfigScreenFactory((client, parent) -> MidnightConfig.getScreen(parent, modid)));
}); }
} });
} }
}

View File

@@ -1,26 +1,19 @@
package eu.midnightdust.forge; package eu.midnightdust.forge;
import eu.midnightdust.core.MidnightLibClient; import eu.midnightdust.core.MidnightLibClient;
import eu.midnightdust.core.MidnightLibServer; import eu.midnightdust.core.MidnightLibServer;
import eu.midnightdust.lib.config.MidnightConfig; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.client.ConfigScreenHandler; import net.minecraftforge.fml.IExtensionPoint;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.IExtensionPoint; import net.minecraftforge.network.NetworkConstants;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod; @Mod("midnightlib")
import net.minecraftforge.network.NetworkConstants; public class MidnightLibForge {
public MidnightLibForge() {
@Mod("midnightlib") ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> NetworkConstants.IGNORESERVERONLY, (remote, server) -> true));
public class MidnightLibForge { DistExecutor.safeRunWhenOn(Dist.CLIENT, () -> MidnightLibClient::onInitializeClient);
public MidnightLibForge() { DistExecutor.safeRunWhenOn(Dist.DEDICATED_SERVER, () -> MidnightLibServer::onInitializeServer);
ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> NetworkConstants.IGNORESERVERONLY, (remote, server) -> true)); }
DistExecutor.safeRunWhenOn(Dist.CLIENT, () -> MidnightLibClient::onInitializeClient); }
DistExecutor.safeRunWhenOn(Dist.DEDICATED_SERVER, () -> MidnightLibServer::onInitializeServer);
ModLoadingContext.get().registerExtensionPoint(ConfigScreenHandler.ConfigScreenFactory.class, () ->
new ConfigScreenHandler.ConfigScreenFactory((client, parent) -> MidnightConfig.getScreen(parent, "midnightlib")));
MinecraftForge.EVENT_BUS.register(new MidnightLibClientEvents());
MinecraftForge.EVENT_BUS.register(new MidnightLibServerEvents());
}
}