Commit fb593da6c01bcbc429950704a61af1d0cb8a0190

Authored by Mumfrey
1 parent c4b01822

remove last vestiges of PacketTransformer handling and fix mod-supplied transformers

java/common/com/mumfrey/liteloader/launch/ClassTransformerManager.java
... ... @@ -2,7 +2,6 @@ package com.mumfrey.liteloader.launch;
2 2  
3 3 import java.lang.reflect.Field;
4 4 import java.util.*;
5   -import java.util.Map.Entry;
6 5  
7 6 import org.apache.logging.log4j.Logger;
8 7 import org.apache.logging.log4j.core.LogEvent;
... ... @@ -12,7 +11,6 @@ import net.minecraft.launchwrapper.IClassTransformer;
12 11 import net.minecraft.launchwrapper.LaunchClassLoader;
13 12 import net.minecraft.launchwrapper.LogWrapper;
14 13  
15   -import com.mumfrey.liteloader.util.SortableValue;
16 14 import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
17 15  
18 16 /**
... ... @@ -28,19 +26,9 @@ public class ClassTransformerManager
28 26 private boolean gameStarted;
29 27  
30 28 /**
31   - * Transformers to inject
32   - */
33   - private Set<String> pendingTransformers = new HashSet<String>();
34   -
35   - /**
36 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 34 * Transformers passed into the constructor which are required and must be injected upstream
... ... @@ -50,7 +38,7 @@ public class ClassTransformerManager
50 38 /**
51 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 44 * Catalogue of transformer startup failures
... ... @@ -112,7 +100,7 @@ public class ClassTransformerManager
112 100 {
113 101 if (!this.gameStarted)
114 102 {
115   - this.pendingTransformers.add(transformerClass);
  103 + this.downstreamTransformers.add(transformerClass);
116 104 return true;
117 105 }
118 106  
... ... @@ -127,7 +115,7 @@ public class ClassTransformerManager
127 115 {
128 116 if (!this.gameStarted)
129 117 {
130   - this.pendingTransformers.addAll(transformerClasses);
  118 + this.downstreamTransformers.addAll(transformerClasses);
131 119 return true;
132 120 }
133 121  
... ... @@ -142,7 +130,7 @@ public class ClassTransformerManager
142 130 {
143 131 if (!this.gameStarted)
144 132 {
145   - this.pendingTransformers.addAll(Arrays.asList(transformerClasses));
  133 + this.downstreamTransformers.addAll(Arrays.asList(transformerClasses));
146 134 return true;
147 135 }
148 136  
... ... @@ -159,21 +147,6 @@ public class ClassTransformerManager
159 147 LiteLoaderLogger.info("Injecting required class transformer '%s'", requiredTransformerClassName);
160 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 154 */
182 155 void injectDownstreamTransformers(LaunchClassLoader classLoader)
183 156 {
  157 + this.gameStarted = true;
  158 +
184 159 if (this.downstreamTransformers.size() > 0)
185 160 LiteLoaderLogger.info("Injecting downstream transformers");
186 161  
... ... @@ -191,7 +166,6 @@ public class ClassTransformerManager
191 166 }
192 167  
193 168 this.downstreamTransformers.clear();
194   - this.gameStarted = true;
195 169 }
196 170  
197 171 private synchronized void injectTransformer(LaunchClassLoader classLoader, String transformerClassName)
... ...