Skip to content

Commit d328058

Browse files
committed
Some internal clean up and api relocation
1 parent 5dd17ad commit d328058

23 files changed

Lines changed: 338 additions & 166 deletions
Lines changed: 19 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,34 @@
11
package fr.catcore.modremapperapi;
22

3-
import com.google.common.collect.ImmutableSet;
43
import fr.catcore.modremapperapi.api.IClassTransformer;
5-
import net.mine_diver.spasm.api.transform.RawClassTransformer;
6-
import net.mine_diver.spasm.api.transform.TransformationPhase;
7-
import net.mine_diver.spasm.impl.SpASM;
8-
import org.jetbrains.annotations.NotNull;
9-
10-
import java.util.HashSet;
11-
import java.util.Optional;
12-
import java.util.Set;
13-
14-
public class ClassTransformer implements RawClassTransformer {
15-
private static final Set<IClassTransformer> PRE_TRANSFORMERS = new HashSet<>();
16-
private static final Set<IClassTransformer> POST_TRANSFORMERS = new HashSet<>();
17-
18-
public static byte[] transform(String name, String transformedName, byte[] basicClass) {
19-
Set<IClassTransformer> transformers = new HashSet<>();
20-
21-
Set<IClassTransformer> transformerPool = PRE_TRANSFORMERS;
22-
23-
if (SpASM.getCurrentPhase() == TransformationPhase.AFTER_MIXINS) {
24-
transformerPool = POST_TRANSFORMERS;
25-
}
26-
27-
for (IClassTransformer transformer : transformerPool) {
28-
if (transformer.handlesClass(name, transformedName)) {
29-
transformers.add(transformer);
30-
}
31-
}
32-
33-
byte[] modifiedClass = basicClass;
34-
35-
for (IClassTransformer transformer : transformers) {
36-
modifiedClass = transformer.transformClass(name, transformedName, modifiedClass);
37-
}
38-
39-
return modifiedClass;
40-
}
414

5+
/**
6+
* @deprecated Use utility methods on {@link io.github.fabriccompatibiltylayers.modremappingapi.api.v1.ClassTransformer} instead.
7+
*/
8+
@Deprecated
9+
public class ClassTransformer {
10+
/**
11+
* @deprecated Deprecated in favor of {@link ClassTransformer#registerPreTransformer(IClassTransformer)}.
12+
* @param transformer
13+
*/
4214
@Deprecated
4315
public static void registerTransformer(IClassTransformer transformer) {
4416
registerPreTransformer(transformer);
4517
}
4618

19+
/**
20+
* @deprecated Use {@link io.github.fabriccompatibiltylayers.modremappingapi.api.v1.ClassTransformer#registerPreTransformer(io.github.fabriccompatibiltylayers.modremappingapi.api.v1.ClassTransformer)} instead.
21+
*/
22+
@Deprecated
4723
public static void registerPreTransformer(IClassTransformer transformer) {
48-
PRE_TRANSFORMERS.add(transformer);
24+
io.github.fabriccompatibiltylayers.modremappingapi.api.v1.ClassTransformer.registerPreTransformer(transformer);
4925
}
5026

27+
/**
28+
* @deprecated Use {@link io.github.fabriccompatibiltylayers.modremappingapi.api.v1.ClassTransformer#registerPostTransformer(io.github.fabriccompatibiltylayers.modremappingapi.api.v1.ClassTransformer)} instead.
29+
*/
30+
@Deprecated
5131
public static void registerPostTransformer(IClassTransformer transformer) {
52-
POST_TRANSFORMERS.add(transformer);
53-
}
54-
55-
@Override
56-
public @NotNull Optional<byte[]> transform(@NotNull ClassLoader classLoader, @NotNull String className, byte @NotNull [] bytes) {
57-
byte[] modifiedBytes = bytes;
58-
modifiedBytes = transform(className, className, modifiedBytes);
59-
60-
if (modifiedBytes != null) {
61-
return Optional.of(modifiedBytes);
62-
}
63-
64-
return Optional.empty();
65-
}
66-
67-
@Override
68-
public @NotNull ImmutableSet<TransformationPhase> getPhases() {
69-
return ALL_PHASES;
32+
io.github.fabriccompatibiltylayers.modremappingapi.api.v1.ClassTransformer.registerPostTransformer(transformer);
7033
}
7134
}
Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,7 @@
11
package fr.catcore.modremapperapi;
22

3-
import fr.catcore.modremapperapi.api.ModRemapper;
43
import io.github.fabriccompatibiltylayers.modremappingapi.impl.ModRemappingAPIImpl;
5-
import net.fabricmc.loader.api.FabricLoader;
6-
7-
import java.io.File;
8-
import java.util.ArrayList;
9-
import java.util.List;
104

115
public class ModRemappingAPI {
12-
13-
public static final boolean BABRIC = FabricLoader.getInstance().getModContainer("fabricloader")
14-
.get().getMetadata().getVersion().getFriendlyString().contains("babric");
6+
public static final boolean BABRIC = ModRemappingAPIImpl.BABRIC;
157
}
Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package fr.catcore.modremapperapi.api;
22

3-
// Original author is gudenau.
4-
public interface IClassTransformer {
5-
boolean handlesClass(String name, String transformedName);
6-
byte[] transformClass(String name, String transformedName, byte[] original);
3+
import io.github.fabriccompatibiltylayers.modremappingapi.api.v1.ClassTransformer;
4+
5+
/**
6+
* @deprecated Use {@link ClassTransformer} instead.
7+
*/
8+
@Deprecated
9+
public interface IClassTransformer extends ClassTransformer {
710
}

src/main/java/fr/catcore/modremapperapi/remapping/MapEntryType.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/main/java/fr/catcore/modremapperapi/remapping/RemapUtil.java

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
import io.github.fabriccompatibiltylayers.modremappingapi.impl.MappingBuilderImpl;
1010
import io.github.fabriccompatibiltylayers.modremappingapi.impl.MappingsUtilsImpl;
1111
import io.github.fabriccompatibiltylayers.modremappingapi.impl.VisitorInfosImpl;
12+
import io.github.fabriccompatibiltylayers.modremappingapi.impl.remapper.resource.RefmapRemapper;
13+
import io.github.fabriccompatibiltylayers.modremappingapi.impl.remapper.visitor.MRAApplyVisitor;
14+
import io.github.fabriccompatibiltylayers.modremappingapi.impl.remapper.visitor.MixinPostApplyVisitor;
15+
import io.github.fabriccompatibiltylayers.modremappingapi.impl.utils.CacheUtils;
1216
import net.fabricmc.api.EnvType;
1317
import net.fabricmc.loader.api.FabricLoader;
1418
import net.fabricmc.mappingio.MappingVisitor;
@@ -91,7 +95,7 @@ private static void downloadRemappingLibs() {
9195
remapper.addRemapLibraries(libraries, FabricLoader.getInstance().getEnvironmentType());
9296

9397
for (RemapLibrary library : libraries) {
94-
File libPath = new File(Constants.LIB_FOLDER, library.fileName);
98+
File libPath = CacheUtils.getLibraryPath(library.fileName).toFile();
9599

96100
if (!libPath.exists() && !library.url.isEmpty()) {
97101
Constants.MAIN_LOGGER.info("Downloading remapping library '" + library.fileName + "' from url '" + library.url + "'");
@@ -346,11 +350,11 @@ private static void preloadClasses() {
346350
"fr.catcore.modremapperapi.remapping.MappingBuilder",
347351
"fr.catcore.modremapperapi.remapping.MappingBuilder$Entry",
348352
"fr.catcore.modremapperapi.remapping.MappingBuilder$Type",
349-
"fr.catcore.modremapperapi.remapping.MixinPostApplyVisitor",
350-
"fr.catcore.modremapperapi.remapping.MRAClassVisitor",
351-
"fr.catcore.modremapperapi.remapping.MRAMethodVisitor",
352-
"fr.catcore.modremapperapi.remapping.MRAApplyVisitor",
353-
"fr.catcore.modremapperapi.remapping.RefmapRemapper",
353+
"io.github.fabriccompatibiltylayers.modremappingapi.impl.remapper.visitor.MixinPostApplyVisitor",
354+
"io.github.fabriccompatibiltylayers.modremappingapi.impl.remapper.asm.MRAClassVisitor",
355+
"io.github.fabriccompatibiltylayers.modremappingapi.impl.remapper.asm.MRAMethodVisitor",
356+
"io.github.fabriccompatibiltylayers.modremappingapi.impl.remapper.visitor.MRAApplyVisitor",
357+
"io.github.fabriccompatibiltylayers.modremappingapi.impl.remapper.resource.RefmapRemapper",
354358
"fr.catcore.modremapperapi.remapping.RemapUtil",
355359
"fr.catcore.modremapperapi.remapping.RemapUtil$MappingList",
356360
"fr.catcore.modremapperapi.remapping.VisitorInfos",
@@ -560,12 +564,12 @@ private static TinyRemapper makeRemapper(MappingTree... trees) {
560564
modRemapper.addRemapLibraries(libraries, FabricLoader.getInstance().getEnvironmentType());
561565

562566
for (RemapLibrary library : libraries) {
563-
File libPath = new File(Constants.LIB_FOLDER, library.fileName);
567+
Path libPath = CacheUtils.getLibraryPath(library.fileName);
564568

565-
if (libPath.exists()) {
566-
remapper.readClassPathAsync(libPath.toPath());
569+
if (Files.exists(libPath)) {
570+
remapper.readClassPathAsync(libPath);
567571
} else {
568-
Constants.MAIN_LOGGER.info("Library " + libPath.toPath() + " does not exist.");
572+
Constants.MAIN_LOGGER.info("Library " + libPath + " does not exist.");
569573
}
570574
}
571575
}
Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,19 @@
11
package fr.catcore.modremapperapi.utils;
22

3-
import net.fabricmc.loader.api.FabricLoader;
3+
import io.github.fabriccompatibiltylayers.modremappingapi.impl.utils.CacheUtils;
44
import net.legacyfabric.fabric.api.logger.v1.Logger;
55

66
import java.io.File;
77

88
public class Constants {
9-
public static final File MAIN_FOLDER = new File(FabricLoader.getInstance().getGameDir().toFile(), "mod-remapping-api");
10-
public static final File VERSIONED_FOLDER = new File(
11-
new File(MAIN_FOLDER,
12-
FabricLoader.getInstance().getModContainer("minecraft").get().getMetadata().getVersion().getFriendlyString()
13-
), FabricLoader.getInstance().getModContainer("mod-remapping-api").get().getMetadata().getVersion().getFriendlyString()
14-
);
15-
public static final File EXTRA_MAPPINGS_FILE = new File(VERSIONED_FOLDER, "extra_mappings.tiny");
16-
public static final File REMAPPED_MAPPINGS_FILE = new File(VERSIONED_FOLDER, "remapped_mappings.tiny");
17-
public static final File MC_MAPPINGS_FILE = new File(VERSIONED_FOLDER, "mc_mappings.tiny");
18-
public static final File FULL_MAPPINGS_FILE = new File(VERSIONED_FOLDER, "full_mappings.tiny");
9+
public static final File MAIN_FOLDER = CacheUtils.BASE_FOLDER.toFile();
10+
public static final File VERSIONED_FOLDER = CacheUtils.MAIN_FOLDER.toFile();
11+
public static final File LIB_FOLDER = CacheUtils.LIBRARY_FOLDER.toFile();
1912

20-
public static final File LIB_FOLDER = new File(VERSIONED_FOLDER, "libs");
21-
public static final Logger MAIN_LOGGER = Logger.get("ModRemappingAPI");
13+
public static final File EXTRA_MAPPINGS_FILE = CacheUtils.getCachePath("extra_mappings.tiny").toFile();
14+
public static final File REMAPPED_MAPPINGS_FILE = CacheUtils.getCachePath("remapped_mappings.tiny").toFile();
15+
public static final File MC_MAPPINGS_FILE = CacheUtils.getCachePath("mc_mappings.tiny").toFile();
16+
public static final File FULL_MAPPINGS_FILE = CacheUtils.getCachePath("full_mappings.tiny").toFile();
2217

23-
static {
24-
MAIN_FOLDER.mkdirs();
25-
VERSIONED_FOLDER.mkdirs();
26-
LIB_FOLDER.mkdirs();
27-
}
18+
public static final Logger MAIN_LOGGER = Logger.get("ModRemappingAPI");
2819
}

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

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import fr.catcore.modremapperapi.remapping.RemapUtil;
55
import io.github.fabriccompatibiltylayers.modremappingapi.impl.MappingsUtilsImpl;
66
import io.github.fabriccompatibiltylayers.modremappingapi.impl.RemapUtils;
7+
import io.github.fabriccompatibiltylayers.modremappingapi.impl.utils.CacheUtils;
78
import net.fabricmc.api.EnvType;
89
import net.fabricmc.loader.api.*;
910
import net.fabricmc.mappingio.MappingReader;
@@ -14,6 +15,7 @@
1415
import org.jetbrains.annotations.ApiStatus;
1516

1617
import java.io.*;
18+
import java.nio.file.Files;
1719
import java.nio.file.Path;
1820
import java.util.*;
1921

@@ -65,14 +67,14 @@ private static Path[] getMinecraftJar(List<Path> sourcePaths, String src, String
6567

6668
Map<Path, Path> paths = new HashMap<>();
6769

68-
for (Path path :
69-
originalClassPath) {
70+
for (Path path : originalClassPath) {
7071
Constants.MAIN_LOGGER.debug(path.toString());
71-
paths.put(path, new File(
72-
new File(Constants.LIB_FOLDER, target),
73-
path.toFile().getName()).toPath()
74-
);
75-
paths.get(path).toFile().delete();
72+
73+
Path computedPath = CacheUtils.getLibraryPath(target)
74+
.resolve(path.toFile().getName());
75+
76+
paths.put(path, computedPath);
77+
Files.delete(computedPath);
7678
}
7779

7880
TinyRemapper.Builder builder = TinyRemapper

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package fr.catcore.modremapperapi.utils;
22

3-
import fr.catcore.modremapperapi.remapping.RefmapRemapper;
3+
import io.github.fabriccompatibiltylayers.modremappingapi.impl.remapper.resource.RefmapRemapper;
44
import net.fabricmc.tinyremapper.TinyRemapper;
55

66
import java.util.HashMap;

0 commit comments

Comments
 (0)