Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,12 @@ subprojects {
downloadJson.dest.json.libraries.stream().map{ it?.downloads?.artifact?.path }.findAll{ it != null }.each{ library(file(PATH_CACHED_LIBRARIES + it)) }
}
}

task dumpStatic(type: DumpStatics, dependsOn: extractInheritance) {
srg file('joined.tsrg')
meta extractInheritance.dest
dest file(PATH_CACHED_VERSION_DATA + 'static_methods.txt')
}

task dumpOverrides(type: DumpOverrides, dependsOn: [extractInheritance, makeObfToIntermediate]) {
srg makeObfToIntermediate.dest
Expand Down Expand Up @@ -631,6 +637,11 @@ subprojects {

from generateConfiguration
from(file('joined.tsrg')){ into 'config/' }

if (MC_VERSION.compareTo(MC_1_16_5) < 0) {
dependsOn dumpStatic
from(dumpStatic){ into 'config/' }
}

def access = file('access.txt')
if (access.exists()) from(access) { into 'config/' }
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package net.minecraftforge.mcpconfig.tasks

import groovy.json.JsonSlurper
import net.minecraftforge.srgutils.IMappingFile
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.TaskAction
import static org.objectweb.asm.Opcodes.ACC_STATIC

public class DumpStatics extends SingleFileOutput {
@InputFile File srg
@InputFile File meta

@TaskAction
protected void exec() {
def srgO = IMappingFile.load(srg)
def json = new JsonSlurper().parseText(meta.text)

def methods = [] as HashSet

json.each{ cls,data ->
data['methods']?.findAll{k,v -> (v['access'] & ACC_STATIC) != 0}.each{ __, method ->
def name = method['name']
def desc = method['desc']
def mapped = srgO.getClass(cls)?.remapMethod(name, desc)
if (mapped != null && !desc.contains('()') && mapped.contains('func_'))
methods.add(mapped)
}
}

dest.withWriter('UTF-8') { writer ->
methods = methods.sort{it}
methods.each{ writer.write(it + '\n') }
}
}
}