@@ -132,8 +132,13 @@ private static Path findObfMcJar(IEnvironment env) {
132132
133133 Class <?> newClass = makeNewOptiFineTransformer (oldTransformer .getClass ().getClassLoader ());
134134 Constructor <?> constr = newClass .getConstructor (ZipFile .class );
135- Object newTransformer = constr .newInstance (ofZipFile );
136-
135+ Object newTransformer ;
136+ try {
137+ newTransformer = constr .newInstance (ofZipFile );
138+ } catch (InvocationTargetException e ) {
139+ constr = newClass .getConstructor (ZipFile .class , IEnvironment .class );
140+ newTransformer = constr .newInstance (ofZipFile , envIn );
141+ }
137142 transformerField .set (null , newTransformer );
138143
139144 LOGGER .info ("Finding OptiFine AccessFixer" );
@@ -236,6 +241,28 @@ public Test(ZipFile ofZipFile) {
236241
237242 cw .visitSource ("OFDevTransformationService.java" , null );
238243
244+ {
245+ mv = cw .visitMethod (ACC_PUBLIC , "<init>" , "(Ljava/util/zip/ZipFile;Lcpw/mods/modlauncher/api/IEnvironment;)V" , null , null );
246+ mv .visitCode ();
247+ Label l0 = new Label ();
248+ mv .visitLabel (l0 );
249+ mv .visitLineNumber (10 , l0 );
250+ mv .visitVarInsn (ALOAD , 0 );
251+ mv .visitVarInsn (ALOAD , 1 );
252+ mv .visitVarInsn (ALOAD , 2 );
253+ mv .visitMethodInsn (INVOKESPECIAL , "optifine/OptiFineTransformer" , "<init>" , "(Ljava/util/zip/ZipFile;Lcpw/mods/modlauncher/api/IEnvironment;)V" , false );
254+ Label l1 = new Label ();
255+ mv .visitLabel (l1 );
256+ mv .visitLineNumber (11 , l1 );
257+ mv .visitInsn (RETURN );
258+ Label l2 = new Label ();
259+ mv .visitLabel (l2 );
260+ mv .visitLocalVariable ("this" , "L" + name + ";" , null , l0 , l2 , 0 );
261+ mv .visitLocalVariable ("ofZipFile" , "Ljava/util/zip/ZipFile;" , null , l0 , l2 , 1 );
262+ mv .visitLocalVariable ("env" , "Lcpw/mods/modlauncher/api/IEnvironment;" , null , l0 , l2 , 2 );
263+ mv .visitMaxs (3 , 3 );
264+ mv .visitEnd ();
265+ }
239266 {
240267 mv = cw .visitMethod (ACC_PUBLIC , "<init>" , "(Ljava/util/zip/ZipFile;)V" , null , null );
241268 mv .visitCode ();
0 commit comments