Skip to content

Commit

Permalink
Patch customNPC
Browse files Browse the repository at this point in the history
  • Loading branch information
kappa-maintainer committed Apr 5, 2024
1 parent 4dddf22 commit 6a92d9b
Show file tree
Hide file tree
Showing 27 changed files with 55 additions and 74 deletions.
30 changes: 6 additions & 24 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -117,84 +117,66 @@ repositories {

dependencies {
minecraft "com.cleanroommc:cleanroom:15.24.0.3034"
//implementation "top.outlands:foundation:0.10.0"
//implementation 'org.javassist:javassist:3.30.2-GA'

//Charset Lib
compileOnly(fg.deobf("curse.maven:charset-284523:3656492"))
runtimeOnly(fg.deobf("curse.maven:charset-284523:3656492"))

//Xaero's Minimap
compileOnly(fg.deobf("curse.maven:xaero-263420:4911777"))
compileOnly(fg.deobf("curse.maven:xaero-map-317780:4911823"))
runtimeOnly(fg.deobf("curse.maven:xaero-263420:4911777"))

compileOnly(fg.deobf("curse.maven:xaero-plus-866084:4912433"))
//runtimeOnly(fg.deobf("curse.maven:xaero-plus-866084:4912433"))

//CodeChickenASM
compileOnly("codechicken:ChickenASM:3.2.0.17")
//runtimeOnly("codechicken:ChickenASM:3.2.0.17")

//CodeChickenLib
compileOnly(fg.deobf("codechicken:CodeChickenLib:1.12-3.1.5.330:universal"))
//runtimeOnly(fg.deobf("codechicken:CodeChickenLib:1.12-3.1.5.330:universal"))

//ForgeMultipart
compileOnly(fg.deobf("codechicken:ForgeMultipart:1.12-2.3.0.51:universal"))
//runtimeOnly(fg.deobf("codechicken:ForgeMultipart:1.12-2.3.0.51:universal")) //Don't uncomment it or you will crash, a Scala 2.12 is somehow resolved in the path

//Project Red Core
compileOnly(fg.deobf("curse.maven:pr-core-228702:2745545"))
//runtimeOnly(fg.deobf("curse.maven:pr-core-228702:2745545"))

//Solar Flux Reborne
compileOnly(fg.deobf("curse.maven:solarflux-246974:3050838"))
//runtimeOnly(fg.deobf("curse.maven:pr-core-228702:2745545"))

//Custom Main Menu
compileOnly(fg.deobf("curse.maven:cmm-226406:2857869"))
//runtimeOnly(fg.deobf("curse.maven:cmm-226406:2857869"))

//HammerLib
compileOnly(fg.deobf("curse.maven:hammer-247401:4878669"))
//runtimeOnly(fg.deobf("curse.maven:hammer-247401:4878669"))

//EnderCore
compileOnly(fg.deobf("com.enderio.core:EnderCore:1.12.2-0.5.78:core"))
//runtimeOnly(fg.deobf("com.enderio.core:EnderCore:1.12.2-0.5.78:core"))

//TickCentral
compileOnly(fg.deobf("curse.maven:tickcentral-377201:3140670"))
//runtimeOnly(fg.deobf("curse.maven:lag-goggles-283525:4493884"))

//Lag Goggles
compileOnly(fg.deobf("curse.maven:lag-goggles-283525:4493884"))
//runtimeOnly(fg.deobf("curse.maven:lag-goggles-283525:4493884"))

//Shoulder Surfing Reloaded
compileOnly(fg.deobf("curse.maven:shoulder-surfing-243190:5009912"))
//runtimeOnly(fg.deobf("curse.maven:shoulder-surfing-243190:5009912"))

//Logistics Pipes
compileOnly(fg.deobf("curse.maven:logistics-pipes-232838:4849512"))
//runtimeOnly(fg.deobf("curse.maven:logistics-pipes-232838:4849512"))

//GTCEU
compileOnly(fg.deobf("curse.maven:gtceu-557242:5050979"))
//runtimeOnly(fg.deobf("curse.maven:gtceu-557242:5050979"))

//The ASM
compileOnly(fg.deobf("curse.maven:the-asm-460609:5120166"))
//runtimeOnly(fg.deobf("curse.maven:gtceu-557242:5050979"))

//mcjty
compileOnly(fg.deobf("curse.maven:mcjty-233105:2745846"))
//runtimeOnly(fg.deobf("curse.maven:gtceu-557242:5050979"))


//mcjty
//howlingmoon
compileOnly(fg.deobf("curse.maven:howlingmoon-236149:2567452"))
//runtimeOnly(fg.deobf("curse.maven:gtceu-557242:5050979"))

//customNPCs
compileOnly(fg.deobf("curse.maven:customnpc-221826:2996912"))

// Mixin and it's common libraries
annotationProcessor 'org.ow2.asm:asm:9.6'
Expand All @@ -216,7 +198,7 @@ jar {
'Specification-Version': '1', // We are version 1 of ourselves
'FMLCorePluginContainsFMLMod': true,
//'TweakClass': 'org.spongepowered.asm.launch.MixinTweaker',
'FMLCorePlugin': 'com.cleanroommc.fugue.FugueLoadingPlugin',
'FMLCorePlugin': 'com.cleanroommc.fugue.common.FugueLoadingPlugin',
'ForceLoadAsMod': true,
'MixinConfigs': 'fugue.mixin.mod.json,fugue.mixin.init.json',
//'FMLAT': 'accesstransformer.cfg',
Expand Down
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.12.5-beta
mod_version=0.13.0-beta
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
@@ -1,9 +1,8 @@
package com.cleanroommc.fugue;
package com.cleanroommc.fugue.common;

import com.cleanroommc.fugue.Reference;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.event.*;
import net.minecraftforge.fml.common.network.NetworkCheckHandler;
import net.minecraftforge.fml.relauncher.Side;
import org.apache.logging.log4j.LogManager;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.cleanroommc.fugue;
package com.cleanroommc.fugue.common;

import com.cleanroommc.fugue.config.FugueConfig;
import com.cleanroommc.fugue.transformer.*;
Expand All @@ -13,21 +13,17 @@
import net.minecraft.launchwrapper.Launch;
import net.minecraftforge.common.config.ConfigManager;
import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin;
import org.spongepowered.asm.mixin.Mixins;
import top.outlands.foundation.TransformerDelegate;
import top.outlands.foundation.boot.ActualClassLoader;
import zone.rong.mixinbooter.IEarlyMixinLoader;

import javax.annotation.Nullable;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;

@IFMLLoadingPlugin.MCVersion("1.12.2")
public class FugueLoadingPlugin implements IFMLLoadingPlugin {

static {
Launch.classLoader.addTransformerExclusion("com.cleanroommc.fugue.common.");
ConfigManager.register(FugueConfig.class);
if (FugueConfig.modPatchConfig.enableEnderCore) {
TransformerDelegate.registerExplicitTransformerByInstance(new EnderCoreTransformerTransformer(), "com.enderio.core.common.transform.EnderCoreTransformer");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.cleanroommc.fugue;
package com.cleanroommc.fugue.common;

import com.cleanroommc.fugue.config.FugueConfig;
import net.minecraft.launchwrapper.Launch;
Expand Down Expand Up @@ -43,6 +43,7 @@ public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
case "mcjty" -> Loader.isModLoaded("mcjtylib_ng") && FugueConfig.modPatchConfig.enableMcjty;
case "theasm" -> Launch.classLoader.isClassExist("zone.rong.loliasm.common.crashes.ModIdentifier") && FugueConfig.modPatchConfig.enableTheASM;
case "howlingmoon" -> Loader.isModLoaded("howlingmoon") && FugueConfig.modPatchConfig.enableHowlingMoon;
case "customnpcs" -> Loader.isModLoaded("customnpcs") && FugueConfig.modPatchConfig.enableCustomNPC;
default -> true;
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ public class ModPatchConfig {

@Config.Name("Enable XNet Patch")
public boolean enableXNet = true;
@Config.Name("Howling Moon")
@Config.Name("Enable Howling Moon")
public boolean enableHowlingMoon = true;
@Config.Name("Enable Custom NPCs")
public boolean enableCustomNPC = true;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.cleanroommc.fugue.mixin.customnpcs;

import com.google.common.reflect.ClassPath;
import net.minecraft.launchwrapper.Launch;
import noppes.npcs.ScriptPlayerEventHandler;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;

@Mixin(value = ScriptPlayerEventHandler.class, remap = false)
public class ScriptPlayerEventHandlerMixin {
@Redirect(method = "registerForgeEvents", at = @At(value = "INVOKE", target = "Lcom/google/common/reflect/ClassPath$ClassInfo;load()Ljava/lang/Class;"))
private Class<?> hackClassinfoLoad(ClassPath.ClassInfo instance) throws ClassNotFoundException {
return Launch.classLoader.findClass(instance.getName());
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package com.cleanroommc.fugue.mixin.hammercore;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import com.cleanroommc.hackery.ReflectionHackery;
import com.zeitheron.hammercore.utils.ReflectionUtil;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.cleanroommc.fugue.transformer;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import javassist.ClassPool;
import javassist.CtClass;
import top.outlands.foundation.IExplicitTransformer;
Expand All @@ -12,8 +12,6 @@ public class ClassHierarchyManagerTransformer implements IExplicitTransformer {
public byte[] transform(byte[] bytes) {
try {
ClassPool pool = ClassPool.getDefault();
pool.importPackage("codechicken.asm.ClassHierarchyManager.SuperCache");
pool.importPackage("codechicken.asm.ClassHierarchyManager");
CtClass cc = pool.makeClass(new ByteArrayInputStream(bytes));
cc.getMethod("getOrCreateCache", "(Ljava/lang/String;)Lcodechicken/asm/ClassHierarchyManager$SuperCache;").setBody(
"""
Expand All @@ -25,7 +23,7 @@ public byte[] transform(byte[] bytes) {
} else {
cache = superclasses.get($1);
}
return cache;
return (codechicken.asm.ClassHierarchyManager.SuperCache)cache;
}
""");
bytes = cc.toBytecode();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.cleanroommc.fugue.transformer;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import javassist.ClassPool;
import javassist.CtClass;
import top.outlands.foundation.IExplicitTransformer;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
package com.cleanroommc.fugue.transformer;

import com.cleanroommc.fugue.FugueLoadingPlugin;
import net.minecraft.launchwrapper.IClassTransformer;
import net.minecraft.launchwrapper.Launch;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Opcodes;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.cleanroommc.fugue.transformer;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import javassist.ClassPool;
import javassist.CtClass;
import top.outlands.foundation.IExplicitTransformer;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.cleanroommc.fugue.transformer;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import javassist.CannotCompileException;
import javassist.ClassPool;
import javassist.CtClass;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
package com.cleanroommc.fugue.transformer;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.FugueLoadingPlugin;
import net.minecraft.launchwrapper.IClassTransformer;
import net.minecraft.launchwrapper.Launch;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Opcodes;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.cleanroommc.fugue.transformer.logisticpipes;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.cleanroommc.fugue.transformer.loliasm;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import javassist.ClassPool;
import javassist.CtClass;
import top.outlands.foundation.IExplicitTransformer;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package com.cleanroommc.fugue.transformer.loliasm;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.Type;
import org.objectweb.asm.tree.*;
import top.outlands.foundation.IExplicitTransformer;
import top.outlands.foundation.boot.ActualClassLoader;

public class LoliFMLCallHookTransformer implements IExplicitTransformer {
@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.cleanroommc.fugue.transformer.loliasm;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import javassist.ClassPool;
import javassist.CtClass;
import top.outlands.foundation.IExplicitTransformer;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.cleanroommc.fugue.transformer.tickcentral;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import javassist.CannotCompileException;
import javassist.ClassPool;
import javassist.CtClass;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.cleanroommc.fugue.transformer.tickcentral;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import javassist.ClassPool;
import javassist.CtClass;
import top.outlands.foundation.IExplicitTransformer;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.cleanroommc.fugue.transformer.tickcentral;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package com.cleanroommc.fugue.transformer.tickcentral;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.expr.ExprEditor;
import net.minecraft.launchwrapper.Launch;
import top.outlands.foundation.IExplicitTransformer;

import java.io.ByteArrayInputStream;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.cleanroommc.fugue.transformer.universal;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.Modifier;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.cleanroommc.fugue.transformer.universal;

import com.cleanroommc.fugue.Fugue;
import com.cleanroommc.fugue.common.Fugue;
import javassist.*;
import javassist.expr.ExprEditor;
import javassist.expr.MethodCall;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.cleanroommc.fugue.transformer.universal;

import com.cleanroommc.fugue.Fugue;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Opcodes;
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/fugue.mixin.init.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"compatibilityLevel": "JAVA_8",
"refmap": "fugue.mixin.refmap.json",
"target": "@env(INIT)",
"plugin": "com.cleanroommc.fugue.FugueMixinConfigPlugin",
"plugin": "com.cleanroommc.fugue.common.FugueMixinConfigPlugin",
"mixins": [
"theasm.ModIdentifierMixin"
],
Expand Down
Loading

0 comments on commit 6a92d9b

Please sign in to comment.