From 6c1c6459f519a75537400f2fbee58aa319b93b20 Mon Sep 17 00:00:00 2001 From: Bella Date: Thu, 23 Apr 2020 10:12:56 -0400 Subject: [PATCH 1/3] use both forgelin and kotlin plugins --- build.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build.gradle b/build.gradle index e97eb9baa..9b39a9038 100644 --- a/build.gradle +++ b/build.gradle @@ -59,6 +59,10 @@ repositories { name = "jitpack.io" url = "https://jitpack.io" } + maven { + name = "forgelin-repo" + url "http://maven.shadowfacts.net/" + } mavenCentral() jcenter() } @@ -80,6 +84,7 @@ dependencies { compile 'club.minnced:java-discord-rpc:2.0.2' compile 'com.github.MrPowerGamerBR:TemmieWebhook:-SNAPSHOT' compile 'com.github.kevinsawicki:http-request:http-request-6.0' + compile group: "net.shadowfacts", name: "Forgelin", version: "1.8.4" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" } From 3191a63a8453f29cc9d468ced1f18892662d08c9 Mon Sep 17 00:00:00 2001 From: Bella Date: Thu, 23 Apr 2020 12:37:03 -0400 Subject: [PATCH 2/3] try to compile kotlin properly 3.0 --- build.gradle | 27 +++++++++++++-------------- gradle.properties | 3 ++- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/build.gradle b/build.gradle index 9b39a9038..04fd3f4a7 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,6 @@ // forge's stuff buildscript { - ext.kotlin_version = '1.3.72' repositories { jcenter() maven { @@ -17,18 +16,28 @@ buildscript { classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT' classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.3' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } + classpath group: 'org.jetbrains.kotlin', name: 'kotlin-gradle-plugin', version: "${kotlin_version}" } } -apply plugin: 'net.minecraftforge.gradle.forge' apply plugin: 'kotlin' +apply plugin: 'net.minecraftforge.gradle.forge' apply plugin: 'org.spongepowered.mixin' apply plugin: 'com.github.johnrengelman.shadow' version project.modVersion group project.modGroup // http://maven.apache.org/guides/mini/guide-naming-conventions.html +compileKotlin { + kotlinOptions { + jvmTarget = "1.8" + } +} +compileTestKotlin { + kotlinOptions { + jvmTarget = "1.8" + } +} + sourceCompatibility = targetCompatibility = '1.8' compileJava { sourceCompatibility = targetCompatibility = '1.8' @@ -154,13 +163,3 @@ jar { } build.dependsOn(shadowJar) -compileKotlin { - kotlinOptions { - jvmTarget = "1.8" - } -} -compileTestKotlin { - kotlinOptions { - jvmTarget = "1.8" - } -} diff --git a/gradle.properties b/gradle.properties index 4262e9c28..d3c718264 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,5 @@ modGroup=me.zeroeightsix modVersion=1.1.4-beta modBaseName=kamiblue forgeVersion=1.12.2-14.23.5.2847 -mcpVersion=stable_39 \ No newline at end of file +mcpVersion=stable_39 +kotlin_version=1.3.40 \ No newline at end of file From 0e25473c864cdc594df21cf68d9e89a636f906a9 Mon Sep 17 00:00:00 2001 From: Bella Date: Fri, 24 Apr 2020 11:27:36 -0400 Subject: [PATCH 3/3] implement forgelin fully and fix crashes --- build.gradle | 17 +++++++++-- gradle.properties | 4 ++- .../kami/mixin/MixinLoaderForge.java | 2 +- .../forgelin/preloader/ForgelinSetup.java | 28 +++++++++++++++++++ 4 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 src/main/java/net/shadowfacts/forgelin/preloader/ForgelinSetup.java diff --git a/build.gradle b/build.gradle index 04fd3f4a7..2346cd8d2 100644 --- a/build.gradle +++ b/build.gradle @@ -94,7 +94,13 @@ dependencies { compile 'com.github.MrPowerGamerBR:TemmieWebhook:-SNAPSHOT' compile 'com.github.kevinsawicki:http-request:http-request-6.0' compile group: "net.shadowfacts", name: "Forgelin", version: "1.8.4" - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" + compile group: "org.jetbrains.kotlin", name: "kotlin-stdlib", version: kotlin_version + compile group: "org.jetbrains.kotlin", name: "kotlin-stdlib-jdk7", version: kotlin_version + compile group: "org.jetbrains.kotlin", name: "kotlin-stdlib-jdk8", version: kotlin_version + compile group: "org.jetbrains.kotlin", name: "kotlin-reflect", version: kotlin_version + compile group: "org.jetbrains", name: "annotations", version: annotations_version + compile group: "org.jetbrains.kotlinx", name: "kotlinx-coroutines-core", version: coroutines_version + compile group: "org.jetbrains.kotlinx", name: "kotlinx-coroutines-jdk8", version: coroutines_version } processResources { @@ -130,7 +136,14 @@ shadowJar { include(dependency('org.javassist:javassist')) include(dependency('com.github.MrPowerGamerBR:TemmieWebhook')) include(dependency('com.github.kevinsawicki:http-request')) - include(dependency('org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version')) + include(dependency("org.jetbrains.kotlin:kotlin-stdlib:${kotlin_version}")) + include(dependency("org.jetbrains.kotlin:kotlin-stdlib-jdk7:${kotlin_version}")) + include(dependency("org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlin_version}")) + include(dependency("org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}")) + include(dependency("org.jetbrains:annotations:${annotations_version}")) + include(dependency("org.jetbrains.kotlinx:kotlinx-coroutines-core:${coroutines_version}")) + include(dependency("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:${coroutines_version}")) + include(dependency('net.shadowfacts:Forgelin')) } exclude 'dummyThing' // can someone explain why this is here classifier = 'release' diff --git a/gradle.properties b/gradle.properties index d3c718264..b2d9902ae 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,4 +4,6 @@ modVersion=1.1.4-beta modBaseName=kamiblue forgeVersion=1.12.2-14.23.5.2847 mcpVersion=stable_39 -kotlin_version=1.3.40 \ No newline at end of file +kotlin_version=1.3.50 +annotations_version=16.0.3 +coroutines_version=1.3.1 \ No newline at end of file diff --git a/src/main/java/me/zeroeightsix/kami/mixin/MixinLoaderForge.java b/src/main/java/me/zeroeightsix/kami/mixin/MixinLoaderForge.java index 1d3d8d1f0..1e048943c 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/MixinLoaderForge.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/MixinLoaderForge.java @@ -35,7 +35,7 @@ public class MixinLoaderForge implements IFMLLoadingPlugin { @Override public String getSetupClass() { - return null; + return "net.shadowfacts.forgelin.preloader.ForgelinSetup"; } @Override diff --git a/src/main/java/net/shadowfacts/forgelin/preloader/ForgelinSetup.java b/src/main/java/net/shadowfacts/forgelin/preloader/ForgelinSetup.java new file mode 100644 index 000000000..5b408491f --- /dev/null +++ b/src/main/java/net/shadowfacts/forgelin/preloader/ForgelinSetup.java @@ -0,0 +1,28 @@ +package net.shadowfacts.forgelin.preloader; + +import net.minecraftforge.fml.relauncher.IFMLCallHook; + +import java.util.Map; + +/** + * @author shadowfacts + */ +public class ForgelinSetup implements IFMLCallHook { + + @Override + public void injectData(Map data) { + ClassLoader loader = (ClassLoader)data.get("classLoader"); + try { + loader.loadClass("net.shadowfacts.forgelin.KotlinAdapter"); + } catch (ClassNotFoundException e) { + // this should never happen + throw new RuntimeException("Couldn't find Forgelin langague adapter, this shouldn't be happening", e); + } + } + + @Override + public Void call() throws Exception { + return null; + } + +} \ No newline at end of file