Commit fb593da6c01bcbc429950704a61af1d0cb8a0190
1 parent
c4b01822
remove last vestiges of PacketTransformer handling and fix mod-supplied transformers
Showing
1 changed file
with
7 additions
and
33 deletions
java/common/com/mumfrey/liteloader/launch/ClassTransformerManager.java
@@ -2,7 +2,6 @@ package com.mumfrey.liteloader.launch; | @@ -2,7 +2,6 @@ package com.mumfrey.liteloader.launch; | ||
2 | 2 | ||
3 | import java.lang.reflect.Field; | 3 | import java.lang.reflect.Field; |
4 | import java.util.*; | 4 | import java.util.*; |
5 | -import java.util.Map.Entry; | ||
6 | 5 | ||
7 | import org.apache.logging.log4j.Logger; | 6 | import org.apache.logging.log4j.Logger; |
8 | import org.apache.logging.log4j.core.LogEvent; | 7 | import org.apache.logging.log4j.core.LogEvent; |
@@ -12,7 +11,6 @@ import net.minecraft.launchwrapper.IClassTransformer; | @@ -12,7 +11,6 @@ import net.minecraft.launchwrapper.IClassTransformer; | ||
12 | import net.minecraft.launchwrapper.LaunchClassLoader; | 11 | import net.minecraft.launchwrapper.LaunchClassLoader; |
13 | import net.minecraft.launchwrapper.LogWrapper; | 12 | import net.minecraft.launchwrapper.LogWrapper; |
14 | 13 | ||
15 | -import com.mumfrey.liteloader.util.SortableValue; | ||
16 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; | 14 | import com.mumfrey.liteloader.util.log.LiteLoaderLogger; |
17 | 15 | ||
18 | /** | 16 | /** |
@@ -28,19 +26,9 @@ public class ClassTransformerManager | @@ -28,19 +26,9 @@ public class ClassTransformerManager | ||
28 | private boolean gameStarted; | 26 | private boolean gameStarted; |
29 | 27 | ||
30 | /** | 28 | /** |
31 | - * Transformers to inject | ||
32 | - */ | ||
33 | - private Set<String> pendingTransformers = new HashSet<String>(); | ||
34 | - | ||
35 | - /** | ||
36 | * Transformers to inject after preInit but before the game starts, necessary for anything that needs to be downstream of forge | 29 | * Transformers to inject after preInit but before the game starts, necessary for anything that needs to be downstream of forge |
37 | */ | 30 | */ |
38 | - private Set<String> downstreamTransformers = new HashSet<String>(); | ||
39 | - | ||
40 | - /** | ||
41 | - * Packet transformers, seived from the injectedTransformers list | ||
42 | - */ | ||
43 | - private Map<String, TreeSet<SortableValue<String>>> packetTransformers = new HashMap<String, TreeSet<SortableValue<String>>>(); | 31 | + private Set<String> downstreamTransformers = new LinkedHashSet<String>(); |
44 | 32 | ||
45 | /** | 33 | /** |
46 | * Transformers passed into the constructor which are required and must be injected upstream | 34 | * Transformers passed into the constructor which are required and must be injected upstream |
@@ -50,7 +38,7 @@ public class ClassTransformerManager | @@ -50,7 +38,7 @@ public class ClassTransformerManager | ||
50 | /** | 38 | /** |
51 | * Transformers successfully injected by us | 39 | * Transformers successfully injected by us |
52 | */ | 40 | */ |
53 | - private final Set<String> injectedTransformers = new HashSet<String>(); | 41 | + private final Set<String> injectedTransformers = new LinkedHashSet<String>(); |
54 | 42 | ||
55 | /** | 43 | /** |
56 | * Catalogue of transformer startup failures | 44 | * Catalogue of transformer startup failures |
@@ -112,7 +100,7 @@ public class ClassTransformerManager | @@ -112,7 +100,7 @@ public class ClassTransformerManager | ||
112 | { | 100 | { |
113 | if (!this.gameStarted) | 101 | if (!this.gameStarted) |
114 | { | 102 | { |
115 | - this.pendingTransformers.add(transformerClass); | 103 | + this.downstreamTransformers.add(transformerClass); |
116 | return true; | 104 | return true; |
117 | } | 105 | } |
118 | 106 | ||
@@ -127,7 +115,7 @@ public class ClassTransformerManager | @@ -127,7 +115,7 @@ public class ClassTransformerManager | ||
127 | { | 115 | { |
128 | if (!this.gameStarted) | 116 | if (!this.gameStarted) |
129 | { | 117 | { |
130 | - this.pendingTransformers.addAll(transformerClasses); | 118 | + this.downstreamTransformers.addAll(transformerClasses); |
131 | return true; | 119 | return true; |
132 | } | 120 | } |
133 | 121 | ||
@@ -142,7 +130,7 @@ public class ClassTransformerManager | @@ -142,7 +130,7 @@ public class ClassTransformerManager | ||
142 | { | 130 | { |
143 | if (!this.gameStarted) | 131 | if (!this.gameStarted) |
144 | { | 132 | { |
145 | - this.pendingTransformers.addAll(Arrays.asList(transformerClasses)); | 133 | + this.downstreamTransformers.addAll(Arrays.asList(transformerClasses)); |
146 | return true; | 134 | return true; |
147 | } | 135 | } |
148 | 136 | ||
@@ -159,21 +147,6 @@ public class ClassTransformerManager | @@ -159,21 +147,6 @@ public class ClassTransformerManager | ||
159 | LiteLoaderLogger.info("Injecting required class transformer '%s'", requiredTransformerClassName); | 147 | LiteLoaderLogger.info("Injecting required class transformer '%s'", requiredTransformerClassName); |
160 | this.injectTransformer(classLoader, requiredTransformerClassName); | 148 | this.injectTransformer(classLoader, requiredTransformerClassName); |
161 | } | 149 | } |
162 | - | ||
163 | - for (Entry<String, TreeSet<SortableValue<String>>> packetClassTransformers : this.packetTransformers.entrySet()) | ||
164 | - { | ||
165 | - for (SortableValue<String> transformerInfo : packetClassTransformers.getValue()) | ||
166 | - { | ||
167 | - String packetClass = packetClassTransformers.getKey(); | ||
168 | - String transformerClassName = transformerInfo.getValue(); | ||
169 | - if (packetClass.lastIndexOf('.') != -1) packetClass = packetClass.substring(packetClass.lastIndexOf('.') + 1); | ||
170 | - LiteLoaderLogger.info("Injecting packet class transformer '%s' for packet class '%s' with priority %d", transformerClassName, packetClass, transformerInfo.getPriority()); | ||
171 | - this.injectTransformer(classLoader, transformerClassName); | ||
172 | - } | ||
173 | - } | ||
174 | - | ||
175 | - // inject any transformers received after this point directly into the downstreamTransformers set | ||
176 | - this.pendingTransformers = this.downstreamTransformers; | ||
177 | } | 150 | } |
178 | 151 | ||
179 | /** | 152 | /** |
@@ -181,6 +154,8 @@ public class ClassTransformerManager | @@ -181,6 +154,8 @@ public class ClassTransformerManager | ||
181 | */ | 154 | */ |
182 | void injectDownstreamTransformers(LaunchClassLoader classLoader) | 155 | void injectDownstreamTransformers(LaunchClassLoader classLoader) |
183 | { | 156 | { |
157 | + this.gameStarted = true; | ||
158 | + | ||
184 | if (this.downstreamTransformers.size() > 0) | 159 | if (this.downstreamTransformers.size() > 0) |
185 | LiteLoaderLogger.info("Injecting downstream transformers"); | 160 | LiteLoaderLogger.info("Injecting downstream transformers"); |
186 | 161 | ||
@@ -191,7 +166,6 @@ public class ClassTransformerManager | @@ -191,7 +166,6 @@ public class ClassTransformerManager | ||
191 | } | 166 | } |
192 | 167 | ||
193 | this.downstreamTransformers.clear(); | 168 | this.downstreamTransformers.clear(); |
194 | - this.gameStarted = true; | ||
195 | } | 169 | } |
196 | 170 | ||
197 | private synchronized void injectTransformer(LaunchClassLoader classLoader, String transformerClassName) | 171 | private synchronized void injectTransformer(LaunchClassLoader classLoader, String transformerClassName) |