Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.examplemod;
- import net.minecraft.block.Block;
- 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.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
- {
- // Directly reference a log4j logger.
- private static final Logger LOGGER = LogManager.getLogger();
- public ExampleMod() {
- // 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 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 enqueueIMC(final InterModEnqueueEvent event)
- {
- // 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");
- }
- // 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");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement