Skip to content

Commit 8f2f55d

Browse files
Patch worse hurt time
1 parent e1966c1 commit 8f2f55d

File tree

3 files changed

+48
-2
lines changed

3 files changed

+48
-2
lines changed

src/main/java/com/cleanroommc/fugue/common/TransformerHelper.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.cleanroommc.fugue.modifiers.IC2ExtraFixer;
77
import com.cleanroommc.fugue.transformer.advancedrocket.ClassTransformerTransformer;
88
import com.cleanroommc.fugue.transformer.betterfc.HK_LoaderTransformer;
9+
import com.cleanroommc.fugue.transformer.betterhurttimer.DamageSpecialArmorMixinTransformer;
910
import com.cleanroommc.fugue.transformer.betterportals.MixinEntityRendererTransformer;
1011
import com.cleanroommc.fugue.transformer.betterportals.ExtensionKtTransformer;
1112
import com.cleanroommc.fugue.transformer.calculator.GuiInfoCalculatorTransformer;
@@ -363,8 +364,7 @@ public static void registerTransformers() {
363364
"com.shblock.integrated_proxy.mixin.MixinLoader"
364365
);
365366
}
366-
RemoveMixinInitFromCotrTransformer instance = new RemoveMixinInitFromCotrTransformer(
367-
);
367+
RemoveMixinInitFromCotrTransformer instance = new RemoveMixinInitFromCotrTransformer();
368368
if (FugueConfig.modPatchConfig.enableThaumicFixesPatch) {
369369
TransformerDelegate.registerExplicitTransformer(instance,
370370
"com.seriouscreeper.thaumicfixes.core.ThaumicFixesLoadingPlugin"
@@ -494,6 +494,12 @@ public static void registerTransformers() {
494494
"io.github.lgatodu47.screenshot_viewer.ScreenshotViewer$ScreenshotViewerEvents"
495495
);
496496
}
497+
if (FugueConfig.modPatchConfig.enableWorseHurtTime) {
498+
MixinServiceLaunchWrapper.registerMixinClassTransformer(
499+
new DamageSpecialArmorMixinTransformer(),
500+
"arekkuusu.betterhurttimer.mixin.DamageSpecialArmorMixin"
501+
);
502+
}
497503

498504
//Common patches below
499505

src/main/java/com/cleanroommc/fugue/config/ModPatchConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,4 +161,7 @@ public class ModPatchConfig {
161161
public boolean enableCorpse = true;
162162
@Config.Name("Enable ScreenshotViewer Patch")
163163
public boolean enableScreenshotViewer = true;
164+
@Config.Name("Enable Worse Hurt Time Patch")
165+
@Config.Comment("Should be compatible with better hurt time")
166+
public boolean enableWorseHurtTime = true;
164167
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.cleanroommc.fugue.transformer.betterhurttimer;
2+
3+
import com.cleanroommc.fugue.common.Fugue;
4+
import org.objectweb.asm.ClassReader;
5+
import org.objectweb.asm.ClassWriter;
6+
import org.objectweb.asm.tree.*;
7+
import top.outlands.foundation.IExplicitTransformer;
8+
9+
import java.util.Arrays;
10+
11+
public class DamageSpecialArmorMixinTransformer implements IExplicitTransformer {
12+
@Override
13+
public byte[] transform(byte[] bytes) {
14+
ClassNode classNode = new ClassNode();
15+
ClassReader classReader = new ClassReader(bytes);
16+
classReader.accept(classNode, 0);
17+
if (classNode.methods != null)
18+
{
19+
for (MethodNode methodNode : classNode.methods)
20+
{
21+
if (methodNode.name.equals("storeValues"))
22+
{
23+
if (methodNode.invisibleAnnotableParameterCount != 7) break;
24+
AnnotationNode local = methodNode.invisibleParameterAnnotations[5].getFirst();
25+
local.values.removeLast();
26+
local.values.add(0);
27+
break;
28+
}
29+
30+
}
31+
}
32+
ClassWriter classWriter = new ClassWriter(0);
33+
34+
classNode.accept(classWriter);
35+
return classWriter.toByteArray();
36+
}
37+
}

0 commit comments

Comments
 (0)