aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/mixin/PlayerSkinProviderMixin.java
blob: 978835d264aacf0c2ca7961d9626a64c674909cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package de.hysky.skyblocker.mixin;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;

import com.llamalad7.mixinextras.injector.ModifyReturnValue;
import com.llamalad7.mixinextras.sugar.Local;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.minecraft.MinecraftSessionService;

import de.hysky.skyblocker.utils.Utils;
import net.minecraft.client.texture.PlayerSkinProvider.Textures;

@Mixin(targets = "net.minecraft.client.texture.PlayerSkinProvider$1")
public class PlayerSkinProviderMixin {

	@ModifyReturnValue(method = "method_52867", at = @At("RETURN"))
	private static Textures skyblocker$fixTexturesThatHadAnInvalidSignature(Textures texture, @Local MinecraftSessionService sessionService, @Local GameProfile profile) {
		if (Utils.isOnHypixel() && texture == Textures.MISSING) {
			try {
				return Textures.fromMap(sessionService.getTextures(profile, false), false);
			} catch (Throwable t) {
				return Textures.MISSING;
			}
		}

		return texture;
	}
}