diff --git a/build_forge.gradle b/build_forge.gradle index 96e1e6e949..2e27534927 100644 --- a/build_forge.gradle +++ b/build_forge.gradle @@ -923,6 +923,9 @@ tasks.register('mdkZip', Zip) { rename 'gitignore\\.txt', '.gitignore' rename 'gitattributes\\.txt', '.gitattributes' } + from(rootProject.file('src/test/java/net/minecraftforge/example/')) { + into('src/main/java/net/minecraftforge/example/') + } from(rootProject.file('src/test/generated/mdk_datagen/')) { into('src/main/resources/') exclude '**/.cache/' diff --git a/mdk/src/main/java/com/example/examplemod/Config.java b/src/test/java/net/minecraftforge/example/Config.java similarity index 92% rename from mdk/src/main/java/com/example/examplemod/Config.java rename to src/test/java/net/minecraftforge/example/Config.java index fe16c17312..ab7c7b97eb 100644 --- a/mdk/src/main/java/com/example/examplemod/Config.java +++ b/src/test/java/net/minecraftforge/example/Config.java @@ -1,4 +1,4 @@ -package com.example.examplemod; +package net.minecraftforge.example; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; @@ -8,7 +8,6 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.config.ModConfigEvent; import net.minecraftforge.registries.ForgeRegistries; -import java.util.Collections; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -16,8 +15,7 @@ import java.util.stream.Collectors; // An example config class. This is not required, but it's a good idea to have one to keep your config organized. // Demonstrates how to use Forge's config APIs @Mod.EventBusSubscriber(modid = ExampleMod.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) -public class Config -{ +public class Config { private static final ForgeConfigSpec.Builder BUILDER = new ForgeConfigSpec.Builder(); private static final ForgeConfigSpec.BooleanValue LOG_DIRT_BLOCK = BUILDER @@ -44,14 +42,12 @@ public class Config public static String magicNumberIntroduction; public static Set items; - private static boolean validateItemName(final Object obj) - { + private static boolean validateItemName(final Object obj) { return obj instanceof final String itemName && ForgeRegistries.ITEMS.containsKey(ResourceLocation.tryParse(itemName)); } @SubscribeEvent - static void onLoad(final ModConfigEvent event) - { + static void onLoad(final ModConfigEvent event) { logDirtBlock = LOG_DIRT_BLOCK.get(); magicNumber = MAGIC_NUMBER.get(); magicNumberIntroduction = MAGIC_NUMBER_INTRODUCTION.get(); diff --git a/mdk/src/main/java/com/example/examplemod/ExampleMod.java b/src/test/java/net/minecraftforge/example/ExampleMod.java similarity index 85% rename from mdk/src/main/java/com/example/examplemod/ExampleMod.java rename to src/test/java/net/minecraftforge/example/ExampleMod.java index 6e8f900bb1..5b0a656e3c 100644 --- a/mdk/src/main/java/com/example/examplemod/ExampleMod.java +++ b/src/test/java/net/minecraftforge/example/ExampleMod.java @@ -1,4 +1,4 @@ -package com.example.examplemod; +package net.minecraftforge.example; import com.mojang.logging.LogUtils; import net.minecraft.client.Minecraft; @@ -30,8 +30,7 @@ import org.slf4j.Logger; // The value here should match an entry in the META-INF/mods.toml file @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 @@ -44,13 +43,29 @@ public class ExampleMod public static final DeferredRegister CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MODID); // Creates a new Block with the id "examplemod:example_block", combining the namespace and path - public static final RegistryObject EXAMPLE_BLOCK = BLOCKS.register("example_block", () -> new Block(BlockBehaviour.Properties.of().mapColor(MapColor.STONE))); + public static final RegistryObject EXAMPLE_BLOCK = BLOCKS.register("example_block", + () -> new Block(BlockBehaviour.Properties.of() + .setId(BLOCKS.key("example_block")) + .mapColor(MapColor.STONE) + ) + ); // Creates a new BlockItem with the id "examplemod:example_block", combining the namespace and path - public static final RegistryObject EXAMPLE_BLOCK_ITEM = ITEMS.register("example_block", () -> new BlockItem(EXAMPLE_BLOCK.get(), new Item.Properties())); + public static final RegistryObject EXAMPLE_BLOCK_ITEM = ITEMS.register("example_block", + () -> new BlockItem(EXAMPLE_BLOCK.get(), new Item.Properties().setId(ITEMS.key("example_block"))) + ); // Creates a new food item with the id "examplemod:example_id", nutrition 1 and saturation 2 - public static final RegistryObject EXAMPLE_ITEM = ITEMS.register("example_item", () -> new Item(new Item.Properties().food(new FoodProperties.Builder() - .alwaysEdible().nutrition(1).saturationModifier(2f).build()))); + public static final RegistryObject EXAMPLE_ITEM = ITEMS.register("example_item", + () -> new Item(new Item.Properties() + .setId(ITEMS.key("example_item")) + .food(new FoodProperties.Builder() + .alwaysEdible() + .nutrition(1) + .saturationModifier(2f) + .build() + ) + ) + ); // Creates a creative tab with the id "examplemod:example_tab" for the example item, that is placed after the combat tab public static final RegistryObject EXAMPLE_TAB = CREATIVE_MODE_TABS.register("example_tab", () -> CreativeModeTab.builder() @@ -60,8 +75,7 @@ public class ExampleMod output.accept(EXAMPLE_ITEM.get()); // Add the example item to the tab. For your own tabs, this method is preferred over the event }).build()); - public ExampleMod(FMLJavaModLoadingContext context) - { + public ExampleMod(FMLJavaModLoadingContext context) { IEventBus modEventBus = context.getModEventBus(); // Register the commonSetup method for modloading @@ -84,8 +98,7 @@ public class ExampleMod context.registerConfig(ModConfig.Type.COMMON, Config.SPEC); } - private void commonSetup(final FMLCommonSetupEvent event) - { + private void commonSetup(final FMLCommonSetupEvent event) { // Some common setup code LOGGER.info("HELLO FROM COMMON SETUP"); @@ -98,27 +111,23 @@ public class ExampleMod } // Add the example block item to the building blocks tab - private void addCreative(BuildCreativeModeTabContentsEvent event) - { + private void addCreative(BuildCreativeModeTabContentsEvent event) { if (event.getTabKey() == CreativeModeTabs.BUILDING_BLOCKS) event.accept(EXAMPLE_BLOCK_ITEM); } // You can use SubscribeEvent and let the Event Bus discover methods to call @SubscribeEvent - public void onServerStarting(ServerStartingEvent event) - { + public void onServerStarting(ServerStartingEvent event) { // Do something when the server starts LOGGER.info("HELLO from server starting"); } // You can use EventBusSubscriber to automatically register all static methods in the class annotated with @SubscribeEvent @Mod.EventBusSubscriber(modid = MODID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) - public static class ClientModEvents - { + public static class ClientModEvents { @SubscribeEvent - public static void onClientSetup(FMLClientSetupEvent event) - { + public static void onClientSetup(FMLClientSetupEvent event) { // Some client setup code LOGGER.info("HELLO FROM CLIENT SETUP"); LOGGER.info("MINECRAFT NAME >> {}", Minecraft.getInstance().getUser().getName());