Skip to content

Instantly share code, notes, and snippets.

@robotgryphon
Created November 25, 2020 15:34
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save robotgryphon/618fc01eed8e6332c58054e136ded33c to your computer and use it in GitHub Desktop.
Save robotgryphon/618fc01eed8e6332c58054e136ded33c to your computer and use it in GitHub Desktop.
Forge De-Obfuscated JAR Mods
// Loads files in the format {modid}-{version}.jar, MC version optional but picky about hyphens.
// See the regex pattern.
def getModVersion(filename) {
// println(filename);
def pattern = /^(?<modid>[^-]+)(?:-(?<mcversion>[0-9.]+))?(?:-(?<modver>[0-9.\-]+))\.jar$/;
def matcher = filename =~ pattern
def found = matcher.find()
if(found) {
def mod = matcher.group("modid");
// Extract MC version or default
def mcVersion = matcher.group("mcversion");
// Extract mod version
def version = matcher.group("modver");
// println("> mod: ${mod}; mc: ${mcVersion}; version: ${version}");
if(mcVersion == null)
return "${mod}:${mod}:${version}";
else
return "${mod}:${mod}-${mcVersion}:${version}";
} else {
println("> not a mod filename")
return filename;
}
}
def dev_mods_dir = "mods"
repositories {
// Built mods
flatDir {
dirs dev_mods_dir
}
// Other repositories (standard build gradle)
}
def dev_mods = fileTree(dev_mods_dir).filter { it -> it.isFile() }.files.name.collect( { getModVersion(it) } )
dependencies {
// Snip: Minecraft dependencies, Forge
// Deobfuscate each dev mod for runtime
dev_mods.each {
compileOnly fg.deobf(it)
runtimeOnly fg.deobf(it)
}
// Other standard gradle dependencies
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment