Skip to content

Commit a6fe8b8

Browse files
committed
Update more code to java 17
1 parent 4658cb9 commit a6fe8b8

File tree

15 files changed

+157
-177
lines changed

15 files changed

+157
-177
lines changed

src/main/java/fr/catcore/modremapperapi/utils/FileUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public static void writeTextFile(Collection<String> lines, File file) {
1616
file.getParentFile().mkdirs();
1717

1818
try {
19-
Files.writeString(file.toPath(), String.join("\n", lines));
19+
Files.writeString(file.toPath(), String.join(System.lineSeparator(), lines));
2020
} catch (IOException e) {
2121
e.printStackTrace();
2222
}

src/main/java/io/github/fabriccompatibilitylayers/modremappingapi/api/v2/RemappingFlags.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package io.github.fabriccompatibilitylayers.modremappingapi.api.v2;
22

3-
import org.jetbrains.annotations.ApiStatus;
4-
5-
@ApiStatus.Internal
63
public enum RemappingFlags {
74
MIXIN,
85
ACCESS_WIDENER

src/main/java/io/github/fabriccompatibilitylayers/modremappingapi/api/v2/VisitorInfos.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@ static FullClassMember classMember(String owner, String name, @Nullable String d
2323
}
2424

2525
static FullClassMember classMember(String owner, String name, @Nullable Boolean isStatic) {
26-
var fullClassMember = new io.github.fabriccompatibiltylayers.modremappingapi.api.v1.VisitorInfos.FullClassMember(owner, name, isStatic);
27-
return fullClassMember;
26+
return new io.github.fabriccompatibiltylayers.modremappingapi.api.v1.VisitorInfos.FullClassMember(owner, name, isStatic);
2827
}
2928

3029
interface FullClassMember extends MappingUtils.ClassMember {

src/main/java/io/github/fabriccompatibilitylayers/modremappingapi/impl/ModRemappingAPIImpl.java

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@
99
import net.fabricmc.loader.api.FabricLoader;
1010
import org.jetbrains.annotations.ApiStatus;
1111

12-
import java.io.File;
12+
import java.nio.file.Files;
1313
import java.util.ArrayList;
14-
import java.util.List;
15-
import java.util.Map;
1614
import java.util.stream.Collectors;
1715

1816
@ApiStatus.Internal
@@ -30,8 +28,12 @@ public static void init() {
3028
if (!init && !initializing) {
3129
initializing = true;
3230

33-
FabricLoader.getInstance().getConfigDir().toFile().mkdirs();
34-
remapClassEdits = new File(FabricLoader.getInstance().getConfigDir().toFile(), ".remapclassedits").exists();
31+
try {
32+
Files.createDirectories(FabricLoader.getInstance().getConfigDir());
33+
remapClassEdits = Files.exists(FabricLoader.getInstance().getConfigDir().resolve(".remapclassedits"));
34+
} catch (Exception e) {
35+
throw new RuntimeException("Failed to initialize config directory", e);
36+
}
3537

3638
CURRENT_CONTEXT = new ModRemapperV1Context();
3739
CURRENT_CONTEXT.gatherRemappers();
@@ -41,21 +43,23 @@ public static void init() {
4143

4244
CURRENT_CONTEXT.afterRemap();
4345

44-
Map<String, List<ModRemapper>> v2Remappers = FabricLoader.getInstance()
46+
var v2Remappers = FabricLoader.getInstance()
4547
.getEntrypoints(v2EntrypointName, ModRemapper.class)
46-
.stream().collect(Collectors.groupingBy(ModRemapper::getContextId));
48+
.stream()
49+
.collect(Collectors.groupingBy(ModRemapper::getContextId));
4750

48-
List<String> v2Keys = new ArrayList<>(v2Remappers.keySet());
51+
var v2Keys = new ArrayList<>(v2Remappers.keySet());
4952

5053
while (!v2Keys.isEmpty()) {
51-
String contextKey = v2Keys.remove(0);
52-
ModRemmaperV2Context context = new ModRemmaperV2Context(contextKey, v2Remappers.get(contextKey));
54+
var contextKey = v2Keys.remove(0);
55+
var context = new ModRemmaperV2Context(contextKey, v2Remappers.get(contextKey));
5356
CURRENT_CONTEXT = context;
5457

5558
CURRENT_CONTEXT.init();
5659

57-
Map<String, List<ModRemapper>> newRemappers = context.discoverMods(remapClassEdits)
58-
.stream().collect(Collectors.groupingBy(ModRemapper::getContextId));
60+
var newRemappers = context.discoverMods(remapClassEdits)
61+
.stream()
62+
.collect(Collectors.groupingBy(ModRemapper::getContextId));
5963

6064
v2Keys.addAll(newRemappers.keySet());
6165

src/main/java/io/github/fabriccompatibilitylayers/modremappingapi/impl/remapper/asm/MRAClassVisitor.java

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,19 @@ public MRAClassVisitor(ClassVisitor classVisitor, VisitorInfosImpl infos, String
1717

1818
@Override
1919
public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {
20-
String superType = superName;
21-
22-
if (infos.SUPERS.containsKey(superName)) {
23-
superType = infos.SUPERS.get(superName);
24-
}
25-
20+
var superType = infos.SUPERS.getOrDefault(superName, superName);
2621
super.visit(version, access, name, signature, superType, interfaces);
2722
}
2823

2924
@Override
3025
public AnnotationVisitor visitTypeAnnotation(int typeRef, TypePath typePath, String descriptor, boolean visible) {
31-
String annotationType = descriptor;
32-
33-
if (infos.ANNOTATION.containsKey(descriptor)) {
34-
annotationType = infos.ANNOTATION.get(descriptor);
35-
}
36-
26+
var annotationType = infos.ANNOTATION.getOrDefault(descriptor, descriptor);
3727
return super.visitTypeAnnotation(typeRef, typePath, annotationType, visible);
3828
}
3929

4030
@Override
4131
public MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions) {
42-
MethodVisitor original = super.visitMethod(access, name, descriptor, signature, exceptions);
43-
original = new MRAMethodVisitor(original, infos, this.className);
44-
return original;
32+
var original = super.visitMethod(access, name, descriptor, signature, exceptions);
33+
return new MRAMethodVisitor(original, infos, this.className);
4534
}
4635
}

src/main/java/io/github/fabriccompatibilitylayers/modremappingapi/impl/remapper/asm/MRAMethodVisitor.java

Lines changed: 39 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
package io.github.fabriccompatibilitylayers.modremappingapi.impl.remapper.asm;
22

3-
import io.github.fabriccompatibilitylayers.modremappingapi.api.v2.VisitorInfos;
43
import io.github.fabriccompatibilitylayers.modremappingapi.impl.remapper.VisitorInfosImpl;
54
import org.jetbrains.annotations.ApiStatus;
65
import org.objectweb.asm.MethodVisitor;
76
import org.objectweb.asm.Opcodes;
87

9-
import java.util.Map;
8+
import java.util.Optional;
109

1110
@ApiStatus.Internal
1211
public class MRAMethodVisitor extends MethodVisitor implements Opcodes {
1312
private final VisitorInfosImpl infos;
1413
private final String className;
14+
1515
protected MRAMethodVisitor(MethodVisitor methodVisitor, VisitorInfosImpl visitorInfos, String className) {
1616
super(Opcodes.ASM9, methodVisitor);
1717
this.infos = visitorInfos;
@@ -20,9 +20,8 @@ protected MRAMethodVisitor(MethodVisitor methodVisitor, VisitorInfosImpl visitor
2020

2121
@Override
2222
public void visitTypeInsn(int opcode, String type) {
23-
String currentType = type;
24-
25-
boolean skip = false;
23+
var currentType = type;
24+
var skip = false;
2625

2726
if (opcode == NEW && infos.INSTANTIATION.containsKey(type)) {
2827
currentType = infos.INSTANTIATION.get(type);
@@ -38,30 +37,24 @@ public void visitTypeInsn(int opcode, String type) {
3837

3938
@Override
4039
public void visitFieldInsn(int opcode, String owner, String name, String descriptor) {
41-
String currentOwner = owner;
42-
String currentName = name;
43-
String currentDescriptor = descriptor;
40+
var currentOwner = owner;
41+
var currentName = name;
42+
var currentDescriptor = descriptor;
4443

4544
if (infos.FIELD_REF.containsKey(owner)) {
46-
Map<String, Map<String, VisitorInfos.FullClassMember>> fields = infos.FIELD_REF.get(owner);
47-
48-
Map<String, VisitorInfos.FullClassMember> args = fields.get(name);
45+
var fields = infos.FIELD_REF.get(owner);
4946

50-
if (args == null) {
51-
args = fields.get("");
52-
}
47+
var args = Optional.ofNullable(fields.get(name))
48+
.orElse(fields.get(""));
5349

5450
if (args != null) {
55-
VisitorInfos.FullClassMember classMember = args.get(descriptor);
56-
57-
if (classMember == null) {
58-
classMember = args.get("");
59-
}
51+
var classMember = Optional.ofNullable(args.get(descriptor))
52+
.orElse(args.get(""));
6053

6154
if (classMember != null) {
6255
currentOwner = classMember.getOwner();
6356
currentName = classMember.getName();
64-
currentDescriptor = classMember.getDesc();
57+
currentDescriptor = classMember.getDesc();
6558
}
6659
}
6760
}
@@ -79,12 +72,13 @@ public void visitFieldInsn(int opcode, String owner, String name, String descrip
7972

8073
@Override
8174
public void visitMethodInsn(int opcode, String owner, String name, String descriptor, boolean isInterface) {
82-
int currentOpcode = opcode;
83-
String currentOwner = owner;
84-
String currentName = name;
85-
String currentDescriptor = descriptor;
75+
var currentOpcode = opcode;
76+
var currentOwner = owner;
77+
var currentName = name;
78+
var currentDescriptor = descriptor;
79+
var isInterfaceCall = isInterface;
8680

87-
boolean skip = false;
81+
var skip = false;
8882

8983
if (opcode == INVOKESPECIAL && infos.INSTANTIATION.containsKey(owner) && name.equals("<init>")) {
9084
currentOwner = infos.INSTANTIATION.get(owner);
@@ -93,28 +87,27 @@ public void visitMethodInsn(int opcode, String owner, String name, String descri
9387

9488
if (!skip && (opcode == INVOKEVIRTUAL || opcode == INVOKESTATIC || opcode == INVOKEINTERFACE)) {
9589
if (infos.METHOD_INVOCATION.containsKey(owner)) {
96-
Map<String, Map<String, VisitorInfos.FullClassMember>> methods = infos.METHOD_INVOCATION.get(owner);
90+
var methods = infos.METHOD_INVOCATION.get(owner);
9791

98-
Map<String, VisitorInfos.FullClassMember> args = methods.get(currentName);
99-
100-
if (args == null) {
101-
args = methods.get("");
102-
}
92+
var args = Optional.ofNullable(methods.get(currentName))
93+
.orElse(methods.get(""));
10394

10495
if (args != null) {
105-
VisitorInfos.FullClassMember fullClassMember = args.get(currentDescriptor);
106-
107-
if (fullClassMember == null) {
108-
fullClassMember = args.get("");
109-
}
96+
var fullClassMember = Optional.ofNullable(args.get(currentDescriptor))
97+
.orElse(args.get(""));
11098

11199
if (fullClassMember != null) {
112100
currentOwner = fullClassMember.getOwner();
113101
currentName = fullClassMember.getName();
114-
currentDescriptor = fullClassMember.getDesc();
115-
116-
if (fullClassMember.isStatic() != null) currentOpcode = fullClassMember.isStatic() ? INVOKESTATIC : INVOKEVIRTUAL;
117-
if (isInterface) isInterface = false;
102+
currentDescriptor = fullClassMember.getDesc();
103+
104+
if (fullClassMember.isStatic() != null) {
105+
currentOpcode = fullClassMember.isStatic() ? INVOKESTATIC : INVOKEVIRTUAL;
106+
}
107+
108+
if (isInterfaceCall) {
109+
isInterfaceCall = false;
110+
}
118111
}
119112
}
120113
}
@@ -128,18 +121,18 @@ public void visitMethodInsn(int opcode, String owner, String name, String descri
128121
currentDescriptor = descriptor;
129122
}
130123

131-
super.visitMethodInsn(currentOpcode, currentOwner, currentName, currentDescriptor, isInterface);
124+
super.visitMethodInsn(currentOpcode, currentOwner, currentName, currentDescriptor, isInterfaceCall);
132125
}
133126

134127
@Override
135128
public void visitLdcInsn(Object value) {
136-
Object currentValue = value;
129+
var currentValue = value;
137130

138131
if (infos.LDC.containsKey(this.className)) {
139-
Map<Object, Object> map = infos.LDC.get(this.className);
140-
141-
if (map.containsKey(value)) {
142-
currentValue = map.get(value);
132+
var ldcMap = infos.LDC.get(this.className);
133+
134+
if (ldcMap.containsKey(value)) {
135+
currentValue = ldcMap.get(value);
143136
}
144137
}
145138

src/main/java/io/github/fabriccompatibilitylayers/modremappingapi/impl/remapper/asm/mixin/RefmapBaseMixinExtension.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ public void attach(TinyRemapper.Builder builder) {
3232
}
3333

3434
private void stateProcessor(TrEnvironment environment) {
35-
CommonData data = new CommonData(environment);
35+
var data = new CommonData(environment);
3636

37-
for (Consumer<CommonData> task : tasks.getOrDefault(environment.getMrjVersion(), Collections.emptyList())) {
37+
for (var task : tasks.getOrDefault(environment.getMrjVersion(), Collections.emptyList())) {
3838
try {
3939
task.accept(data);
4040
} catch (RuntimeException e) {
@@ -54,7 +54,7 @@ public ClassVisitor insertAnalyzeVisitor(int mrjVersion, String className, Class
5454
if (inputTagFilter == null || inputTags == null) {
5555
return insertAnalyzeVisitor(mrjVersion, className, next);
5656
} else {
57-
for (InputTag tag : inputTags) {
57+
for (var tag : inputTags) {
5858
if (inputTagFilter.test(tag)) {
5959
return insertAnalyzeVisitor(mrjVersion, className, next);
6060
}

src/main/java/io/github/fabriccompatibilitylayers/modremappingapi/impl/remapper/minecraft/ClasspathUtils.java

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,62 +8,60 @@
88

99
import java.io.File;
1010
import java.io.IOException;
11-
import java.nio.charset.StandardCharsets;
1211
import java.nio.file.Files;
1312
import java.nio.file.Path;
14-
import java.nio.file.Paths;
1513
import java.util.ArrayList;
1614
import java.util.Arrays;
1715
import java.util.List;
18-
import java.util.stream.Collectors;
16+
import java.util.Optional;
1917

2018
@ApiStatus.Internal
2119
public class ClasspathUtils {
2220
public static List<Path> getRemapClasspath() throws IOException {
23-
String remapClasspathFile = System.getProperty("fabric.remapClasspathFile");
21+
var remapClasspathFile = System.getProperty("fabric.remapClasspathFile");
2422

2523
if (remapClasspathFile == null) {
2624
System.out.println("remapClasspathFile is null! Falling back to ObjectShare.");
2725
return getClassPathFromObjectShare();
2826
}
2927

30-
String content = new String(Files.readAllBytes(Paths.get(remapClasspathFile)), StandardCharsets.UTF_8);
28+
var content = Files.readString(Path.of(remapClasspathFile));
3129

3230
return Arrays.stream(content.split(File.pathSeparator))
33-
.map(Paths::get)
34-
.collect(Collectors.toList());
31+
.map(Path::of)
32+
.toList();
3533
}
3634

3735
public static @NotNull List<Path> getClassPathFromObjectShare() {
38-
ObjectShare share = FabricLoader.getInstance().getObjectShare();
39-
Object inputs = share.get("fabric-loader:inputGameJars");
40-
List<Path> list = new ArrayList<>();
36+
var share = FabricLoader.getInstance().getObjectShare();
37+
var inputs = share.get("fabric-loader:inputGameJars");
38+
var list = new ArrayList<Path>();
4139

42-
Object oldJar = FabricLoader.getInstance().getObjectShare().get("fabric-loader:inputGameJar");
40+
var oldJar = FabricLoader.getInstance().getObjectShare().get("fabric-loader:inputGameJar");
41+
var classPaths = FabricLauncherBase.getLauncher().getClassPath();
4342

44-
List<Path> classPaths = FabricLauncherBase.getLauncher().getClassPath();
43+
if (inputs instanceof List<?> inputsList) {
44+
var paths = (List<Path>) inputsList;
4545

46-
if (inputs instanceof List) {
47-
List<Path> paths = (List<Path>) inputs;
48-
49-
if (oldJar instanceof Path) {
50-
if (paths.get(0).toString().equals(oldJar.toString())) {
46+
if (oldJar instanceof Path oldJarPath) {
47+
if (paths.get(0).toString().equals(oldJarPath.toString())) {
5148
list.addAll(paths);
5249
} else {
53-
list.add((Path) oldJar);
50+
list.add(oldJarPath);
5451
}
5552
} else {
5653
list.addAll(paths);
5754
}
58-
} else {
59-
list.add((Path) oldJar);
55+
} else if (oldJar instanceof Path oldJarPath) {
56+
list.add(oldJarPath);
6057
}
6158

6259
list.addAll(classPaths);
6360

64-
Object realmsJar = share.get("fabric-loader:inputRealmsJar");
65-
66-
if (realmsJar instanceof Path) list.add((Path) realmsJar);
61+
Optional.ofNullable(share.get("fabric-loader:inputRealmsJar"))
62+
.filter(Path.class::isInstance)
63+
.map(Path.class::cast)
64+
.ifPresent(list::add);
6765

6866
return list;
6967
}

0 commit comments

Comments
 (0)