package com.r3944realms.leashedplayer.mixin; import net.minecraft.client.Minecraft; import net.minecraft.client.Options; import net.minecraft.client.player.LocalPlayer; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import javax.annotation.Nullable; @Mixin(Minecraft.class) public class MixinMinecraft { @Shadow @Nullable public LocalPlayer player; @Shadow @Final public Options options; @Inject(method = "shouldEntityAppearGlowing", at = @At("HEAD"), cancellable = true) private void shouldEntityAppearGlowing(Entity entity, CallbackInfoReturnable cir) { cir.setReturnValue(entity.isCurrentlyGlowing() || player != null && this.player.isSpectator() && options.keySpectatorOutlines.isDown() && entity.getType() == EntityType.PLAYER); } }