summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author zaaarf <me@zaaarf.foo>2024-05-31 18:56:00 +0200
committer zaaarf <me@zaaarf.foo>2024-05-31 18:56:00 +0200
commitf7123206100c7026bab4478ad276bcda63f1be6a (patch)
tree52120e0f9dae87cda80ff029b6c70c5dbcf7de46
parentc48450085ba07655abc8b119629634f5ca43ebb9 (diff)
fix: solved various (glaring) mistakes, now it works!HEAD0.4.1dev
-rw-r--r--build.gradle2
-rw-r--r--src/main/java/ftbsc/lll/mapper/MapperProvider.java8
-rw-r--r--src/main/java/ftbsc/lll/mapper/data/ClassData.java2
-rw-r--r--src/main/java/ftbsc/lll/mapper/data/MethodSignature.java6
-rw-r--r--src/main/java/ftbsc/lll/mapper/impl/SRGMapper.java18
-rw-r--r--src/main/java/ftbsc/lll/mapper/impl/TinyV2Mapper.java35
6 files changed, 38 insertions, 33 deletions
diff --git a/build.gradle b/build.gradle
index 3897d8d..80edc24 100644
--- a/build.gradle
+++ b/build.gradle
@@ -24,7 +24,7 @@ repositories {
}
dependencies {
- implementation 'ftbsc:lll:0.5.0'
+ implementation 'ftbsc:lll:0.5.1'
implementation 'com.google.auto.service:auto-service-annotations:1.1.0'
annotationProcessor 'com.google.auto.service:auto-service:1.1.0'
}
diff --git a/src/main/java/ftbsc/lll/mapper/MapperProvider.java b/src/main/java/ftbsc/lll/mapper/MapperProvider.java
index 5ac9178..7dc8ade 100644
--- a/src/main/java/ftbsc/lll/mapper/MapperProvider.java
+++ b/src/main/java/ftbsc/lll/mapper/MapperProvider.java
@@ -36,7 +36,7 @@ public class MapperProvider {
*/
private void loadMappers() {
this.loadedMappers = new HashSet<>();
- for(IMappingFormat mapper: ServiceLoader.load(IMappingFormat.class))
+ for(IMappingFormat mapper: ServiceLoader.load(IMappingFormat.class, this.getClass().getClassLoader()))
this.loadedMappers.add(mapper);
if(this.loadedMappers.isEmpty())
throw new RuntimeException("Something went wrong: no mapper types were loaded successfully!");
@@ -79,7 +79,9 @@ public class MapperProvider {
}
}
- return new BufferedReader(new InputStreamReader(targetStream,
- StandardCharsets.UTF_8)).lines().collect(Collectors.toList());
+ return new BufferedReader(new InputStreamReader(
+ targetStream,
+ StandardCharsets.UTF_8)
+ ).lines().collect(Collectors.toList());
}
}
diff --git a/src/main/java/ftbsc/lll/mapper/data/ClassData.java b/src/main/java/ftbsc/lll/mapper/data/ClassData.java
index 04592fd..f8c6901 100644
--- a/src/main/java/ftbsc/lll/mapper/data/ClassData.java
+++ b/src/main/java/ftbsc/lll/mapper/data/ClassData.java
@@ -87,7 +87,7 @@ public class ClassData {
*/
public ClassData generateReverseMappings(Mapper mapper) {
ClassData reverse = new ClassData(this.nameMapped, this.name);
- this.methods.forEach((signature, data) -> reverse.addMethod(nameMapped, signature.name,
+ this.methods.forEach((signature, data) -> reverse.addMethod(data.nameMapped, signature.name,
MappingUtils.mapMethodDescriptor(signature.descriptor, mapper, false)));
this.fields.forEach((name, data) -> reverse.addField(data.nameMapped, name, data.descriptor));
return reverse;
diff --git a/src/main/java/ftbsc/lll/mapper/data/MethodSignature.java b/src/main/java/ftbsc/lll/mapper/data/MethodSignature.java
index d7515a8..b1f30f2 100644
--- a/src/main/java/ftbsc/lll/mapper/data/MethodSignature.java
+++ b/src/main/java/ftbsc/lll/mapper/data/MethodSignature.java
@@ -18,7 +18,7 @@ public class MethodSignature {
/**
* Constructs a new {@link MethodSignature}. The parameters should be
- * either plain or obfuscated in the same way;
+ * either plain or mapped in the same way;
* @param name the method name
* @param descriptor the method descriptor
*/
@@ -37,7 +37,7 @@ public class MethodSignature {
if(this == o) return true;
if(o == null || getClass() != o.getClass()) return false;
MethodSignature signature = (MethodSignature) o;
- return Objects.equals(name, signature.name) && Objects.equals(descriptor, signature.descriptor);
+ return Objects.equals(this.name, signature.name) && Objects.equals(this.descriptor, signature.descriptor);
}
/**
@@ -46,6 +46,6 @@ public class MethodSignature {
*/
@Override
public int hashCode() {
- return Objects.hash(name, descriptor);
+ return Objects.hash(this.name, this.descriptor);
}
}
diff --git a/src/main/java/ftbsc/lll/mapper/impl/SRGMapper.java b/src/main/java/ftbsc/lll/mapper/impl/SRGMapper.java
index b4d51af..55bc54b 100644
--- a/src/main/java/ftbsc/lll/mapper/impl/SRGMapper.java
+++ b/src/main/java/ftbsc/lll/mapper/impl/SRGMapper.java
@@ -78,17 +78,17 @@ public class SRGMapper implements IMappingFormat {
String[] split = tokens[1].split("/");
String memberName = split[split.length - 1];
String parent = tokens[1].substring(0, tokens[1].length() - split[split.length - 1].length() - 1);
- int obfPosition = field ? 2 : 3;
- split = tokens[obfPosition].split("/");
- String memberNameObf = split[split.length - 1];
- String parentObf = tokens[obfPosition].substring(0, tokens[obfPosition].length() - split[split.length - 1].length() - 1);
- this.registerMember(mapper, invertedMapper, parent, parentObf, memberName, memberNameObf,
+ int mappedPosition = field ? 2 : 3;
+ split = tokens[mappedPosition].split("/");
+ String memberNameMapped = split[split.length - 1];
+ String parentMapped = tokens[mappedPosition].substring(0, tokens[mappedPosition].length() - split[split.length - 1].length() - 1);
+ this.registerMember(mapper, invertedMapper, parent, parentMapped, memberName, memberNameMapped,
field ? null : tokens[2], field ? null : tokens[4]);
return true;
}
/**
- * Registers a class in the mapper, if it isn't already.
+ * Registers a class in the mapper, if it isn't already known.
* @param mapper the {@link Mapper} with normal mappings
* @param invertedMapper the {@link Mapper} with inverted mappings
* @param name the name
@@ -118,12 +118,10 @@ public class SRGMapper implements IMappingFormat {
this.registerClass(mapper, invertedMapper, parent, parentMapped);
ClassData data = mapper.getClassData(parent);
ClassData dataReverse = invertedMapper.getClassData(data.nameMapped);
- if(descriptor == null || descriptorMapped == null) {
- //field
+ if(descriptor == null || descriptorMapped == null) { // field
data.addField(name, nameMapped);
dataReverse.addField(nameMapped, name);
- } else {
- //method
+ } else { // method
data.addMethod(name, nameMapped, descriptor);
dataReverse.addMethod(nameMapped, name, descriptorMapped);
}
diff --git a/src/main/java/ftbsc/lll/mapper/impl/TinyV2Mapper.java b/src/main/java/ftbsc/lll/mapper/impl/TinyV2Mapper.java
index e60b7ed..d91e955 100644
--- a/src/main/java/ftbsc/lll/mapper/impl/TinyV2Mapper.java
+++ b/src/main/java/ftbsc/lll/mapper/impl/TinyV2Mapper.java
@@ -28,41 +28,46 @@ public class TinyV2Mapper implements IMappingFormat {
for(int i = 1; i < lines.size(); i++) {
String currentLine = lines.get(i);
String[] tokens = currentLine.trim().split("\t");
- int tabCount = currentLine.indexOf(tokens[0]); //get number of leading tabs
+ int tabCount = currentLine.indexOf(tokens[0]); // get number of leading tabs
switch(tabCount) {
- case 0: //classes
+ case 0: // classes
if(tokens.length == 3) {
if(tokens[0].charAt(0) == 'c') {
result.getRawMappings().put(tokens[1], new ClassData(tokens[1], tokens[2]));
currentClass = tokens[1];
} else if(!ignoreErrors)
- throw new MalformedMappingsException(i, "root-level element must be class");
+ throw new MalformedMappingsException(i + 1, "root-level element must be class");
continue;
}
break;
- case 1: //class members
+ case 1: // class members
if(currentClass.isEmpty()) {
if(ignoreErrors) continue;
- else throw new MalformedMappingsException(i, "class member without parent class");
+ else throw new MalformedMappingsException(i + 1, "class member without parent class");
}
switch(tokens[0].charAt(0)) {
- case 'm': //methods
+ case 'm': // methods
if(tokens.length == 4)
- break;
- result.getClassData(currentClass).addMethod(tokens[2], tokens[3], tokens[1]);
+ result.getClassData(currentClass).addMethod(tokens[2], tokens[3], tokens[1]);
+ else if(!ignoreErrors)
+ throw new MalformedMappingsException(i + 1, "incomplete method member");
continue;
- case 'f': //fields
+ case 'f': // fields
if(tokens.length == 4)
- break;
- result.getClassData(currentClass).addField(tokens[2], tokens[3], tokens[1]);
+ result.getClassData(currentClass).addField(tokens[2], tokens[3], tokens[1]);
+ else if(!ignoreErrors)
+ throw new MalformedMappingsException(i + 1, "incomplete field member");
continue;
}
break;
- case 2: //parameters, our mappers don't really support those
- break;
+ case 2: // parameters, our mappers don't really support those
+ continue;
+ default:
+ if(tokens[0].charAt(0) == 'c')
+ continue; // skip comments
+ if(!ignoreErrors)
+ throw new MalformedMappingsException(i + 1, "wrong number of tab-separated tokens");
}
- if(!ignoreErrors)
- throw new MalformedMappingsException(i, "wrong number of tab-separated tokens");
}
return result;
}