Zeher_Monkey Posted July 28, 2020 Posted July 28, 2020 (edited) Hi, So I am having trouble with events not being fired. The events that will not fire are as below: @SubscribeEvent public static void onServerAboutToStart(final FMLServerAboutToStartEvent event) { PocketRegistryManager.loadData(); LOGGER.info(LOGGER_PREFIX + "[FMLServerAboutToStartEvent] Server about to start..."); } @SubscribeEvent public static void onServerStarting(final FMLServerStartingEvent event) { LOGGER.info(LOGGER_PREFIX + "[FMLServerStartingEvent] Server starting..."); } @SubscribeEvent public static void onServerStarted(final FMLServerStartedEvent event) { PocketRegistryManager.initChunkLoading(); LOGGER.info(LOGGER_PREFIX + "[FMLServerStartedEvent] Server started..."); } @SubscribeEvent public static void onServerStopping(final FMLServerStoppingEvent event) { PocketRegistryManager.saveData(); PocketRegistryManager.clearMap(); LOGGER.info(LOGGER_PREFIX + "[FMLServerStoppingEvent] Server stopping..."); } @SubscribeEvent public static void onPlayerExitWorld(PlayerEvent.PlayerLoggedOutEvent event) { PocketRegistryManager.saveData(); PocketRegistryManager.clearMap(); } @SubscribeEvent public static void onPlayerEnterWorld(PlayerEvent.PlayerLoggedInEvent event) { PocketRegistryManager.clearMap(); PocketRegistryManager.loadData(); } Other events, such as the RegistryEvents<T> are firing perfectly. I need code to be run when the player enters or leaves the world. Also FMLCommonSetupEvent Works with the registration method here: public DimensionalPockets() { FMLJavaModLoadingContext.get().getModEventBus().addListener(this::commonSetup); MinecraftForge.EVENT_BUS.register(this); } public void commonSetup(FMLCommonSetupEvent event){ LOGGER.info(LOGGER_PREFIX + "[FMLCommonSetupEvent] PreInit..."); RecipeHandler.preInitialization(); ModDimensionManager.registerDimensions(); MinecraftForge.EVENT_BUS.register(new PocketEventManager()); } But when I try to use this method to register the ServerLifecycleEvent That does not work either. I'm stuck with this, because this is causing my Configuration file to not clear when switching between worlds, meaning data that is saved for one save is being copied into other saves. Shutting the game down and re-starting works to stop this problem, but thats not feasable. None of the logger lines are printed to the Console. It may be that I am using the latest version of Forge 1.14.4 but I am not sure. Any help is appreciated! Edited July 28, 2020 by Zeher_Monkey Quote
Dzuchun Posted July 28, 2020 Posted July 28, 2020 Forge has two event buses: 1) Mod event bus for registration and all other initialization 2) Forge event bus for everything else. It seems like you subscribed to Mod bus, so your init and related events are fired, but nothing else. Quote Everything said above may be absolutely wrong. No rights reserved.
Zeher_Monkey Posted July 28, 2020 Author Posted July 28, 2020 I have found a solution to this issue: I was subscribing the events to the wrong bus: @Mod.EventBusSubscriber(modid = DimensionalPockets.MOD_ID, bus = EventBusSubscriber.Bus.MOD) They need to be subscribed to the FORGE bus: @Mod.EventBusSubscriber(modid = DimensionalPockets.MOD_ID, bus = EventBusSubscriber.Bus.FORGE) Quote
Zeher_Monkey Posted July 28, 2020 Author Posted July 28, 2020 1 minute ago, Dzuchun said: Forge has two event buses: 1) Mod event bus for registration and all other initialization 2) Forge event bus for everything else. It seems like you subscribed to Mod bus, so your init and related events are fired, but nothing else. Yes, literally just figured this out. Was not aware of this, as in 1.12.2 they were subscribed to the same bus. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.