diff options
author | nea <romangraef@gmail.com> | 2022-10-06 20:40:09 +0200 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2023-11-12 18:17:00 +0100 |
commit | c0f0ec9b6a19a71c9cef63bc1e1def39936cd348 (patch) | |
tree | df65c2029a96bbdbfbfb2199bbfcf376823d88a5 | |
parent | d449a6860bdfd4994caddf6b37e0792e439a52d3 (diff) | |
download | forgetemplate1.8.9-c0f0ec9b6a19a71c9cef63bc1e1def39936cd348.tar.gz forgetemplate1.8.9-c0f0ec9b6a19a71c9cef63bc1e1def39936cd348.tar.bz2 forgetemplate1.8.9-c0f0ec9b6a19a71c9cef63bc1e1def39936cd348.zip |
Add kotlin to templatekotlin
-rw-r--r-- | README.md | 5 | ||||
-rw-r--r-- | build.gradle.kts | 9 | ||||
-rw-r--r-- | src/main/java/com/example/ExampleMod.java | 13 | ||||
-rw-r--r-- | src/main/kotlin/com/example/ExampleMod.kt | 22 | ||||
-rw-r--r-- | src/main/kotlin/com/example/mixin/MixinGuiMainMenu.java (renamed from src/main/java/com/example/mixin/MixinGuiMainMenu.java) | 0 | ||||
-rw-r--r-- | src/main/resources/assets/test/test.txt | 3 |
6 files changed, 38 insertions, 14 deletions
@@ -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)** @@ -11,6 +11,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 7286e59..e982b74 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 index 47eee87..47eee87 100644 --- a/src/main/java/com/example/mixin/MixinGuiMainMenu.java +++ b/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 + |