package mekanism.client; import java.io.File; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ThreadDownloadImageData; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.util.ResourceLocation; import net.minecraft.util.StringUtils; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class CapeBufferDownload extends Thread { public String username; public String staticCapeUrl; public ResourceLocation resourceLocation; public ThreadDownloadImageData capeImage; boolean downloaded = false; public CapeBufferDownload(String name, String url) { username = name; staticCapeUrl = url; setDaemon(true); setName("Cape Download Thread"); } @Override public void run() { try { download(); } catch(Exception e) { e.printStackTrace(); } } private void download() { try { resourceLocation = new ResourceLocation("mekanism/" + StringUtils.stripControlCodes(username)); capeImage = downloadCape(); } catch(Exception e) { e.printStackTrace(); } downloaded = true; } public ThreadDownloadImageData getImage() { return capeImage; } public ResourceLocation getResourceLocation() { return resourceLocation; } public ThreadDownloadImageData downloadCape() { try { File capeFile = new File(resourceLocation.getResourcePath() + ".png"); if(capeFile.exists()) { capeFile.delete(); } TextureManager manager = Minecraft.getMinecraft().getTextureManager(); ThreadDownloadImageData data = new ThreadDownloadImageData(capeFile, staticCapeUrl, null, null); manager.loadTexture(resourceLocation, data); return data; } catch(Exception e) { e.printStackTrace(); } return null; } }