diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/remove_telemetry/ClientTelemetryManagerMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/remove_telemetry/ClientTelemetryManagerMixin.java new file mode 100644 index 00000000..a890c749 --- /dev/null +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/remove_telemetry/ClientTelemetryManagerMixin.java @@ -0,0 +1,22 @@ +package org.embeddedt.modernfix.common.mixin.feature.remove_telemetry; + +import net.minecraft.client.telemetry.ClientTelemetryManager; +import net.minecraft.client.telemetry.TelemetryEventSender; +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(value = ClientTelemetryManager.class, priority = 1500) +@ClientOnlyMixin +public class ClientTelemetryManagerMixin { + /** + * @author embeddedt + * @reason telemetry is useless noise for modded instances anyway, and introduces privacy concerns + */ + @Inject(method = "createEventSender", at = @At("HEAD"), cancellable = true) + private void disableTelemetrySender(CallbackInfoReturnable cir) { + cir.setReturnValue(TelemetryEventSender.DISABLED); + } +} diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/remove_telemetry/MinecraftMixin_Telemetry.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/remove_telemetry/MinecraftMixin_Telemetry.java new file mode 100644 index 00000000..e3fa63b8 --- /dev/null +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/remove_telemetry/MinecraftMixin_Telemetry.java @@ -0,0 +1,17 @@ +package org.embeddedt.modernfix.common.mixin.feature.remove_telemetry; + +import net.minecraft.client.Minecraft; +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(value = Minecraft.class, priority = 1100) +@ClientOnlyMixin +public class MinecraftMixin_Telemetry { + @Inject(method = "allowsTelemetry", at = @At("HEAD"), cancellable = true) + private void markTelemetryNotAllowed(CallbackInfoReturnable cir) { + cir.setReturnValue(false); + } +}