mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-14 09:05:17 +00:00
Update to Official classnames Patchwork Make the game compile and run Merge in the new HUD overlay API Merge in the new render properties API PEEL Use Gradle 7.2 snapshot to fix eclipse integration bug in 7.1, Would use 7.0 but FG needs 7.1 for some reason. New FML installer Update to 1.17.1 Co-authored-by: LexManos <[email protected]> Co-authored-by: SizableShrimp <[email protected]> Co-authored-by: cpw <[email protected]> Co-authored-by: Curle <[email protected]> Co-authored-by: Unnoen <[email protected]> Co-authored-by: covers1624 <[email protected]> Co-authored-by: DaemonUmbra <[email protected]> Co-authored-by: gigaherz <[email protected]> Signed-off-by: SizableShrimp <[email protected]>
77 lines
3.1 KiB
Java
77 lines
3.1 KiB
Java
package com.example.examplemod;
|
|
|
|
import net.minecraft.world.level.block.Block;
|
|
import net.minecraft.world.level.block.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.FMLCommonSetupEvent;
|
|
import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent;
|
|
import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent;
|
|
import net.minecraftforge.fmlserverevents.FMLServerStartingEvent;
|
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
|
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
|
|
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
|
|
// Register the enqueueIMC method for modloading
|
|
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::enqueueIMC);
|
|
// Register the processIMC method for modloading
|
|
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::processIMC);
|
|
|
|
// Register ourselves for server 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 enqueueIMC(final InterModEnqueueEvent event)
|
|
{
|
|
// some example code to dispatch IMC to another mod
|
|
InterModComms.sendTo("examplemod", "helloworld", () -> { LOGGER.info("Hello world from the MDK"); 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.messageSupplier().get()).
|
|
collect(Collectors.toList()));
|
|
}
|
|
// You can use SubscribeEvent and let the Event Bus discover methods to call
|
|
@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 (this is subscribing to the MOD
|
|
// Event bus for receiving Registry Events)
|
|
@Mod.EventBusSubscriber(bus=Mod.EventBusSubscriber.Bus.MOD)
|
|
public static class RegistryEvents {
|
|
@SubscribeEvent
|
|
public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) {
|
|
// register a new block here
|
|
LOGGER.info("HELLO from Register Block");
|
|
}
|
|
}
|
|
}
|