From eac9edb13af6d352230c6360df9ca4a1cdb7b0d8 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Thu, 3 Aug 2023 16:29:13 -0400 Subject: [PATCH 1/2] Fix Forge overriding ResourceKey.equals() with a slower implementation --- .../ResourceKeyMixin.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/resource_key_equality/ResourceKeyMixin.java diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/resource_key_equality/ResourceKeyMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/resource_key_equality/ResourceKeyMixin.java new file mode 100644 index 00000000..4fdf86b7 --- /dev/null +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/resource_key_equality/ResourceKeyMixin.java @@ -0,0 +1,18 @@ +package org.embeddedt.modernfix.forge.mixin.perf.resource_key_equality; + +import net.minecraft.resources.ResourceKey; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; + +@Mixin(ResourceKey.class) +public class ResourceKeyMixin { + /** + * @author embeddedt + * @reason ResourceKeys are interned, so there is no reason to waste time doing any deeper comparison. This override + * is patched in by Forge, it doesn't exist in vanilla + */ + @Overwrite(remap = false) + public boolean equals(Object o) { + return o == this; + } +} From 5853f9b034971a7a01276b24ee82e9ecd2c50b35 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Thu, 3 Aug 2023 17:00:30 -0400 Subject: [PATCH 2/2] Fix NPE on Forge error screen --- .../common/mixin/feature/measure_time/MinecraftMixin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/measure_time/MinecraftMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/measure_time/MinecraftMixin.java index 6e7e5df7..f6261313 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/measure_time/MinecraftMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/measure_time/MinecraftMixin.java @@ -40,7 +40,7 @@ public class MinecraftMixin { @Inject(method = "tick", at = @At("HEAD")) private void onClientTick(CallbackInfo ci) { - if(this.overlay == null) { + if(this.overlay == null && ModernFixClient.INSTANCE != null) { ModernFixClient.INSTANCE.onGameLaunchFinish(); } }