From feaf363fd89b7802be419aa836221b70317853d8 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Mon, 26 Feb 2024 16:21:41 -0500 Subject: [PATCH] Add oversimplified version of No Chat Reports This has no player-friendly UI whatsoever, doesn't work on enforce-secure-profile servers, and has had very limited testing. In exchange, it costs virtually nothing to maintain. --- .../ChatTrustLevelMixin.java | 17 ++++++++++++++ .../ProfileKeyPairManagerMixin.java | 23 +++++++++++++++++++ .../core/config/ModernFixEarlyConfig.java | 1 + 3 files changed, 41 insertions(+) create mode 100644 common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/remove_chat_signing/ChatTrustLevelMixin.java create mode 100644 common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/remove_chat_signing/ProfileKeyPairManagerMixin.java diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/remove_chat_signing/ChatTrustLevelMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/remove_chat_signing/ChatTrustLevelMixin.java new file mode 100644 index 00000000..30342885 --- /dev/null +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/remove_chat_signing/ChatTrustLevelMixin.java @@ -0,0 +1,17 @@ +package org.embeddedt.modernfix.common.mixin.feature.remove_chat_signing; + +import net.minecraft.client.multiplayer.chat.ChatTrustLevel; +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.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(ChatTrustLevel.class) +@ClientOnlyMixin +public class ChatTrustLevelMixin { + @Inject(method = "evaluate", at = @At("HEAD"), cancellable = true) + private static void alwaysShowSecure(CallbackInfoReturnable cir) { + cir.setReturnValue(ChatTrustLevel.SECURE); + } +} diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/remove_chat_signing/ProfileKeyPairManagerMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/remove_chat_signing/ProfileKeyPairManagerMixin.java new file mode 100644 index 00000000..5ee27be4 --- /dev/null +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/remove_chat_signing/ProfileKeyPairManagerMixin.java @@ -0,0 +1,23 @@ +package org.embeddedt.modernfix.common.mixin.feature.remove_chat_signing; + +import net.minecraft.client.multiplayer.ProfileKeyPairManager; +import org.embeddedt.modernfix.annotation.ClientOnlyMixin; +import org.embeddedt.modernfix.core.config.Option; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; + +import java.util.Optional; +import java.util.concurrent.CompletableFuture; + +@Mixin(ProfileKeyPairManager.class) +@ClientOnlyMixin +public class ProfileKeyPairManagerMixin { + /** + * @author embeddedt + * @reason never use the key pair + */ + @Overwrite + private CompletableFuture> readOrFetchProfileKeyPair(Optional optional) { + return CompletableFuture.completedFuture(Optional.empty()); + } +} 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 7a0beb8b..864a8893 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 @@ -173,6 +173,7 @@ public class ModernFixEarlyConfig { .put("mixin.feature.integrated_server_watchdog", true) .put("mixin.perf.faster_item_rendering", false) .put("mixin.feature.spam_thread_dump", false) + .put("mixin.feature.remove_chat_signing", false) .put("mixin.feature.snapshot_easter_egg", true) .put("mixin.feature.warn_missing_perf_mods", true) .put("mixin.feature.spark_profile_launch", false)