Skip to content

Commit f433da1

Browse files
author
Devan-Kerman
committed
remove knot dep
1 parent 206f9b9 commit f433da1

File tree

3 files changed

+11
-19
lines changed

3 files changed

+11
-19
lines changed

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ minecraft_version=1.16.1
66
yarn_mappings=1.16.1+build.21
77
loader_version=0.8.9+build.203
88
# Mod Properties
9-
mod_version=1.0-SNAPSHOT
9+
mod_version=1.0
1010
maven_group=net.devtech
1111
archives_base_name=grossfabrichacks
1212
# Dependencies

settings.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ pluginManagement {
88
gradlePluginPortal()
99
}
1010
}
11+
rootProject.name = "grossfabrichacks"

src/main/java/net/devtech/grossfabrichacks/bootstrap/ClassBootstrap.java

+9-18
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package net.devtech.grossfabrichacks.bootstrap;
22

3+
import java.lang.annotation.Retention;
4+
import java.lang.annotation.RetentionPolicy;
35
import java.lang.reflect.Field;
46
import java.lang.reflect.InvocationTargetException;
57
import java.lang.reflect.Method;
@@ -16,15 +18,18 @@
1618
import org.spongepowered.asm.transformers.TreeTransformer;
1719

1820
public class ClassBootstrap implements Opcodes {
21+
private ClassBootstrap() {}
22+
1923
private static final Logger LOGGER = Logger.getLogger("Evil");
2024
public static final Method READ_CLASS;
2125
public static final Method WRITE_CLASS;
2226
public static final Field PROCESSOR;
2327
public static final Method APPLY_MIXINS;
2428

25-
/**
26-
* only those intelligent enough to mixin into the right place here get to wield such power
27-
*/
29+
@Retention(RetentionPolicy.CLASS)
30+
@interface Hint {String value();}
31+
32+
@Hint("only those intelligent enough to mixin into the right place here get to wield such power")
2833
public static byte[] transformClass(Object mixinTransformer, MixinEnvironment environment, String name, byte[] classBytes) throws InvocationTargetException, IllegalAccessException {
2934
TreeTransformer transformer = (TreeTransformer) mixinTransformer;
3035
// todo now turn this into an api, allowing mods to mixin to this for now
@@ -74,21 +79,7 @@ public static byte[] transformClass(Object mixinTransformer, MixinEnvironment en
7479
hacked = Class.forName("org.spongepowered.asm.mixin.transformer.HackedMixinTransformer", false, loader);
7580
}
7681

77-
Class<?> type = Class.forName("net.fabricmc.loader.launch.knot.KnotClassLoader");
78-
Field delegateField = type.getDeclaredField("delegate");
79-
delegateField.setAccessible(true);
80-
Object knotClassDelegate = delegateField.get(Thread.currentThread()
81-
.getContextClassLoader());
82-
LOGGER.info("KnotClassDelegate found! " + knotClassDelegate);
83-
84-
Field fabricMixinTransformerField = delegateField.getType().getDeclaredField("mixinTransformer");
85-
fabricMixinTransformerField.setAccessible(true);
86-
Object fabricMixinTransformer = fabricMixinTransformerField.get(knotClassDelegate);
87-
LOGGER.info("FabricMixinTransformerProxy found! " + fabricMixinTransformer);
88-
89-
Field transformerField = FabricMixinTransformerProxy.class.getDeclaredField("transformer");
90-
transformerField.setAccessible(true);
91-
Object mixinTransformer = transformerField.get(fabricMixinTransformer);
82+
Object mixinTransformer = MixinEnvironment.getCurrentEnvironment().getActiveTransformer();
9283
LOGGER.info("MixinTransformer found! " + mixinTransformer);
9384

9485
long klass = UnsafeUtil.getKlass(UnsafeUtil.UNSAFE.allocateInstance(hacked));

0 commit comments

Comments
 (0)