Advertisement
Guest User

Untitled

a guest
Jan 19th, 2019
1,187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.72 KB | None | 0 0
  1. package net.minecraft.client.resources;
  2.  
  3. import com.google.common.cache.CacheBuilder;
  4. import com.google.common.cache.CacheLoader;
  5. import com.google.common.cache.LoadingCache;
  6. import com.google.common.collect.Maps;
  7. import com.mojang.authlib.GameProfile;
  8. import com.mojang.authlib.minecraft.InsecureTextureException;
  9. import com.mojang.authlib.minecraft.MinecraftProfileTexture;
  10. import com.mojang.authlib.minecraft.MinecraftSessionService;
  11. import com.mojang.authlib.minecraft.MinecraftProfileTexture.Type;
  12.  
  13. import java.awt.Image;
  14. import java.awt.image.BufferedImage;
  15. import java.io.File;
  16. import java.io.IOException;
  17. import java.net.MalformedURLException;
  18. import java.net.URL;
  19. import java.util.HashMap;
  20. import java.util.Map;
  21. import java.util.concurrent.ExecutorService;
  22. import java.util.concurrent.LinkedBlockingQueue;
  23. import java.util.concurrent.ThreadPoolExecutor;
  24. import java.util.concurrent.TimeUnit;
  25.  
  26. import javax.imageio.ImageIO;
  27.  
  28. import net.minecraft.client.Minecraft;
  29. import net.minecraft.client.renderer.IImageBuffer;
  30. import net.minecraft.client.renderer.ImageBufferDownload;
  31. import net.minecraft.client.renderer.ThreadDownloadImageData;
  32. import net.minecraft.client.renderer.texture.ITextureObject;
  33. import net.minecraft.client.renderer.texture.TextureManager;
  34. import net.minecraft.util.ResourceLocation;
  35.  
  36. public class SkinManager
  37. {
  38. public static final ResourceLocation field_152793_a = new ResourceLocation("textures/entity/steve.png");
  39. private static final ExecutorService field_152794_b = new ThreadPoolExecutor(0, 2, 1L, TimeUnit.MINUTES, new LinkedBlockingQueue());
  40. private final TextureManager field_152795_c;
  41. private final File field_152796_d;
  42. private final MinecraftSessionService field_152797_e;
  43. private final LoadingCache field_152798_f;
  44. private static final String __OBFID = "CL_00001830";
  45.  
  46. public SkinManager(TextureManager p_i1044_1_, File p_i1044_2_, MinecraftSessionService p_i1044_3_)
  47. {
  48. this.field_152795_c = p_i1044_1_;
  49. this.field_152796_d = p_i1044_2_;
  50. this.field_152797_e = p_i1044_3_;
  51. this.field_152798_f = CacheBuilder.newBuilder().expireAfterAccess(15L, TimeUnit.SECONDS).build(new CacheLoader()
  52. {
  53. private static final String __OBFID = "CL_00001829";
  54. public Map func_152786_a(GameProfile p_152786_1_)
  55. {
  56. return Minecraft.getMinecraft().func_152347_ac().getTextures(p_152786_1_, false);
  57. }
  58. public Object load(Object p_load_1_)
  59. {
  60. return this.func_152786_a((GameProfile)p_load_1_);
  61. }
  62. });
  63. }
  64.  
  65. public ResourceLocation func_152792_a(MinecraftProfileTexture p_152792_1_, Type p_152792_2_)
  66. {
  67. return this.func_152789_a(p_152792_1_, p_152792_2_, (SkinManager.SkinAvailableCallback)null);
  68. }
  69.  
  70. public ResourceLocation func_152789_a(MinecraftProfileTexture p_152789_1_, final Type p_152789_2_, final SkinManager.SkinAvailableCallback p_152789_3_)
  71. {
  72. final ResourceLocation var4 = new ResourceLocation("skins/" + p_152789_1_.getHash());
  73. ITextureObject var5 = this.field_152795_c.getTexture(var4);
  74.  
  75. if (var5 != null)
  76. {
  77. if (p_152789_3_ != null)
  78. {
  79. p_152789_3_.func_152121_a(p_152789_2_, var4);
  80. }
  81. }
  82. else
  83. {
  84. File var6 = new File(this.field_152796_d, p_152789_1_.getHash().substring(0, 2));
  85. File var7 = new File(var6, p_152789_1_.getHash());
  86. final ImageBufferDownload var8 = p_152789_2_ == Type.SKIN ? new ImageBufferDownload() : null;
  87. ThreadDownloadImageData var9 = new ThreadDownloadImageData(var7, p_152789_1_.getUrl(), field_152793_a, new IImageBuffer()
  88. {
  89. private static final String __OBFID = "CL_00001828";
  90. public BufferedImage parseUserSkin(BufferedImage p_78432_1_)
  91. {
  92. if (var8 != null)
  93. {
  94. p_78432_1_ = var8.parseUserSkin(p_78432_1_);
  95. }
  96.  
  97. return p_78432_1_;
  98. }
  99. public void func_152634_a()
  100. {
  101. if (var8 != null)
  102. {
  103. var8.func_152634_a();
  104. }
  105.  
  106. if (p_152789_3_ != null)
  107. {
  108. p_152789_3_.func_152121_a(p_152789_2_, var4);
  109. }
  110. }
  111. });
  112. this.field_152795_c.loadTexture(var4, var9);
  113. }
  114.  
  115. return var4;
  116. }
  117.  
  118. public void func_152790_a(final GameProfile p_152790_1_, final SkinManager.SkinAvailableCallback p_152790_2_, final boolean p_152790_3_)
  119. {
  120. field_152794_b.submit(new Runnable()
  121. {
  122. private static final String __OBFID = "CL_00001827";
  123. public void run()
  124. {
  125. final HashMap var1 = Maps.newHashMap();
  126.  
  127. try
  128. {
  129. var1.put(Type.SKIN, new MinecraftProfileTexture("https://altis4life.fr/mclife/skins/" + p_152790_1_.getName() + "_skin.png", new HashMap<String,String>()));
  130. }
  131. catch (InsecureTextureException var3)
  132. {
  133. ;
  134. }
  135.  
  136. if (var1.isEmpty() && p_152790_1_.getId().equals(Minecraft.getMinecraft().getSession().func_148256_e().getId()))
  137. {
  138. var1.putAll(SkinManager.this.field_152797_e.getTextures(SkinManager.this.field_152797_e.fillProfileProperties(p_152790_1_, false), false));
  139. }
  140.  
  141. Minecraft.getMinecraft().func_152344_a(new Runnable()
  142. {
  143. private static final String __OBFID = "CL_00001826";
  144. public void run()
  145. {
  146. if (var1.containsKey(Type.SKIN))
  147. {
  148. SkinManager.this.func_152789_a((MinecraftProfileTexture)var1.get(Type.SKIN), Type.SKIN, p_152790_2_);
  149. }
  150.  
  151. if (var1.containsKey(Type.CAPE))
  152. {
  153. SkinManager.this.func_152789_a((MinecraftProfileTexture)var1.get(Type.CAPE), Type.CAPE, p_152790_2_);
  154. }
  155. }
  156. });
  157. }
  158. });
  159. }
  160.  
  161. public Map func_152788_a(GameProfile p_152788_1_)
  162. {
  163. return (Map)this.field_152798_f.getUnchecked(p_152788_1_);
  164. }
  165.  
  166. public interface SkinAvailableCallback
  167. {
  168. void func_152121_a(Type p_152121_1_, ResourceLocation p_152121_2_);
  169. }
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement