Skip to content

Commit

Permalink
Moved reflections to using mixin accessors
Browse files Browse the repository at this point in the history
  • Loading branch information
Rongmario committed Sep 3, 2024
1 parent 781611e commit 35f9bab
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 32 deletions.
26 changes: 4 additions & 22 deletions src/main/java/com/cleanroommc/flare/core/Flare.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@
import com.cleanroommc.flare.common.sampler.source.FlareClassSourceLookup;
import com.cleanroommc.flare.common.websocket.TrustedKeyStore;
import com.cleanroommc.flare.common.websocket.client.J8BytesocksClient;
import com.cleanroommc.flare.core.mixin.MinecraftAccessor;
import com.cleanroommc.flare.core.mixin.MinecraftServerAccessor;
import com.cleanroommc.flare.util.FlareMethodDescriptorResolver;
import com.cleanroommc.flare.util.FlareThreadFactory;
import com.google.common.base.Suppliers;
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import me.lucko.bytesocks.client.BytesocksClient;
import net.minecraft.client.Minecraft;
Expand All @@ -38,7 +39,6 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.lang.reflect.Field;
import java.nio.file.Path;
import java.util.Collections;
import java.util.List;
Expand Down Expand Up @@ -116,16 +116,7 @@ public TrustedKeyStore trustedKeyStore() {
@Override
public ThreadDumper serverThreadDumper() {
if (this.serverThread == null) {
this.serverThread = new GameThread(Suppliers.memoize(() -> {
try {
Field minecraftServer$serverThread = MinecraftServer.class.getDeclaredField("serverThread");
minecraftServer$serverThread.setAccessible(true);
return (Thread) minecraftServer$serverThread.get(server());
} catch (Throwable t) {
t.printStackTrace();
}
return null;
}));
this.serverThread = new GameThread(() -> ((MinecraftServerAccessor) server()).flare$getServerThread());
}
return this.serverThread.get();
}
Expand Down Expand Up @@ -222,16 +213,7 @@ public void syncWithServer(Runnable runnable) {
@SideOnly(Side.CLIENT)
public ThreadDumper clientThreadDumper() {
if (this.clientThread == null) {
this.clientThread = new GameThread(Suppliers.memoize(() -> {
try {
Field minecraft$thread = Minecraft.class.getDeclaredField("thread");
minecraft$thread.setAccessible(true);
return (Thread) minecraft$thread.get(Minecraft.getMinecraft());
} catch (Throwable t) {
t.printStackTrace();
}
return null;
}));
this.clientThread = new GameThread(() -> ((MinecraftAccessor) Minecraft.getMinecraft()).flare$getThread());
}
return this.clientThread.get();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.cleanroommc.flare.core.mixin;

import net.minecraft.client.Minecraft;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

@Mixin(Minecraft.class)
public interface MinecraftAccessor {

@Accessor(value = "thread")
Thread flare$getThread();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.cleanroommc.flare.core.mixin;

import net.minecraft.server.MinecraftServer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

@Mixin(MinecraftServer.class)
public interface MinecraftServerAccessor {

@Accessor(value = "serverThread")
Thread flare$getServerThread();

}
24 changes: 14 additions & 10 deletions src/main/resources/mixins.flare.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
{
"package": "com.cleanroommc.flare.core.mixin",
"required": true,
"refmap": "mixins.flare.refmap.json",
"target": "@env(DEFAULT)",
"minVersion": "0.8.5",
"compatibilityLevel": "JAVA_8",
"mixins": [
"LoadControllerMixin",
"TimeTrackerAccessor"
]
"package": "com.cleanroommc.flare.core.mixin",
"required": true,
"refmap": "mixins.flare.refmap.json",
"target": "@env(DEFAULT)",
"minVersion": "0.8.5",
"compatibilityLevel": "JAVA_8",
"mixins": [
"LoadControllerMixin",
"MinecraftServerAccessor",
"TimeTrackerAccessor"
],
"client": [
"MinecraftAccessor"
]
}

0 comments on commit 35f9bab

Please sign in to comment.