diff options
author | nea <romangraef@gmail.com> | 2022-10-06 20:40:09 +0200 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2024-08-08 12:50:21 +0200 |
commit | 80ef02479b4119a5a4b5e99bf05bd948170bd5b3 (patch) | |
tree | 0caa3553615f4f0570297d90b0e7c25a41819faf | |
parent | c1dabe37d8b43d90a682edde797df9b278ec4a47 (diff) | |
download | forge1.8.9template-kotlin.tar.gz forge1.8.9template-kotlin.tar.bz2 forge1.8.9template-kotlin.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 | 16 | ||||
-rw-r--r-- | src/main/kotlin/com/example/ExampleMod.kt | 25 | ||||
-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, 41 insertions, 17 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)** @@ -13,6 +13,9 @@ To get started, [Use this template](https://github.com/new?template_name=Forge1. > [!WARNING] > Do not Fork or Clone or Download ZIP this template. If you "use" this template a custom mod id will be generated. You can do that manually using the `make-my-own` script, if you are on linux. If not, just click the use this template button. If you want to use kotlin or make a 1.12 mod check the "Include all branches" and change the default branch in https://github.com/yourname/yourreponame/branches +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 686fe0f..963e8df 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 "2.0.0" } //Constants: @@ -56,8 +57,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: @@ -78,6 +85,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 2ce1671..0000000 --- a/src/main/java/com/example/ExampleMod.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example; - -import net.minecraft.client.renderer.GlStateManager; -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()); - // Below is a demonstration of an access-transformed class access. - System.out.println("Color State: " + new GlStateManager.Color()); - } -} diff --git a/src/main/kotlin/com/example/ExampleMod.kt b/src/main/kotlin/com/example/ExampleMod.kt new file mode 100644 index 0000000..ad0feff --- /dev/null +++ b/src/main/kotlin/com/example/ExampleMod.kt @@ -0,0 +1,25 @@ +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 +import net.minecraft.client.renderer.GlStateManager + +@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}") + // Below is a demonstration of an access-transformed class access. + println("Color State: " + GlStateManager.Color()); + } +} 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 + |