diff --git a/src/main/java/com/replaymod/render/mixin/Mixin_HideNameTags_PlayerEntity.java b/src/main/java/com/replaymod/render/mixin/Mixin_HideNameTags_PlayerEntity.java new file mode 100644 index 00000000..3e5a2187 --- /dev/null +++ b/src/main/java/com/replaymod/render/mixin/Mixin_HideNameTags_PlayerEntity.java @@ -0,0 +1,9 @@ +package com.replaymod.render.mixin; + +import net.minecraft.client.render.entity.PlayerEntityRenderer; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(PlayerEntityRenderer.class) +public abstract class Mixin_HideNameTags_PlayerEntity { + // 1.21.9 and above +} diff --git a/src/main/resources/mixins.render.replaymod.json b/src/main/resources/mixins.render.replaymod.json index 5e1fb886..b53b2208 100644 --- a/src/main/resources/mixins.render.replaymod.json +++ b/src/main/resources/mixins.render.replaymod.json @@ -23,6 +23,7 @@ "Mixin_ForceChunkLoading", "Mixin_HideNameTags", "Mixin_HideNameTags_LivingEntity", + "Mixin_HideNameTags_PlayerEntity", "Mixin_Omnidirectional_Camera", "Mixin_Omnidirectional_Rotation", "Mixin_PreserveDepthDuringGuiRendering", diff --git a/versions/1.21.10/src/main/java/com/replaymod/render/mixin/Mixin_HideNameTags_PlayerEntity.java b/versions/1.21.10/src/main/java/com/replaymod/render/mixin/Mixin_HideNameTags_PlayerEntity.java new file mode 100644 index 00000000..58be4ae7 --- /dev/null +++ b/versions/1.21.10/src/main/java/com/replaymod/render/mixin/Mixin_HideNameTags_PlayerEntity.java @@ -0,0 +1,20 @@ +package com.replaymod.render.mixin; + +import com.replaymod.core.versions.MCVer; +import com.replaymod.render.hooks.EntityRendererHandler; +import net.minecraft.client.render.entity.PlayerEntityRenderer; +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.CallbackInfo; + +@Mixin(PlayerEntityRenderer.class) +public abstract class Mixin_HideNameTags_PlayerEntity { + @Inject(method = "renderLabelIfPresent(Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At("HEAD"), cancellable = true) + private void replayModRender_areAllNamesHidden(CallbackInfo ci) { + EntityRendererHandler handler = ((EntityRendererHandler.IEntityRenderer) MCVer.getMinecraft().gameRenderer).replayModRender_getHandler(); + if (handler != null && !handler.getSettings().isRenderNameTags()) { + ci.cancel(); + } + } +}