Skip to content

Commit

Permalink
add unpick runtime
Browse files Browse the repository at this point in the history
  • Loading branch information
wagyourtail committed Feb 19, 2024
1 parent 7c46707 commit 894c6dd
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,7 @@ package xyz.wagyourtail.unimined.api.minecraft.patch.forge
import xyz.wagyourtail.unimined.api.minecraft.patch.jarmod.JarModPatcher

interface MinecraftForgePatcher<T: JarModPatcher> : ForgeLikePatcher<T> {

var useUnionRelaunch: Boolean

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import xyz.wagyourtail.unimined.internal.minecraft.patch.forge.fg2.FG2MinecraftT
import xyz.wagyourtail.unimined.internal.minecraft.patch.forge.fg3.FG3MinecraftTransformer
import xyz.wagyourtail.unimined.internal.minecraft.patch.jarmod.JarModMinecraftTransformer
import xyz.wagyourtail.unimined.internal.minecraft.resolver.parseAllLibraries
import xyz.wagyourtail.unimined.util.FinalizeOnRead
import xyz.wagyourtail.unimined.util.FinalizeOnWrite
import xyz.wagyourtail.unimined.util.MustSet
import xyz.wagyourtail.unimined.util.forEachInZip
Expand All @@ -22,6 +23,8 @@ class MinecraftForgeMinecraftTransformer(project: Project, provider: MinecraftPr

override var forgeTransformer: JarModMinecraftTransformer by FinalizeOnWrite(MustSet())

override var useUnionRelaunch: Boolean by FinalizeOnRead(provider.minecraftData.mcVersionCompare(provider.version, "1.20.3") >= 0)

init {
accessTransformerTransformer.dependency = project.dependencies.create("net.minecraftforge:accesstransformers:8.1.3")
accessTransformerTransformer.atMainClass = "net.minecraftforge.accesstransformer.TransformerProcessor"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import xyz.wagyourtail.unimined.api.minecraft.task.RemapJarTask
import xyz.wagyourtail.unimined.api.runs.RunConfig
import xyz.wagyourtail.unimined.api.unimined
import xyz.wagyourtail.unimined.internal.minecraft.patch.forge.ForgeLikeMinecraftTransformer
import xyz.wagyourtail.unimined.internal.minecraft.patch.forge.MinecraftForgeMinecraftTransformer
import xyz.wagyourtail.unimined.internal.minecraft.patch.forge.NeoForgedMinecraftTransformer
import xyz.wagyourtail.unimined.internal.minecraft.patch.forge.fg3.mcpconfig.McpConfigData
import xyz.wagyourtail.unimined.internal.minecraft.patch.forge.fg3.mcpconfig.McpConfigStep
Expand All @@ -34,6 +35,16 @@ class FG3MinecraftTransformer(project: Project, val parent: ForgeLikeMinecraftTr
project, parent.provider, jarModProvider = "forge", providerName = "${parent.providerName}-FG3"
) {

val useUnionRelauncher by lazy {
if (parent is MinecraftForgeMinecraftTransformer) {
parent.useUnionRelaunch
} else {
false
}
}

var unionRelauncherVersion: String = "1.0.0"

init {
project.logger.lifecycle("[Unimined/Forge] Using FG3 transformer")
parent.provider.minecraftRemapper.addResourceRemapper { JsCoreModRemapper(project.logger) }
Expand Down Expand Up @@ -141,6 +152,10 @@ class FG3MinecraftTransformer(project: Project, val parent: ForgeLikeMinecraftTr
}
}

if (useUnionRelauncher) {
provider.minecraftLibraries.dependencies.add(project.dependencies.create("io.github.juuxel:union-relauncher:$unionRelauncherVersion"))
}

if (userdevCfg.has("inject")) {
project.logger.lifecycle("[Unimined/ForgeTransformer] Attempting inject forge userdev into minecraft jar")
this.addTransform { outputJar ->
Expand Down Expand Up @@ -417,7 +432,13 @@ class FG3MinecraftTransformer(project: Project, val parent: ForgeLikeMinecraftTr
super.applyClientRunTransform(config)
createLegacyClasspath()
userdevCfg.get("runs").asJsonObject.get("client").asJsonObject.apply {
val mainClass = get("main").asString
val mainClass = if (useUnionRelauncher) {
config.jvmArgs += listOf("-DunionRelauncher.mainClass=${get("main").asString}")
"juuxel.unionrelauncher.UnionRelauncher"
} else {
get("main").asString
}

parent.tweakClassClient = get("env")?.asJsonObject?.get("tweakClass")?.asString
if (mainClass.startsWith("net.minecraftforge.legacydev")) {
project.logger.info("[FG3] Using legacydev launchwrapper")
Expand Down

0 comments on commit 894c6dd

Please sign in to comment.