Skip to content

Commit

Permalink
Add kotlin to template
Browse files Browse the repository at this point in the history
  • Loading branch information
nea89o committed Aug 8, 2024
1 parent c1dabe3 commit 80ef024
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 17 deletions.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -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)**

Expand 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.

Expand Down
9 changes: 9 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand All @@ -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
Expand Down
16 changes: 0 additions & 16 deletions src/main/java/com/example/ExampleMod.java

This file was deleted.

25 changes: 25 additions & 0 deletions src/main/kotlin/com/example/ExampleMod.kt
Original file line number Diff line number Diff line change
@@ -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());
}
}
3 changes: 3 additions & 0 deletions src/main/resources/assets/test/test.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
test
from resource pack

0 comments on commit 80ef024

Please sign in to comment.