From b76e285f608b46455336b117b16921a30dcc7b54 Mon Sep 17 00:00:00 2001 From: arcade_kappa Date: Sat, 1 Mar 2025 12:23:56 +0800 Subject: [PATCH] Patch CustomNPCs Unofficial --- README.md | 2 +- build.gradle | 3 +++ .../java/com/cleanroommc/fugue/config/ModPatchConfig.java | 1 + .../mixin/customnpcs/ScriptPlayerEventHandlerMixin.java | 3 ++- .../transformer/universal/FinalStripperTransformer.java | 5 ----- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ce34825..2c26522 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ If you are still using 0.1.0 Cleanroom, use 0.5.4. But that's not recommended. * Mcjty Core * LoliASM * Howling Moon -* Custom NPCs +* Custom NPCs (Unofficial) * XNet * ZeroCore (ExtremeReactor) * Smooth Font diff --git a/build.gradle b/build.gradle index 9f9fcf4..713850d 100644 --- a/build.gradle +++ b/build.gradle @@ -255,6 +255,9 @@ dependencies { //BetterPortals compileOnly(fg.deobf("curse.maven:betterportals-322948:2883633")) + //CustomNPCs Unofficial + compileOnly(fg.deobf("curse.maven:customnpcs-1086839:6166874")) + implementation 'org.jetbrains.kotlin:kotlin-stdlib:2.1.0' // Mixin and it's common libraries diff --git a/src/main/java/com/cleanroommc/fugue/config/ModPatchConfig.java b/src/main/java/com/cleanroommc/fugue/config/ModPatchConfig.java index dc551a5..02be9bb 100644 --- a/src/main/java/com/cleanroommc/fugue/config/ModPatchConfig.java +++ b/src/main/java/com/cleanroommc/fugue/config/ModPatchConfig.java @@ -63,6 +63,7 @@ public class ModPatchConfig { @Config.Name("Enable Howling Moon Patch") public boolean enableHowlingMoon = true; @Config.Name("Enable Custom NPCs Patch") + @Config.Comment("Also patches Custom NPCs Unofficial, will log harmless errors") public boolean enableCustomNPC = true; @Config.Name("Enabel Survivial Inc. Patch") public boolean enableSurvivialInc = true; diff --git a/src/main/java/com/cleanroommc/fugue/mixin/customnpcs/ScriptPlayerEventHandlerMixin.java b/src/main/java/com/cleanroommc/fugue/mixin/customnpcs/ScriptPlayerEventHandlerMixin.java index 4d34e0d..d1f82c2 100644 --- a/src/main/java/com/cleanroommc/fugue/mixin/customnpcs/ScriptPlayerEventHandlerMixin.java +++ b/src/main/java/com/cleanroommc/fugue/mixin/customnpcs/ScriptPlayerEventHandlerMixin.java @@ -2,12 +2,13 @@ import com.google.common.reflect.ClassPath; import net.minecraft.launchwrapper.Launch; +import noppes.npcs.PlayerEventHandler; 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) +@Mixin(value = {ScriptPlayerEventHandler.class, PlayerEventHandler.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 { diff --git a/src/main/java/com/cleanroommc/fugue/transformer/universal/FinalStripperTransformer.java b/src/main/java/com/cleanroommc/fugue/transformer/universal/FinalStripperTransformer.java index 2ef10d7..1bc6172 100644 --- a/src/main/java/com/cleanroommc/fugue/transformer/universal/FinalStripperTransformer.java +++ b/src/main/java/com/cleanroommc/fugue/transformer/universal/FinalStripperTransformer.java @@ -1,17 +1,12 @@ package com.cleanroommc.fugue.transformer.universal; import com.cleanroommc.fugue.common.Fugue; -import javassist.ClassPool; -import javassist.CtClass; -import javassist.Modifier; 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; -import java.lang.reflect.AccessFlag; import java.util.*; public class FinalStripperTransformer implements IExplicitTransformer {