diff options
| author | cpw <cpw@weeksfamily.ca> | 2019-01-14 22:42:53 -0500 |
|---|---|---|
| committer | cpw <cpw@weeksfamily.ca> | 2019-01-14 22:43:17 -0500 |
| commit | b1cd7fcee0dfb8963575a6d3f4c22758679bfcd5 (patch) | |
| tree | 433bdeecfbe042e95dbb42a148f11fc41da7be1f /src/main/java/com/example/examplemod/ExampleMod.java | |
| parent | 4666bd9e8ae9ad8999cfa55e7b3e9ff54a3bef5b (diff) | |
Update MDK for new naming scheme
Diffstat (limited to 'src/main/java/com/example/examplemod/ExampleMod.java')
| -rw-r--r-- | src/main/java/com/example/examplemod/ExampleMod.java | 57 |
1 files changed, 42 insertions, 15 deletions
diff --git a/src/main/java/com/example/examplemod/ExampleMod.java b/src/main/java/com/example/examplemod/ExampleMod.java index f0fff58..30056fe 100644 --- a/src/main/java/com/example/examplemod/ExampleMod.java +++ b/src/main/java/com/example/examplemod/ExampleMod.java @@ -5,14 +5,19 @@ import net.minecraft.init.Blocks; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.InterModComms; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.event.FMLInitializationEvent; -import net.minecraftforge.fml.event.FMLPreInitializationEvent; -import net.minecraftforge.fml.event.FMLServerStartingEvent; +import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; +import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; +import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent; +import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent; +import net.minecraftforge.fml.event.server.FMLServerStartingEvent; import net.minecraftforge.fml.javafmlmod.FMLModLoadingContext; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import java.util.stream.Collectors; + // The value here should match an entry in the META-INF/mods.toml file @Mod("examplemod") public class ExampleMod @@ -21,36 +26,58 @@ public class ExampleMod private static final Logger LOGGER = LogManager.getLogger(); public ExampleMod() { - // Register the preInit method for modloading - FMLModLoadingContext.get().getModEventBus().addListener(this::preInit); - // Register the init method for modloading - FMLModLoadingContext.get().getModEventBus().addListener(this::init); + // Register the setup method for modloading + FMLModLoadingContext.get().getModEventBus().addListener(this::setup); + // Register the enqueueIMC method for modloading + FMLModLoadingContext.get().getModEventBus().addListener(this::enqueueIMC); + // Register the processIMC method for modloading + FMLModLoadingContext.get().getModEventBus().addListener(this::processIMC); + // Register the doClientStuff method for modloading + FMLModLoadingContext.get().getModEventBus().addListener(this::doClientStuff); // Register ourselves for server, registry and other game events we are interested in MinecraftForge.EVENT_BUS.register(this); } - private void preInit(final FMLPreInitializationEvent event) + private void setup(final FMLCommonSetupEvent event) { // some preinit code LOGGER.info("HELLO FROM PREINIT"); + LOGGER.info("DIRT BLOCK >> {}", Blocks.DIRT.getRegistryName()); + } + + private void doClientStuff(final FMLClientSetupEvent event) { + // do something that can only be done on the client + LOGGER.info("Got game settings {}", event.getMinecraftSupplier().get().gameSettings); } - private void init(final FMLInitializationEvent event) + private void enqueueIMC(final InterModEnqueueEvent event) { - // some example code - LOGGER.info("DIRT BLOCK >> {}", Blocks.DIRT.getRegistryName()); + // some example code to dispatch IMC to another mod + InterModComms.sendTo("forge", "helloworld", () -> { LOGGER.info("Hello world"); return "Hello world";}); } + private void processIMC(final InterModProcessEvent event) + { + // some example code to receive and process InterModComms from other mods + LOGGER.info("Got IMC", event.getIMCStream(). + map(m->m.getMessageSupplier().get()). + collect(Collectors.toList())); + } + // You can use SubscribeEvent and let the Event Bus discover methods to call @SubscribeEvent public void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) { // register a new block here LOGGER.info("HELLO from Register Block"); } - @SubscribeEvent - public void onServerStarting(FMLServerStartingEvent event) { - // do something when the server starts - LOGGER.info("HELLO from server starting"); + // You can use EventBusSubscriber to automatically subscribe events on the contained class + @Mod.EventBusSubscriber + public static class ServerEvents { + @SubscribeEvent + public static void onServerStarting(FMLServerStartingEvent event) { + // do something when the server starts + LOGGER.info("HELLO from server starting"); + } } } |
