Posted December 30, 20222 yr Hello, I am trying to do some things after the server (dedicated server) has been started. I want to access the player data in that event. But I can't find a way to get a MinecraftServer instance. My current code is pretty simple yet: public ExampleMod() { // MinecraftForge.EVENT_BUS.register(this); IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); modEventBus.addListener(this::onDedicatedServer); } // @SubscribeEvent private void onDedicatedServer(FMLDedicatedServerSetupEvent event) { int count = 42; LOGGER.info("onDedicatedServer, playCount: " + count); } @SubscribeEvent did not work for some reason, but that is nothing I worry about right now. I could not find a way to access the MinecraftServer instance in the EventHandler. Is there any static method or something to get it? I was searching and found net.minecraftforge.event.server.ServerStartedEvent but it failed with this modEventBus.
December 30, 20222 yr Author Okay, I have found the answer. I was using the wrong event bus. This seems to work: public ExampleMod() { MinecraftForge.EVENT_BUS.addListener(this::onServerStarted); } private void onServerStarted(ServerStartedEvent event) { int count = event.getServer().getPlayerCount(); LOGGER.info("onServerStarted, playCount: " + count); }
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.