Skip to content

Commit

Permalink
Rewrite LP patching
Browse files Browse the repository at this point in the history
  • Loading branch information
kappa-maintainer committed May 15, 2024
1 parent 65bd3d0 commit a5ada8e
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 57 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ mappings_version=39-1.12
mod_id=fugue
mod_name=Fugue
mod_main_class=Fugue
mod_version=0.14.7
mod_version=0.14.9
mod_base_package=com.cleanroommc.fugue
mod_authors=kappa_maintainer
mod_description=A mod that patch dead mods for Cleanroom
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,10 @@ public class FugueLoadingPlugin implements IFMLLoadingPlugin {
}
if (FugueConfig.modPatchConfig.enableLP){
TransformerDelegate.registerExplicitTransformerByInstance(
new LogisticPipesTransformer(1),
new LogisticPipesHandlerTransformer(),
"logisticspipes.asm.mcmp.ClassBlockMultipartContainerHandler",
"logisticspipes.asm.td.ClassRenderDuctItemsHandler");
TransformerDelegate.registerExplicitTransformerByInstance(new LogisticPipesTransformer(3), "logisticspipes.asm.td.ClassTravelingItemHandler");
"logisticspipes.asm.td.ClassRenderDuctItemsHandler",
"logisticspipes.asm.td.ClassTravelingItemHandler");
TransformerDelegate.registerExplicitTransformerByInstance(
new LogisticsClassTransformerTransformer(ActualClassLoader.class),
"logisticspipes.asm.LogisticsClassTransformer",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.cleanroommc.fugue.transformer.logisticpipes;

import com.cleanroommc.fugue.common.Fugue;
import javassist.CannotCompileException;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.expr.ExprEditor;
import javassist.expr.MethodCall;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.tree.*;
import top.outlands.foundation.IExplicitTransformer;

import java.io.ByteArrayInputStream;

public class LogisticPipesHandlerTransformer implements IExplicitTransformer {
@Override
public byte[] transform(byte[] bytes) {
try {
var cp = ClassPool.getDefault();
CtClass cc = cp.makeClass(new ByteArrayInputStream(bytes));
cc.instrument(new ExprEditor(){
@Override
public void edit(MethodCall m) throws CannotCompileException {
if (m.getMethodName().equals("exitJava") || m.getMethodName().equals("printStackTrace")) {
m.replace("");
}
}
});
bytes = cc.toBytecode();
} catch (Throwable t) {
Fugue.LOGGER.error(t);
}
return bytes;
}
}

This file was deleted.

0 comments on commit a5ada8e

Please sign in to comment.