From 16183329567df001367dfba964f0e6c16782b22f Mon Sep 17 00:00:00 2001 From: Sam Kirby <23245543+sam-kirby@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:17:13 +0100 Subject: [PATCH] bugfix(mac): don't hang the game during launch --- gradle.properties | 2 +- .../core/SevPatchesTransformer.java | 6 +++--- .../sevpatches/core/patches/PatchMac.java | 21 +++++++++++++++++++ .../core/patches/PatchMacMouse.java | 12 +---------- .../core/patches/PatchMacMouseFBP.java | 2 +- src/main/resources/mcmod.info | 2 +- 6 files changed, 28 insertions(+), 17 deletions(-) create mode 100644 src/main/java/tv/darkosto/sevpatches/core/patches/PatchMac.java diff --git a/gradle.properties b/gradle.properties index ff518fc..71d03f3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version_base = 1.14.0 +version_base = 1.14.1 # Sets default memory used for gradle commands. Can be overridden by user or command line properties. # This is required to provide enough memory for the Minecraft decompilation process. diff --git a/src/main/java/tv/darkosto/sevpatches/core/SevPatchesTransformer.java b/src/main/java/tv/darkosto/sevpatches/core/SevPatchesTransformer.java index 3983671..b45c5f2 100644 --- a/src/main/java/tv/darkosto/sevpatches/core/SevPatchesTransformer.java +++ b/src/main/java/tv/darkosto/sevpatches/core/SevPatchesTransformer.java @@ -11,6 +11,9 @@ public byte[] transform(String name, String transformedName, byte[] basicClass) return new PatchMacMouse(basicClass).apply(); case "net.minecraft.world.WorldEntitySpawner": return new PatchMinecraftSpawnChunkSpawning(basicClass).apply(); + case "com.TominoCZ.FBP.gui.FBPGuiBlacklist": + case "com.TominoCZ.FBP.handler.FBPKeyInputHandler": + return new PatchMacMouseFBP(basicClass).apply(); case "com.tmtravlr.jaff.JAFFMod": return new PatchJaffFishLiveInWater(basicClass).apply(); case "com.tmtravlr.jaff.JAFFEventHandler": @@ -45,9 +48,6 @@ public byte[] transform(String name, String transformedName, byte[] basicClass) case "net.darkhax.infoaccessories.info.InfoType": return new PatchInfoAccCompass(basicClass).apply(); default: - if (transformedName.contains("com.TominoCZ.FBP")) { - return new PatchMacMouseFBP(basicClass).apply(); - } return basicClass; } } diff --git a/src/main/java/tv/darkosto/sevpatches/core/patches/PatchMac.java b/src/main/java/tv/darkosto/sevpatches/core/patches/PatchMac.java new file mode 100644 index 0000000..d8ca306 --- /dev/null +++ b/src/main/java/tv/darkosto/sevpatches/core/patches/PatchMac.java @@ -0,0 +1,21 @@ +package tv.darkosto.sevpatches.core.patches; + +import java.util.Locale; + +import static tv.darkosto.sevpatches.core.SevPatchesLoadingPlugin.LOGGER; + +public abstract class PatchMac extends Patch { + public PatchMac(byte[] inputClass) { + super(inputClass); + } + + @Override + public byte[] apply() { + String osName = System.getProperty("os.name").toLowerCase(Locale.ROOT); + if (!osName.contains("mac")) { + LOGGER.info("Not macOS, skipping {}", this.getClass().getName()); + return inputClassBytes; + } + return super.apply(); + } +} diff --git a/src/main/java/tv/darkosto/sevpatches/core/patches/PatchMacMouse.java b/src/main/java/tv/darkosto/sevpatches/core/patches/PatchMacMouse.java index 33e7730..07fc042 100644 --- a/src/main/java/tv/darkosto/sevpatches/core/patches/PatchMacMouse.java +++ b/src/main/java/tv/darkosto/sevpatches/core/patches/PatchMacMouse.java @@ -8,7 +8,7 @@ import static tv.darkosto.sevpatches.core.SevPatchesLoadingPlugin.*; -public class PatchMacMouse extends Patch { +public class PatchMacMouse extends PatchMac { public PatchMacMouse(byte[] inputClass) { super(inputClass); } @@ -24,16 +24,6 @@ protected boolean patch() { return true; } - @Override - public byte[] apply() { - String osName = System.getProperty("os.name").toLowerCase(Locale.ROOT); - if (!osName.contains("mac")) { - LOGGER.info("Skipping mouse patch; os is not macOS"); - return inputClassBytes; - } - return super.apply(); - } - private InsnList generateInsns(boolean checkGrab) { LabelNode label = new LabelNode(); InsnList insns = new InsnList(); diff --git a/src/main/java/tv/darkosto/sevpatches/core/patches/PatchMacMouseFBP.java b/src/main/java/tv/darkosto/sevpatches/core/patches/PatchMacMouseFBP.java index 3211bd2..ad0690c 100644 --- a/src/main/java/tv/darkosto/sevpatches/core/patches/PatchMacMouseFBP.java +++ b/src/main/java/tv/darkosto/sevpatches/core/patches/PatchMacMouseFBP.java @@ -10,7 +10,7 @@ import java.util.stream.Stream; import java.util.stream.StreamSupport; -public class PatchMacMouseFBP extends PatchMacMouse { +public class PatchMacMouseFBP extends PatchMac { public PatchMacMouseFBP(byte[] inputClass) { super(inputClass); } diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index b84036c..2b3a110 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "sevpatches", "name": "SevPatches", "description": "Consolidated patches for mods that are EOL used in SevTech: Ages", - "version": "1.14.0", + "version": "1.14.1", "mcversion": "1.12.2", "url": "https://www.curseforge.com/minecraft/mc-mods/sevpatches", "updateUrl": "",