@@ -10,6 +10,7 @@ plugins {
1010 alias libs. plugins. changelog
1111 alias libs. plugins. licenser
1212 alias libs. plugins. shadow
13+ alias libs. plugins. multirelease
1314}
1415
1516gradleutils. displayName = ' Slime Launcher'
@@ -45,7 +46,8 @@ tasks.named('jar', Jar) {
4546 manifest {
4647 attributes([
4748 ' Main-Class' : ' net.minecraftforge.launcher.Main' ,
48- ' Automatic-Module-Name' : ' net.minecraftforge.launcher'
49+ ' Automatic-Module-Name' : ' net.minecraftforge.launcher' ,
50+ ' Add-Opens' : ' java.base/java.lang.invoke=net.minecraftforge.launcher'
4951 ])
5052
5153 gradleutils. manifestDefaults(it, ' net/minecraftforge/launcher/' )
@@ -54,9 +56,38 @@ tasks.named('jar', Jar) {
5456 archiveClassifier = ' thin'
5557}
5658
59+
60+ multiRelease. register {
61+ add(JavaLanguageVersion . of(9 ), project(' :slime-launcher-j9' ))
62+ }
63+ def multiReleaseJar = tasks. named(' multiReleaseJar' , Jar ) {
64+ includeEmptyDirs = false
65+ eachFile({
66+ if (name == ' module-info.class' )
67+ path = ' module-info.class'
68+ if (name == ' DummyForModule.class' )
69+ exclude()
70+ })
71+ }
72+
5773tasks. named(' shadowJar' , ShadowJar ) {
74+ duplicatesStrategy = DuplicatesStrategy . EXCLUDE
75+
76+ dependsOn multiReleaseJar
77+ from({zipTree(multiReleaseJar. get(). archiveFile. get(). asFile)})
78+ exclude(' META-INF/maven/**' )
79+ exclude(' META-INF/proguard/**' )
80+
5881 enableAutoRelocation = true
5982 relocationPrefix = ' net.minecraftforge.launcher.shadow'
83+ relocate ' com.google.errorprone.annotations' , ' net.minecraftforge.launcher.shadow.errorprone'
84+ relocate ' com.google.gson' , ' net.minecraftforge.launcher.shadow.gson'
85+ relocate ' net.minecraftforge.util' , ' net.minecraftforge.launcher.shadow.util'
86+ // Rewrite JOpt's message files, so that help text is displayed nicely.
87+ transform(com.github.jengelman.gradle.plugins.shadow.transformers.PropertiesFileTransformer ) {
88+ paths = [ ' Messages.properties$' ]
89+ keyTransformer = { key -> ' net.minecraftforge.launcher.shadow.' + key }
90+ }
6091
6192 archiveClassifier = ' '
6293}
0 commit comments