Skip to content

Commit 6c41a9a

Browse files
committed
Merge branch 'development' of https://github.com/BiscuitDevelopment/SkyblockAddons into rewrite-asm
2 parents dbc3e0f + 1f31ab2 commit 6c41a9a

11 files changed

Lines changed: 66 additions & 62 deletions

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<!--suppress HtmlDeprecatedAttribute -->
12
<h1 align="center">SkyblockAddons</h1>
23

34
<p align="center">

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import codes.biscuit.skyblockaddons.features.backpacks.Backpack;
77
import codes.biscuit.skyblockaddons.features.backpacks.BackpackColor;
88
import codes.biscuit.skyblockaddons.features.craftingpatterns.CraftingPattern;
9-
import codes.biscuit.skyblockaddons.tweaker.SkyblockAddonsSetup;
9+
import codes.biscuit.skyblockaddons.tweaker.PreTransformationChecks;
1010
import codes.biscuit.skyblockaddons.utils.EnumUtils;
1111
import codes.biscuit.skyblockaddons.utils.ColorCode;
1212
import codes.biscuit.skyblockaddons.utils.objects.FloatPairString;
@@ -294,7 +294,7 @@ public static void drawSlot(GuiContainer guiContainer, Slot slot) {
294294
private static Method drawGradientRect = null;
295295

296296
private static void drawRightGradientRect(GuiContainer guiContainer, int left, int top, int right, int bottom, int startColor, int endColor) {
297-
if (SkyblockAddonsSetup.isUsingLabyModClient()) { // There are no access transformers in labymod.
297+
if (PreTransformationChecks.isLabymodClient()) { // There are no access transformers in labymod.
298298
try {
299299
if (drawGradientRect == null) {
300300
drawGradientRect = guiContainer.getClass().getSuperclass().getSuperclass().getDeclaredMethod("a", int.class, int.class, int.class, int.class, int.class, int.class);
@@ -364,7 +364,7 @@ public static void handleMouseClick(Slot slotIn, int slotId, int clickedButton,
364364
private static Field zLevel = null;
365365

366366
private static void setZLevel(Gui gui, int zLevelToSet) {
367-
if (SkyblockAddonsSetup.isUsingLabyModClient()) { // There are no access transformers in labymod.
367+
if (PreTransformationChecks.isLabymodClient()) { // There are no access transformers in labymod.
368368
try {
369369
if (zLevel == null) {
370370
zLevel = gui.getClass().getDeclaredField("e");
@@ -384,7 +384,7 @@ private static void setZLevel(Gui gui, int zLevelToSet) {
384384
private static Method drawHoveringText = null;
385385

386386
private static void drawHoveringText(GuiContainer guiContainer, List<String> text, int x, int y) {
387-
if (SkyblockAddonsSetup.isUsingLabyModClient()) { // There are no access transformers in labymod.
387+
if (PreTransformationChecks.isLabymodClient()) { // There are no access transformers in labymod.
388388
try {
389389
if (drawHoveringText == null) {
390390
drawHoveringText = guiContainer.getClass().getSuperclass().getDeclaredMethod("a",

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.SkyblockAddonsTransformer;
4+
import codes.biscuit.skyblockaddons.tweaker.PreTransformationChecks;
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 && SkyblockAddonsTransformer.isDeobfuscated() || (player != null && player.getName().equals("Biscut"))) {
14+
if (main != null && PreTransformationChecks.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.SkyblockAddonsTransformer;
4+
import codes.biscuit.skyblockaddons.tweaker.PreTransformationChecks;
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 (SkyblockAddonsTransformer.isLabymodClient()) { // There are no access transformers in labymod.
22+
if (PreTransformationChecks.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.SkyblockAddonsTransformer;
4+
import codes.biscuit.skyblockaddons.tweaker.PreTransformationChecks;
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 (SkyblockAddonsTransformer.isLabymodClient()) { // There are no access transformers in labymod.
35+
if (PreTransformationChecks.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.SkyblockAddonsTransformer;
3+
import codes.biscuit.skyblockaddons.tweaker.PreTransformationChecks;
44

55
public enum TransformerClass {
66

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

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

9595
public String getTransformerName() {
96-
if (SkyblockAddonsTransformer.isLabymodClient()) return notchClass18;
96+
if (PreTransformationChecks.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.SkyblockAddonsTransformer;
3+
import codes.biscuit.skyblockaddons.tweaker.PreTransformationChecks;
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 (SkyblockAddonsTransformer.isDeobfuscated()) {
55+
if (PreTransformationChecks.isDeobfuscated()) {
5656
name = deobfName;
5757
} else {
58-
if (SkyblockAddonsTransformer.isUsingNotchMappings()) {
58+
if (PreTransformationChecks.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.SkyblockAddonsTransformer;
3+
import codes.biscuit.skyblockaddons.tweaker.PreTransformationChecks;
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 (SkyblockAddonsTransformer.isDeobfuscated()) {
161+
if (PreTransformationChecks.isDeobfuscated()) {
162162
name = deobfMethod;
163163
description = seargeDescription;
164164
} else {
165-
if (SkyblockAddonsTransformer.isUsingNotchMappings()) {
165+
if (PreTransformationChecks.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.SkyblockAddonsTransformer;
6+
import codes.biscuit.skyblockaddons.tweaker.PreTransformationChecks;
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 (SkyblockAddonsTransformer.isLabymodClient()) { // There are no access transformers in labymod.
131+
if (PreTransformationChecks.isLabymodClient()) { // There are no access transformers in labymod.
132132
try {
133133
if (footer == null) {
134134
footer = guiTab.getClass().getDeclaredField("h");
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package codes.biscuit.skyblockaddons.tweaker;
2+
3+
import lombok.Getter;
4+
5+
import java.lang.reflect.Field;
6+
import java.util.Map;
7+
8+
public class PreTransformationChecks {
9+
@Getter
10+
private static boolean labymodClient;
11+
@Getter
12+
private static boolean deobfuscated;
13+
@Getter
14+
private static boolean usingNotchMappings;
15+
16+
@SuppressWarnings("unchecked")
17+
static void runChecks() {
18+
deobfuscated = false;
19+
labymodClient = false;
20+
boolean foundLaunchClass = false;
21+
22+
try {
23+
Class<?> launch = Class.forName("net.minecraft.launchwrapper.Launch");
24+
Field blackboardField = launch.getField("blackboard");
25+
Map<String,Object> blackboard = (Map<String, Object>) blackboardField.get(null);
26+
deobfuscated = (boolean) blackboard.get("fml.deobfuscatedEnvironment");
27+
foundLaunchClass = true;
28+
} catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException ex) {
29+
// If the class doesn't exist, its probably just obfuscated labymod client, so leave it false.
30+
}
31+
32+
try {
33+
Class.forName("net.labymod.api.LabyModAddon"); // Try to find a labymod class.
34+
PreTransformationChecks.labymodClient = !foundLaunchClass; // If the launch class is also found, they are probably using labymod for forge and not the client.
35+
} catch (ClassNotFoundException ex) {
36+
// They just aren't using LabyMod.
37+
}
38+
39+
usingNotchMappings = !deobfuscated;
40+
}
41+
}

0 commit comments

Comments
 (0)