From 44322a7d07fa77da1c6e18b51b8c1bc60c67bac8 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Fri, 1 Aug 2025 18:40:40 -0400 Subject: [PATCH] Tweak narrator mixin --- .../common/mixin/devenv/NarratorMixin.java | 17 ----------------- .../GameNarratorMixin.java | 9 +++++---- .../core/config/ModernFixEarlyConfig.java | 1 - 3 files changed, 5 insertions(+), 22 deletions(-) delete mode 100644 common/src/main/java/org/embeddedt/modernfix/common/mixin/devenv/NarratorMixin.java diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/devenv/NarratorMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/devenv/NarratorMixin.java deleted file mode 100644 index c9a7a74a..00000000 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/devenv/NarratorMixin.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.embeddedt.modernfix.common.mixin.devenv; - -import com.mojang.text2speech.Narrator; -import net.minecraft.client.GameNarrator; -import org.embeddedt.modernfix.annotation.ClientOnlyMixin; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(GameNarrator.class) -@ClientOnlyMixin -public class NarratorMixin { - @Redirect(method = "", at = @At(value = "INVOKE", target = "Lcom/mojang/text2speech/Narrator;getNarrator()Lcom/mojang/text2speech/Narrator;", remap = false)) - private Narrator useDummyNarrator() { - return Narrator.EMPTY; - } -} diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/suppress_narrator_stacktrace/GameNarratorMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/suppress_narrator_stacktrace/GameNarratorMixin.java index 169ac08a..ca1979cb 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/suppress_narrator_stacktrace/GameNarratorMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/suppress_narrator_stacktrace/GameNarratorMixin.java @@ -1,5 +1,7 @@ package org.embeddedt.modernfix.common.mixin.feature.suppress_narrator_stacktrace; +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.mojang.text2speech.Narrator; import com.mojang.text2speech.NarratorLinux; import com.mojang.text2speech.OperatingSystem; @@ -8,17 +10,16 @@ import org.embeddedt.modernfix.ModernFix; import org.embeddedt.modernfix.annotation.ClientOnlyMixin; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; @ClientOnlyMixin @Mixin(GameNarrator.class) public class GameNarratorMixin { - @Redirect(method = "", at = @At(value = "INVOKE", target = "Lcom/mojang/text2speech/Narrator;getNarrator()Lcom/mojang/text2speech/Narrator;")) - private Narrator suppressStacktracePrinting() { + @WrapOperation(method = "", at = @At(value = "INVOKE", target = "Lcom/mojang/text2speech/Narrator;getNarrator()Lcom/mojang/text2speech/Narrator;")) + private Narrator suppressStacktracePrinting(Operation original) { try { return switch (OperatingSystem.get()) { case LINUX -> new NarratorLinux(); - default -> Narrator.getNarrator(); + default -> original.call(); }; } catch (Narrator.InitializeException e) { ModernFix.LOGGER.warn("Failed to initialize Linux Narrator. Make sure you have libflite installed!"); diff --git a/common/src/main/java/org/embeddedt/modernfix/core/config/ModernFixEarlyConfig.java b/common/src/main/java/org/embeddedt/modernfix/core/config/ModernFixEarlyConfig.java index 9242109e..c120dcd7 100644 --- a/common/src/main/java/org/embeddedt/modernfix/core/config/ModernFixEarlyConfig.java +++ b/common/src/main/java/org/embeddedt/modernfix/core/config/ModernFixEarlyConfig.java @@ -187,7 +187,6 @@ public class ModernFixEarlyConfig { .put("mixin.feature.log_stdout_in_log_files", true) .put("mixin.devenv", isDevEnv) .put("mixin.perf.remove_spawn_chunks", isDevEnv) - .put("mixin.feature.suppress_narrator_stacktrace", !isDevEnv) // Not compatible with mixin.devenv .putConditionally(() -> !isFabric, "mixin.bugfix.fix_config_crashes", true) .putConditionally(() -> !isFabric, "mixin.bugfix.forge_at_inject_error", true) .putConditionally(() -> !isFabric, "mixin.feature.registry_event_progress", false)