Update MDK for 1.19 changes (#8675)
This commit is contained in:
parent
54dd4e8da5
commit
8a16ae06c9
3 changed files with 46 additions and 48 deletions
|
@ -40,7 +40,7 @@ https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md
|
||||||
|
|
||||||
Additional Resources:
|
Additional Resources:
|
||||||
=========================
|
=========================
|
||||||
Community Documentation: http://mcforge.readthedocs.io/en/latest/gettingstarted/
|
Community Documentation: https://mcforge.readthedocs.io/en/latest/gettingstarted/
|
||||||
LexManos' Install Video: https://www.youtube.com/watch?v=8VEdtQLuLO0
|
LexManos' Install Video: https://www.youtube.com/watch?v=8VEdtQLuLO0
|
||||||
Forge Forum: https://forums.minecraftforge.net/
|
Forge Forum: https://forums.minecraftforge.net/
|
||||||
Forge Discord: https://discord.gg/UvedJ9m
|
Forge Discord: https://discord.gg/UvedJ9m
|
12
build.gradle
12
build.gradle
|
@ -1,7 +1,7 @@
|
||||||
plugins {
|
plugins {
|
||||||
id 'eclipse'
|
id 'eclipse'
|
||||||
id 'maven-publish'
|
id 'maven-publish'
|
||||||
id 'net.minecraftforge.gradle' version '5.+'
|
id 'net.minecraftforge.gradle' version '5.1.+'
|
||||||
}
|
}
|
||||||
|
|
||||||
version = '1.0'
|
version = '1.0'
|
||||||
|
@ -65,7 +65,6 @@ minecraft {
|
||||||
|
|
||||||
property 'forge.logging.console.level', 'debug'
|
property 'forge.logging.console.level', 'debug'
|
||||||
|
|
||||||
// Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
|
|
||||||
property 'forge.enabledGameTestNamespaces', 'examplemod'
|
property 'forge.enabledGameTestNamespaces', 'examplemod'
|
||||||
|
|
||||||
mods {
|
mods {
|
||||||
|
@ -81,19 +80,10 @@ minecraft {
|
||||||
gameTestServer {
|
gameTestServer {
|
||||||
workingDirectory project.file('run')
|
workingDirectory project.file('run')
|
||||||
|
|
||||||
// Recommended logging data for a userdev environment
|
|
||||||
// The markers can be added/remove as needed separated by commas.
|
|
||||||
// "SCAN": For mods scan.
|
|
||||||
// "REGISTRIES": For firing of registry events.
|
|
||||||
// "REGISTRYDUMP": For getting the contents of all registries.
|
|
||||||
property 'forge.logging.markers', 'REGISTRIES'
|
property 'forge.logging.markers', 'REGISTRIES'
|
||||||
|
|
||||||
// Recommended logging level for the console
|
|
||||||
// You can set various levels here.
|
|
||||||
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
|
|
||||||
property 'forge.logging.console.level', 'debug'
|
property 'forge.logging.console.level', 'debug'
|
||||||
|
|
||||||
// Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
|
|
||||||
property 'forge.enabledGameTestNamespaces', 'examplemod'
|
property 'forge.enabledGameTestNamespaces', 'examplemod'
|
||||||
|
|
||||||
mods {
|
mods {
|
||||||
|
|
|
@ -1,61 +1,69 @@
|
||||||
package com.example.examplemod;
|
package com.example.examplemod;
|
||||||
|
|
||||||
import com.mojang.logging.LogUtils;
|
import com.mojang.logging.LogUtils;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.world.item.BlockItem;
|
||||||
|
import net.minecraft.world.item.CreativeModeTab;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.Blocks;
|
import net.minecraft.world.level.block.Blocks;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.material.Material;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.event.RegistryEvent;
|
import net.minecraftforge.eventbus.api.IEventBus;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.InterModComms;
|
import net.minecraftforge.fml.InterModComms;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
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.FMLCommonSetupEvent;
|
||||||
import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent;
|
import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent;
|
||||||
import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent;
|
import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent;
|
||||||
import net.minecraftforge.event.server.ServerStartingEvent;
|
import net.minecraftforge.event.server.ServerStartingEvent;
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||||
|
import net.minecraftforge.registries.DeferredRegister;
|
||||||
|
import net.minecraftforge.registries.ForgeRegistries;
|
||||||
|
import net.minecraftforge.registries.RegistryObject;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
// The value here should match an entry in the META-INF/mods.toml file
|
// The value here should match an entry in the META-INF/mods.toml file
|
||||||
@Mod("examplemod")
|
@Mod(ExampleMod.MODID)
|
||||||
public class ExampleMod
|
public class ExampleMod
|
||||||
{
|
{
|
||||||
|
// Define mod id in a common place for everything to reference
|
||||||
|
public static final String MODID = "examplemod";
|
||||||
// Directly reference a slf4j logger
|
// Directly reference a slf4j logger
|
||||||
private static final Logger LOGGER = LogUtils.getLogger();
|
private static final Logger LOGGER = LogUtils.getLogger();
|
||||||
|
// Create a Deferred Register to hold Blocks which will all be registered under the "examplemod" namespace
|
||||||
|
public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MODID);
|
||||||
|
// Create a Deferred Register to hold Items which will all be registered under the "examplemod" namespace
|
||||||
|
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID);
|
||||||
|
|
||||||
|
// Creates a new Block with the id "examplemod:example_block", combining the namespace and path
|
||||||
|
public static final RegistryObject<Block> EXAMPLE_BLOCK = BLOCKS.register("example_block", () -> new Block(BlockBehaviour.Properties.of(Material.STONE)));
|
||||||
|
// Creates a new BlockItem with the id "examplemod:example_block", combining the namespace and path
|
||||||
|
public static final RegistryObject<Item> EXAMPLE_BLOCK_ITEM = ITEMS.register("example_block", () -> new BlockItem(EXAMPLE_BLOCK.get(), new Item.Properties().tab(CreativeModeTab.TAB_BUILDING_BLOCKS)));
|
||||||
|
|
||||||
public ExampleMod()
|
public ExampleMod()
|
||||||
{
|
{
|
||||||
// Register the setup method for modloading
|
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
|
|
||||||
// Register the enqueueIMC method for modloading
|
// Register the commonSetup method for modloading
|
||||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::enqueueIMC);
|
modEventBus.addListener(this::commonSetup);
|
||||||
// Register the processIMC method for modloading
|
|
||||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::processIMC);
|
// Register the Deferred Register to the mod event bus so blocks get registered
|
||||||
|
BLOCKS.register(modEventBus);
|
||||||
|
// Register the Deferred Register to the mod event bus so items get registered
|
||||||
|
ITEMS.register(modEventBus);
|
||||||
|
|
||||||
// Register ourselves for server and other game events we are interested in
|
// Register ourselves for server and other game events we are interested in
|
||||||
MinecraftForge.EVENT_BUS.register(this);
|
MinecraftForge.EVENT_BUS.register(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setup(final FMLCommonSetupEvent event)
|
private void commonSetup(final FMLCommonSetupEvent event)
|
||||||
{
|
{
|
||||||
// some preinit code
|
// Some common setup code
|
||||||
LOGGER.info("HELLO FROM PREINIT");
|
LOGGER.info("HELLO FROM COMMON SETUP");
|
||||||
LOGGER.info("DIRT BLOCK >> {}", Blocks.DIRT.getRegistryName());
|
LOGGER.info("DIRT BLOCK >> {}", ForgeRegistries.BLOCKS.getKey(Blocks.DIRT));
|
||||||
}
|
|
||||||
|
|
||||||
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
|
// You can use SubscribeEvent and let the Event Bus discover methods to call
|
||||||
|
@ -66,16 +74,16 @@ public class ExampleMod
|
||||||
LOGGER.info("HELLO from server starting");
|
LOGGER.info("HELLO from server starting");
|
||||||
}
|
}
|
||||||
|
|
||||||
// You can use EventBusSubscriber to automatically subscribe events on the contained class (this is subscribing to the MOD
|
// You can use EventBusSubscriber to automatically register all static methods in the class annotated with @SubscribeEvent
|
||||||
// Event bus for receiving Registry Events)
|
@Mod.EventBusSubscriber(modid = MODID, bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||||
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
|
public static class ClientModEvents
|
||||||
public static class RegistryEvents
|
|
||||||
{
|
{
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent)
|
public static void onClientSetup(FMLClientSetupEvent event)
|
||||||
{
|
{
|
||||||
// Register a new block here
|
// Some client setup code
|
||||||
LOGGER.info("HELLO from Register Block");
|
LOGGER.info("HELLO FROM CLIENT SETUP");
|
||||||
|
LOGGER.info("MINECRAFT NAME >> {}", Minecraft.getInstance().getUser().getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue