diff --git a/README.md b/README.md index 3f299e2..d8f1035 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Architectury Loom based template for 1.8.9 forge mods + Architectury Loom based template for 1.8.9 kotlin forge mods **For other templates, do check out the [other branches of this repository](https://github.com/romangraef/Forge1.8.9Template/branches/all)** @@ -17,6 +17,9 @@ The `com.example` package needs to be renamed to match the value of `baseGroup`. If you don't want mixins (which allow for modifying vanilla code), then you can remove the references to mixins from the `build.gradle.kts` at the lines specified with comments and the `com.example.mixin` package. +Please note that Mixins should be kept in their own package, and should exclusively be written in Java, since older versions +of Mixin don't play well with Kotlin. + This project uses [DevAuth](https://github.com/DJtheRedstoner/DevAuth) per default, so you can log in using your real minecraft account. If you don't need that, you can remove it from the buildscript. diff --git a/build.gradle.kts b/build.gradle.kts index ddaf995..98f7efa 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,6 +6,7 @@ plugins { id("gg.essential.loom") version "0.10.0.+" id("dev.architectury.architectury-pack200") version "0.1.3" id("com.github.johnrengelman.shadow") version "8.1.1" + kotlin("jvm") version "1.8.21" } //Constants: @@ -52,8 +53,14 @@ loom { } } +tasks.compileJava { + dependsOn(tasks.processResources) +} + sourceSets.main { output.setResourcesDir(sourceSets.main.flatMap { it.java.classesDirectory }) + java.srcDir(layout.projectDirectory.dir("src/main/kotlin")) + kotlin.destinationDirectory.set(java.destinationDirectory) } // Dependencies: @@ -74,6 +81,8 @@ dependencies { mappings("de.oceanlabs.mcp:mcp_stable:22-1.8.9") forge("net.minecraftforge:forge:1.8.9-11.15.1.2318-1.8.9") + shadowImpl(kotlin("stdlib-jdk8")) + // If you don't want mixins, remove these lines shadowImpl("org.spongepowered:mixin:0.7.11-SNAPSHOT") { isTransitive = false diff --git a/src/main/java/com/example/ExampleMod.java b/src/main/java/com/example/ExampleMod.java deleted file mode 100644 index c18b591..0000000 --- a/src/main/java/com/example/ExampleMod.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.example; - -import net.minecraft.init.Blocks; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.common.event.FMLInitializationEvent; - -@Mod(modid = "examplemod", useMetadata=true) -public class ExampleMod { - @Mod.EventHandler - public void init(FMLInitializationEvent event) { - System.out.println("Dirt: " + Blocks.dirt.getUnlocalizedName()); - } -} diff --git a/src/main/kotlin/com/example/ExampleMod.kt b/src/main/kotlin/com/example/ExampleMod.kt new file mode 100644 index 0000000..bf32496 --- /dev/null +++ b/src/main/kotlin/com/example/ExampleMod.kt @@ -0,0 +1,22 @@ +package com.example + +import net.minecraft.client.Minecraft +import net.minecraft.init.Blocks +import net.minecraftforge.fml.common.Mod +import net.minecraftforge.fml.common.event.FMLInitializationEvent + +@Mod(modid = "examplemod", useMetadata = true) +class ExampleMod { + @Mod.EventHandler + fun init(event: FMLInitializationEvent) { + try { + val resource: net.minecraft.client.resources.IResource = Minecraft.getMinecraft().getResourceManager() + .getResource(net.minecraft.util.ResourceLocation("test:test.txt")) + org.apache.commons.io.IOUtils.copy(resource.getInputStream(), java.lang.System.out) + } catch (e: java.io.IOException) { + throw java.lang.RuntimeException(e) + } + + println("Dirt: ${Blocks.dirt.unlocalizedName}") + } +} diff --git a/src/main/java/com/example/mixin/MixinGuiMainMenu.java b/src/main/kotlin/com/example/mixin/MixinGuiMainMenu.java similarity index 100% rename from src/main/java/com/example/mixin/MixinGuiMainMenu.java rename to src/main/kotlin/com/example/mixin/MixinGuiMainMenu.java diff --git a/src/main/resources/assets/test/test.txt b/src/main/resources/assets/test/test.txt new file mode 100644 index 0000000..ea839e2 --- /dev/null +++ b/src/main/resources/assets/test/test.txt @@ -0,0 +1,3 @@ +test +from resource pack +