|
1 | 1 | package fr.catcore.modremapperapi; |
2 | 2 |
|
3 | | -import com.google.common.collect.ImmutableSet; |
4 | 3 | 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 | | - } |
41 | 4 |
|
| 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 | + */ |
42 | 14 | @Deprecated |
43 | 15 | public static void registerTransformer(IClassTransformer transformer) { |
44 | 16 | registerPreTransformer(transformer); |
45 | 17 | } |
46 | 18 |
|
| 19 | + /** |
| 20 | + * @deprecated Use {@link io.github.fabriccompatibiltylayers.modremappingapi.api.v1.ClassTransformer#registerPreTransformer(io.github.fabriccompatibiltylayers.modremappingapi.api.v1.ClassTransformer)} instead. |
| 21 | + */ |
| 22 | + @Deprecated |
47 | 23 | public static void registerPreTransformer(IClassTransformer transformer) { |
48 | | - PRE_TRANSFORMERS.add(transformer); |
| 24 | + io.github.fabriccompatibiltylayers.modremappingapi.api.v1.ClassTransformer.registerPreTransformer(transformer); |
49 | 25 | } |
50 | 26 |
|
| 27 | + /** |
| 28 | + * @deprecated Use {@link io.github.fabriccompatibiltylayers.modremappingapi.api.v1.ClassTransformer#registerPostTransformer(io.github.fabriccompatibiltylayers.modremappingapi.api.v1.ClassTransformer)} instead. |
| 29 | + */ |
| 30 | + @Deprecated |
51 | 31 | 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); |
70 | 33 | } |
71 | 34 | } |
0 commit comments