修改为模组总线避免部分事件无法被正确提取加载
This commit is contained in:
parent
0a94440168
commit
cf14cd705e
|
|
@ -33,7 +33,7 @@ mod_name=3944Realms 's Lib Mod
|
|||
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
|
||||
mod_license=MIT
|
||||
# The mod version. See https://semver.org/
|
||||
mod_version=0.1.9
|
||||
mod_version=0.2.0
|
||||
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
|
||||
# This should match the base package used for the mod sources.
|
||||
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import top.r3944realms.lib39.core.compat.ICompat;
|
|||
/**
|
||||
* The type Register compat event.
|
||||
*/
|
||||
public class RegisterCompatEvent extends Event {
|
||||
public class RegisterCompatEvent extends Event implements IModBusEvent {
|
||||
/**
|
||||
* The Compat manager.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import net.minecraftforge.event.level.LevelEvent;
|
|||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLConstructModEvent;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
import top.r3944realms.lib39.Lib39;
|
||||
|
|
@ -72,7 +73,6 @@ public class CommonEventHandler {
|
|||
*/
|
||||
static volatile SyncData2Manager syncData2Manager;
|
||||
private static boolean isSync2MInitialized = false;
|
||||
private static boolean isCompatInitialized = false;
|
||||
|
||||
/**
|
||||
* Gets sync data 2 manager.
|
||||
|
|
@ -102,11 +102,7 @@ public class CommonEventHandler {
|
|||
sl = serverLevel;
|
||||
Lib39.LOGGER.info("SyncData2Manager initialized on Sever load");
|
||||
}
|
||||
if (!isCompatInitialized) {
|
||||
MinecraftForge.EVENT_BUS.post(new RegisterCompatEvent(Mod.compatManager));
|
||||
Mod.compatManager.initializeAll();
|
||||
isCompatInitialized = true;
|
||||
}
|
||||
|
||||
}
|
||||
} else if (level instanceof ClientLevel clientLevel) {
|
||||
synchronized (Game.class) {
|
||||
|
|
@ -116,11 +112,6 @@ public class CommonEventHandler {
|
|||
MinecraftForge.EVENT_BUS.post(new SyncManagerRegisterEvent(syncData2Manager));
|
||||
Lib39.LOGGER.info("SyncData2Manager initialized on Client load");
|
||||
}
|
||||
if (!isCompatInitialized) {
|
||||
MinecraftForge.EVENT_BUS.post(new RegisterCompatEvent(Mod.compatManager));
|
||||
Mod.compatManager.initializeAll();
|
||||
isCompatInitialized = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -249,13 +240,23 @@ public class CommonEventHandler {
|
|||
*/
|
||||
static volatile CompatManager compatManager;
|
||||
|
||||
/**
|
||||
* On fml common setup.
|
||||
*
|
||||
* @param event the event
|
||||
*/
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onFMLCommonSetup (FMLCommonSetupEvent event) {
|
||||
public static void onConstructMod(FMLConstructModEvent event) {
|
||||
event.enqueueWork(() -> {
|
||||
IEventBus modBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
IEventBus gameBus = MinecraftForge.EVENT_BUS;
|
||||
compatManager = new CompatManager(modBus, gameBus);
|
||||
|
||||
// 在Mod总线上发布事件
|
||||
modBus.post(new RegisterCompatEvent(compatManager));
|
||||
compatManager.initializeAll();
|
||||
Lib39.LOGGER.info("RegisterCompatEvent published during construct phase");
|
||||
});
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onFMLCommonSetup(FMLCommonSetupEvent event) {
|
||||
event.enqueueWork(() -> {
|
||||
try {
|
||||
Class.forName("top.r3944realms.lib39.base.command.Lib39CommandHelpManager");
|
||||
|
|
@ -263,12 +264,6 @@ public class CommonEventHandler {
|
|||
throw new RuntimeException(e);
|
||||
}
|
||||
});
|
||||
event.enqueueWork(() -> {
|
||||
IEventBus modBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
IEventBus gameBus = MinecraftForge.EVENT_BUS;
|
||||
compatManager = new CompatManager(modBus, gameBus);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
package top.r3944realms.lib39.example.compat;
|
||||
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.fml.ModList;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import top.r3944realms.lib39.Lib39;
|
||||
import top.r3944realms.lib39.core.compat.ICompat;
|
||||
|
||||
public class Lib39Compat implements ICompat {
|
||||
public static Lib39Compat INSTANCE = new Lib39Compat();
|
||||
public static ResourceLocation ID = Lib39.rl("lib39");
|
||||
@Override
|
||||
public ResourceLocation id() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isModLoaded() {
|
||||
return ModList.get().isLoaded("lib39");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCommonModListener(@NotNull IEventBus modBus) {
|
||||
modBus.addListener(this::onSetUp);
|
||||
}
|
||||
private void onSetUp (@NotNull FMLCommonSetupEvent event) {
|
||||
event.enqueueWork(() -> Lib39.LOGGER.info("Loading Lib39 Compat"));
|
||||
}
|
||||
}
|
||||
|
|
@ -5,8 +5,10 @@ import net.minecraftforge.common.capabilities.RegisterCapabilitiesEvent;
|
|||
import net.minecraftforge.event.AttachCapabilitiesEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
import top.r3944realms.lib39.api.event.RegisterCompatEvent;
|
||||
import top.r3944realms.lib39.api.event.SyncManagerRegisterEvent;
|
||||
import top.r3944realms.lib39.core.sync.CachedSyncManager;
|
||||
import top.r3944realms.lib39.example.compat.Lib39Compat;
|
||||
import top.r3944realms.lib39.example.content.capability.AbstractedTestSyncData;
|
||||
import top.r3944realms.lib39.example.content.capability.ExCapabilityHandler;
|
||||
import top.r3944realms.lib39.example.content.capability.TestSyncData;
|
||||
|
|
@ -63,6 +65,10 @@ public class ExCommonEventHandler {
|
|||
*/
|
||||
public static class Mod extends ExCommonEventHandler {
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onRegisterCompat (RegisterCompatEvent event) {
|
||||
event.registerCompat(Lib39Compat.ID, Lib39Compat.INSTANCE);
|
||||
}
|
||||
/**
|
||||
* On fml common setup.
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user