From 5bbfd0dfe20979b7627df2195138ea810fb850bc Mon Sep 17 00:00:00 2001 From: NinjaPhenix Date: Fri, 20 Mar 2020 14:14:13 +0000 Subject: [PATCH] Tests as separate projects --- chainmail-tests/build.gradle | 4 ++ chainmail-tests/gradle.properties | 1 + .../ninjaphenix/tests/chainmail/Main.java | 11 +++-- .../tests/chainmail}/block/TestBlock.java | 4 +- .../block/entity/TestBlockEntity.java | 2 +- .../src/main/resources/fabric.mod.json | 12 +++++ .../java/ninjaphenix/chainmail/impl/Main.java | 47 ------------------- chainmail/src/main/resources/fabric.mod.json | 7 +-- settings.gradle | 1 + 9 files changed, 28 insertions(+), 61 deletions(-) create mode 100644 chainmail-tests/build.gradle create mode 100644 chainmail-tests/gradle.properties rename chainmail/src/main/java/ninjaphenix/test/A.java => chainmail-tests/src/main/java/ninjaphenix/tests/chainmail/Main.java (77%) rename {chainmail/src/main/java/ninjaphenix/test/A => chainmail-tests/src/main/java/ninjaphenix/tests/chainmail}/block/TestBlock.java (82%) rename {chainmail/src/main/java/ninjaphenix/test/A => chainmail-tests/src/main/java/ninjaphenix/tests/chainmail}/block/entity/TestBlockEntity.java (92%) create mode 100644 chainmail-tests/src/main/resources/fabric.mod.json delete mode 100644 chainmail/src/main/java/ninjaphenix/chainmail/impl/Main.java diff --git a/chainmail-tests/build.gradle b/chainmail-tests/build.gradle new file mode 100644 index 00000000..3126b8b1 --- /dev/null +++ b/chainmail-tests/build.gradle @@ -0,0 +1,4 @@ +dependencies { + compile project(path: ":chainmail") + include project(path: ":chainmail") +} \ No newline at end of file diff --git a/chainmail-tests/gradle.properties b/chainmail-tests/gradle.properties new file mode 100644 index 00000000..a30ba665 --- /dev/null +++ b/chainmail-tests/gradle.properties @@ -0,0 +1 @@ +mod_id = chainmail-tests \ No newline at end of file diff --git a/chainmail/src/main/java/ninjaphenix/test/A.java b/chainmail-tests/src/main/java/ninjaphenix/tests/chainmail/Main.java similarity index 77% rename from chainmail/src/main/java/ninjaphenix/test/A.java rename to chainmail-tests/src/main/java/ninjaphenix/tests/chainmail/Main.java index 9bd92268..8f0c9999 100644 --- a/chainmail/src/main/java/ninjaphenix/test/A.java +++ b/chainmail-tests/src/main/java/ninjaphenix/tests/chainmail/Main.java @@ -1,4 +1,4 @@ -package ninjaphenix.test; +package ninjaphenix.tests.chainmail; import net.fabricmc.api.ModInitializer; import net.minecraft.block.Block; @@ -8,15 +8,16 @@ import net.minecraft.item.Item; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; -import ninjaphenix.test.a.block.TestBlock; -import ninjaphenix.test.a.block.entity.TestBlockEntity; +import ninjaphenix.tests.chainmail.block.TestBlock; +import ninjaphenix.tests.chainmail.block.entity.TestBlockEntity; -public class A implements ModInitializer +public class Main implements ModInitializer { + public static Main INSTANCE = new Main(); + @Override public void onInitialize() { - System.out.println("Now were making test mods :tiny_potato:"); final Block TEST_BLOCK = Registry.register(Registry.BLOCK, new Identifier("test_a", "test_block"), new TestBlock(Block.Settings.of(Material.CLAY))); Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier("test_a", "test_block_entity"), BlockEntityType.Builder.create(TestBlockEntity::new, TEST_BLOCK).build(null)); diff --git a/chainmail/src/main/java/ninjaphenix/test/A/block/TestBlock.java b/chainmail-tests/src/main/java/ninjaphenix/tests/chainmail/block/TestBlock.java similarity index 82% rename from chainmail/src/main/java/ninjaphenix/test/A/block/TestBlock.java rename to chainmail-tests/src/main/java/ninjaphenix/tests/chainmail/block/TestBlock.java index f4ec9974..7f035d9c 100644 --- a/chainmail/src/main/java/ninjaphenix/test/A/block/TestBlock.java +++ b/chainmail-tests/src/main/java/ninjaphenix/tests/chainmail/block/TestBlock.java @@ -1,10 +1,10 @@ -package ninjaphenix.test.a.block; +package ninjaphenix.tests.chainmail.block; import net.minecraft.block.Block; import net.minecraft.block.BlockEntityProvider; import net.minecraft.block.entity.BlockEntity; import net.minecraft.world.BlockView; -import ninjaphenix.test.a.block.entity.TestBlockEntity; +import ninjaphenix.tests.chainmail.block.entity.TestBlockEntity; public class TestBlock extends Block implements BlockEntityProvider { diff --git a/chainmail/src/main/java/ninjaphenix/test/A/block/entity/TestBlockEntity.java b/chainmail-tests/src/main/java/ninjaphenix/tests/chainmail/block/entity/TestBlockEntity.java similarity index 92% rename from chainmail/src/main/java/ninjaphenix/test/A/block/entity/TestBlockEntity.java rename to chainmail-tests/src/main/java/ninjaphenix/tests/chainmail/block/entity/TestBlockEntity.java index e54ad5bc..9d76d374 100644 --- a/chainmail/src/main/java/ninjaphenix/test/A/block/entity/TestBlockEntity.java +++ b/chainmail-tests/src/main/java/ninjaphenix/tests/chainmail/block/entity/TestBlockEntity.java @@ -1,4 +1,4 @@ -package ninjaphenix.test.a.block.entity; +package ninjaphenix.tests.chainmail.block.entity; import net.minecraft.block.entity.BlockEntity; import net.minecraft.util.Identifier; diff --git a/chainmail-tests/src/main/resources/fabric.mod.json b/chainmail-tests/src/main/resources/fabric.mod.json new file mode 100644 index 00000000..98662819 --- /dev/null +++ b/chainmail-tests/src/main/resources/fabric.mod.json @@ -0,0 +1,12 @@ +{ + "schemaVersion": 1, + "id": "chainmail-tests", + "version": "${version}", + "name": "Chainmail Test Mod", + "environment": "*", + "entrypoints": { + "main": [ + "ninjaphenix.tests.chainmail.Main::INSTANCE" + ] + } +} \ No newline at end of file diff --git a/chainmail/src/main/java/ninjaphenix/chainmail/impl/Main.java b/chainmail/src/main/java/ninjaphenix/chainmail/impl/Main.java deleted file mode 100644 index e253c534..00000000 --- a/chainmail/src/main/java/ninjaphenix/chainmail/impl/Main.java +++ /dev/null @@ -1,47 +0,0 @@ -package ninjaphenix.chainmail.impl; - -import net.fabricmc.api.ModInitializer; - -import java.io.IOException; - -public class Main implements ModInitializer -{ - private static final boolean DEBUG = true; - - @Override - public void onInitialize() - { - // todo: Consider making this a separate sub-project, - // whilst may require some initial effort will mean there's no pre-release steps. - // would also shrink mod size by an insignificant amount. - // also would simplify the build process. - // negatives: delay switching between tests and code - // clutters root folder - if (DEBUG) - { - final ClassLoader loader = this.getClass().getClassLoader(); - try - { - com.google.common.reflect.ClassPath.from(loader).getTopLevelClasses("ninjaphenix.test").forEach(c -> { - try - { - - Object inst = loader.loadClass(c.getName()).newInstance(); - if (inst instanceof ModInitializer) - { - ((ModInitializer) inst).onInitialize(); - } - } - catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) - { - System.out.println("Error loading class: " + c.getName()); - } - }); - } - catch (IOException e) - { - e.printStackTrace(System.out); - } - } - } -} diff --git a/chainmail/src/main/resources/fabric.mod.json b/chainmail/src/main/resources/fabric.mod.json index 42c0729b..733a0707 100644 --- a/chainmail/src/main/resources/fabric.mod.json +++ b/chainmail/src/main/resources/fabric.mod.json @@ -12,16 +12,11 @@ }, "license": "MIT-0", "environment": "*", - "entrypoints": { - "main": [ - "ninjaphenix.chainmail.impl.Main" - ] - }, "mixins": [ "chainmail.common.mixins.json" ], "depends": { - "fabricloader": ">=0.7.4", + "fabricloader": ">=0.7", "fabric": "*", "minecraft": "~1.15" } diff --git a/settings.gradle b/settings.gradle index 1cb260e5..ee3c2fa8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -9,4 +9,5 @@ pluginManagement { } include 'chainmail' +include 'chainmail-tests' include 'torcherino' \ No newline at end of file