@SideOnly(Side.CLIENT)
public static BufferedImage getPlayerSkinAsBufferedImage(AbstractClientPlayer player){
Minecraft mc = Minecraft.getMinecraft();
String playerName = player.getCommandSenderName();
Map<Type, MinecraftProfileTexture> map = mc.func_152342_ad().func_152788_a(player.getGameProfile());
BufferedImage image = null;
InputStream stream = null;
ITextureObject skin;
try{
if(map.containsKey(MinecraftProfileTexture.Type.SKIN)){
ResourceLocation loc = mc.func_152342_ad().func_152792_a(map.get(Type.SKIN), Type.SKIN);
skin = mc.getTextureManager().getTexture(loc);
}else{
skin = mc.getTextureManager().getTexture(player.getLocationSkin());
}
if(skin instanceof ThreadDownloadImageData){
ThreadDownloadImageData imageData = (ThreadDownloadImageData)skin;
image = ObfuscationReflectionHelper.getPrivateValue(ThreadDownloadImageData.class, imageData, "field_110560_d", "bufferedImage");
System.out.println("1");
}else if(skin instanceof DynamicTexture){
DynamicTexture imageData = (DynamicTexture)skin;
int width = ObfuscationReflectionHelper.getPrivateValue(DynamicTexture.class, imageData, "field_94233_j", "width");
int height = ObfuscationReflectionHelper.getPrivateValue(DynamicTexture.class, imageData, "field_94234_k", "height");
image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
image.setRGB(0, 0, width, height, imageData.getTextureData(), 0, width);
System.out.println("2");
}else{
stream = mc.getResourceManager().getResource(AbstractClientPlayer.locationStevePng).getInputStream();
image = ImageIO.read(stream);
System.out.println("3");
}
}catch(IOException e){
e.printStackTrace();
}finally{
IOUtils.closeQuietly(stream);
}
return image;
}
I took the skin and made me change. As it is now loaded back?