Skip to content

Instantly share code, notes, and snippets.

@IzzelAliz
Last active March 9, 2024 10:14
Show Gist options
  • Save IzzelAliz/ddac7f3f1a82dd19d28e29b1da33aac1 to your computer and use it in GitHub Desktop.
Save IzzelAliz/ddac7f3f1a82dd19d28e29b1da33aac1 to your computer and use it in GitHub Desktop.
Remap Spigot source to Mojmap
// Put this file to spigot build tools folder and type "gradle remapSource"
buildscript {
repositories {
maven { url = 'https://files.minecraftforge.net/maven' }
maven { url = 'https://repo.spongepowered.org/maven' }
mavenCentral()
maven { url = 'https://maven.izzel.io/releases' }
maven { url 'https://jitpack.io' }
}
dependencies {
classpath "org.cadixdev:mercury:0.1.0"
classpath 'org.cadixdev:mercurymixin:0.1.0-SNAPSHOT'
classpath 'org.cadixdev:lorenz-io-proguard:0.5.7'
classpath 'org.cadixdev:lorenz:0.5.7'
}
}
import org.cadixdev.lorenz.MappingSet
import org.cadixdev.lorenz.io.proguard.ProGuardReader
import org.cadixdev.lorenz.io.srg.csrg.CSrgReader
import org.cadixdev.lorenz.io.srg.tsrg.TSrgReader
import org.cadixdev.mercury.Mercury
import org.cadixdev.mercury.mixin.MixinRemapper
import org.cadixdev.mercury.remapper.MercuryRemapper
def version = '1.17'
task remapSource {
doFirst {
exec {
if (System.getProperty("os.name").toLowerCase().contains("win")) {
commandLine 'cmd', '/c', 'mvn', 'dependency:copy-dependencies'
} else {
commandLine 'mvn', 'dependency:copy-dependencies'
}
workingDir file('Spigot/Spigot-Server')
}
def mercury = new Mercury()
mercury.setGracefulClasspathChecks(true)
file('Spigot/Spigot-Server/target/dependency').eachFile {
mercury.classPath << it.toPath()
}
def mapset = MappingSet.create()
file("BuildData/mappings/bukkit-$version-cl.csrg").withReader {reader ->
new CSrgReader(reader).read(mapset)
}
file("BuildData/mappings/bukkit-$version-members.csrg").withReader {reader ->
mapset = mapset.merge(new CSrgReader(reader).read(MappingSet.create()))
}
"https://launcher.mojang.com/v1/objects/227d16f520848747a59bef6f490ae19dc290a804/client.txt".toURL().withReader { reader ->
def mojmap = new ProGuardReader(reader).read(MappingSet.create()).reverse()
mercury.processors << MercuryRemapper.create(mapset.reverse().merge(mojmap))
}
def source = project.file("Spigot/Spigot-Server/src/main/java"), dest = project.file("Spigot/Spigot-Server/src/main/java_tmp")
mercury.rewrite(source.toPath(), dest.toPath())
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment