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) |