Skip to content

Commit f01dfe7

Browse files
committed
Revert "Move pre-transformation checks to SkyblockAddonsSetup"
This reverts commit 4d41865
1 parent 59bbf91 commit f01dfe7

10 files changed

Lines changed: 63 additions & 117 deletions

src/main/java/codes/biscuit/skyblockaddons/asm/hooks/GuiNewChatHook.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package codes.biscuit.skyblockaddons.asm.hooks;
22

33
import codes.biscuit.skyblockaddons.SkyblockAddons;
4-
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsSetup;
4+
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsTransformer;
55
import net.minecraft.client.Minecraft;
66
import net.minecraft.command.ICommandSender;
77
import net.minecraft.util.IChatComponent;
@@ -11,7 +11,7 @@ public class GuiNewChatHook {
1111
public static String getUnformattedText(IChatComponent iChatComponent) {
1212
SkyblockAddons main = SkyblockAddons.getInstance();
1313
ICommandSender player = Minecraft.getMinecraft().thePlayer;
14-
if (main != null && SkyblockAddonsSetup.isDeobfuscatedEnvironment() || (player != null && player.getName().equals("Biscut"))) {
14+
if (main != null && SkyblockAddonsTransformer.isDeobfuscated() || (player != null && player.getName().equals("Biscut"))) {
1515
return iChatComponent.getFormattedText(); // makes it easier for debugging
1616
}
1717
return iChatComponent.getUnformattedText();

src/main/java/codes/biscuit/skyblockaddons/asm/hooks/SoundManagerHook.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package codes.biscuit.skyblockaddons.asm.hooks;
22

33
import codes.biscuit.skyblockaddons.SkyblockAddons;
4-
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsSetup;
4+
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsTransformer;
55
import net.minecraft.client.audio.ISound;
66
import net.minecraft.client.audio.SoundCategory;
77
import net.minecraft.client.audio.SoundManager;
@@ -19,7 +19,7 @@ public static float getNormalizedVolume(SoundManager soundManager, ISound sound,
1919
if (main != null && main.getUtils() != null && main.getUtils().isPlayingSound()) {
2020
return 1;
2121
} else {
22-
if (SkyblockAddonsSetup.isUsingLabyModClient()) { // There are no access transformers in LabyMod.
22+
if (SkyblockAddonsTransformer.isLabymodClient()) { // There are no access transformers in labymod.
2323
try {
2424
if (getNormalizedVolume == null) {
2525
getNormalizedVolume = soundManager.getClass().getDeclaredMethod("a", ISound.class, SoundPoolEntry.class, SoundCategory.class);

src/main/java/codes/biscuit/skyblockaddons/asm/hooks/TileEntityEnderChestRendererHook.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package codes.biscuit.skyblockaddons.asm.hooks;
22

33
import codes.biscuit.skyblockaddons.SkyblockAddons;
4-
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsSetup;
4+
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsTransformer;
55
import codes.biscuit.skyblockaddons.core.Feature;
66
import codes.biscuit.skyblockaddons.core.Location;
77
import codes.biscuit.skyblockaddons.utils.ColorCode;
@@ -32,7 +32,7 @@ public static void bindTexture(TileEntityEnderChestRenderer tileEntityEnderChest
3232
}
3333

3434
private static void bindRightTexture(TileEntityEnderChestRenderer tileEntityEnderChestRenderer, ResourceLocation resourceLocation) {
35-
if (SkyblockAddonsSetup.isUsingLabyModClient()) { // There are no access transformers in LabyMod.
35+
if (SkyblockAddonsTransformer.isLabymodClient()) { // There are no access transformers in labymod.
3636
try {
3737
if (bindTexture == null) {
3838
bindTexture = tileEntityEnderChestRenderer.getClass().getSuperclass().getDeclaredMethod("a", ResourceLocation.class);

src/main/java/codes/biscuit/skyblockaddons/asm/utils/TransformerClass.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package codes.biscuit.skyblockaddons.asm.utils;
22

3-
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsSetup;
3+
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsTransformer;
44

55
public enum TransformerClass {
66

@@ -71,7 +71,7 @@ public enum TransformerClass {
7171
this.seargeClass = seargeClass;
7272
this.notchClass18 = notchClass18;
7373

74-
if (SkyblockAddonsSetup.isDeobfuscatedEnvironment() || !SkyblockAddonsSetup.isRuntimeDeobfuscationEnabled()) {
74+
if (SkyblockAddonsTransformer.isDeobfuscated() || !SkyblockAddonsTransformer.isUsingNotchMappings()) {
7575
name = seargeClass;
7676
} else {
7777
name = notchClass18;
@@ -93,7 +93,7 @@ public String getName() {
9393
}
9494

9595
public String getTransformerName() {
96-
if (SkyblockAddonsSetup.isUsingLabyModClient()) return notchClass18;
96+
if (SkyblockAddonsTransformer.isLabymodClient()) return notchClass18;
9797

9898
return seargeClass.replaceAll("/", ".");
9999
}

src/main/java/codes/biscuit/skyblockaddons/asm/utils/TransformerField.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package codes.biscuit.skyblockaddons.asm.utils;
22

3-
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsSetup;
3+
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsTransformer;
44
import org.objectweb.asm.Opcodes;
55
import org.objectweb.asm.tree.FieldInsnNode;
66

@@ -52,10 +52,10 @@ public enum TransformerField {
5252
TransformerField(String deobfName, String seargeName, String notchName18, String type) {
5353
this.type = type;
5454

55-
if (SkyblockAddonsSetup.isDeobfuscatedEnvironment()) {
55+
if (SkyblockAddonsTransformer.isDeobfuscated()) {
5656
name = deobfName;
5757
} else {
58-
if (SkyblockAddonsSetup.isRuntimeDeobfuscationEnabled()) {
58+
if (SkyblockAddonsTransformer.isUsingNotchMappings()) {
5959
name = notchName18;
6060
} else {
6161
name = seargeName;

src/main/java/codes/biscuit/skyblockaddons/asm/utils/TransformerMethod.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package codes.biscuit.skyblockaddons.asm.utils;
22

3-
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsSetup;
3+
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsTransformer;
44
import org.objectweb.asm.Opcodes;
55
import org.objectweb.asm.tree.MethodInsnNode;
66
import org.objectweb.asm.tree.MethodNode;
@@ -158,11 +158,11 @@ public enum TransformerMethod {
158158
}
159159

160160
TransformerMethod(String deobfMethod, String seargeMethod, String notchMethod18, String seargeDescription, String notchDescription, boolean ioException) {
161-
if (SkyblockAddonsSetup.isDeobfuscatedEnvironment()) {
161+
if (SkyblockAddonsTransformer.isDeobfuscated()) {
162162
name = deobfMethod;
163163
description = seargeDescription;
164164
} else {
165-
if (SkyblockAddonsSetup.isRuntimeDeobfuscationEnabled()) {
165+
if (SkyblockAddonsTransformer.isUsingNotchMappings()) {
166166
name = notchMethod18;
167167
description = notchDescription;
168168
} else {

src/main/java/codes/biscuit/skyblockaddons/features/tabtimers/TabEffectManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import codes.biscuit.skyblockaddons.SkyblockAddons;
44
import codes.biscuit.skyblockaddons.core.Feature;
55
import codes.biscuit.skyblockaddons.gui.buttons.ButtonLocation;
6-
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsSetup;
6+
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsTransformer;
77
import codes.biscuit.skyblockaddons.utils.RomanNumeralParser;
88
import lombok.Getter;
99
import net.minecraft.client.Minecraft;
@@ -128,7 +128,7 @@ public void updatePotionEffects() {
128128
private static IChatComponent getFooter() {
129129
GuiPlayerTabOverlay guiTab = Minecraft.getMinecraft().ingameGUI.getTabList();
130130

131-
if (SkyblockAddonsSetup.isUsingLabyModClient()) { // There are no access transformers in LabyMod.
131+
if (SkyblockAddonsTransformer.isLabymodClient()) { // There are no access transformers in labymod.
132132
try {
133133
if (footer == null) {
134134
footer = guiTab.getClass().getDeclaredField("h");

src/main/java/codes/biscuit/skyblockaddons/tweaker/SkyblockAddonsLoadingPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public String getModContainerClass() {
2020

2121
@Override
2222
public String getSetupClass() {
23-
return SkyblockAddonsSetup.class.getName();
23+
return null;
2424
}
2525

2626
@Override

src/main/java/codes/biscuit/skyblockaddons/tweaker/SkyblockAddonsSetup.java

Lines changed: 0 additions & 98 deletions
This file was deleted.

src/main/java/codes/biscuit/skyblockaddons/tweaker/SkyblockAddonsTransformer.java

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,42 @@
1515
import java.io.File;
1616
import java.io.FileOutputStream;
1717
import java.io.IOException;
18+
import java.lang.reflect.Field;
1819
import java.util.Collection;
20+
import java.util.Map;
1921

22+
@SuppressWarnings("unchecked")
2023
public class SkyblockAddonsTransformer implements IClassTransformer {
21-
private final Logger logger = LogManager.getLogger("SkyblockAddons Transformer");
24+
25+
private static boolean LABYMOD_CLIENT;
26+
private static boolean DEOBFUSCATED;
27+
28+
static {
29+
DEOBFUSCATED = false;
30+
boolean foundLaunchClass = false;
31+
try {
32+
// DEOBFUSCATED = (boolean)Launch.blackboard.get("fml.deobfuscatedEnvironment");
33+
Class<?> launch = Class.forName("net.minecraft.launchwrapper.Launch");
34+
Field blackboardField = launch.getField("blackboard");
35+
Map<String,Object> blackboard = (Map<String, Object>) blackboardField.get(null);
36+
DEOBFUSCATED = (boolean) blackboard.get("fml.deobfuscatedEnvironment");
37+
foundLaunchClass = true;
38+
} catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException ex) {
39+
// If the class doesn't exist, its probably just obfuscated labymod client, so leave it false.
40+
}
41+
42+
LABYMOD_CLIENT = false;
43+
try {
44+
Class.forName("net.labymod.api.LabyModAddon"); // Try to find a labymod class.
45+
LABYMOD_CLIENT = !foundLaunchClass; // If the launch class is also found, they are probably using labymod for forge and not the client.
46+
} catch (ClassNotFoundException ex) {
47+
// They just aren't using labymod.
48+
}
49+
}
50+
51+
private static boolean USING_NOTCH_MAPPINGS = !DEOBFUSCATED;
52+
53+
private Logger logger = LogManager.getLogger("SkyblockAddons Transformer");
2254
private final Multimap<String, ITransformer> transformerMap = ArrayListMultimap.create();
2355

2456
public SkyblockAddonsTransformer() {
@@ -112,4 +144,16 @@ private void outputBytecode(String transformedName, ClassWriter writer) {
112144
e.printStackTrace();
113145
}
114146
}
147+
148+
public static boolean isDeobfuscated() {
149+
return DEOBFUSCATED;
150+
}
151+
152+
public static boolean isLabymodClient() {
153+
return LABYMOD_CLIENT;
154+
}
155+
156+
public static boolean isUsingNotchMappings() {
157+
return USING_NOTCH_MAPPINGS;
158+
}
115159
}

0 commit comments

Comments
 (0)