74 lines
1.8 KiB
Java
74 lines
1.8 KiB
Java
package mekanism.client;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.InputStreamReader;
|
|
import java.lang.reflect.Method;
|
|
import java.net.URL;
|
|
|
|
import mekanism.common.ObfuscatedNames;
|
|
import mekanism.common.util.MekanismUtils;
|
|
import net.minecraft.client.entity.AbstractClientPlayer;
|
|
import net.minecraft.client.renderer.IImageBuffer;
|
|
import net.minecraft.client.renderer.ThreadDownloadImageData;
|
|
import net.minecraft.util.ResourceLocation;
|
|
import net.minecraft.util.StringUtils;
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.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 Downlaod Thread");
|
|
}
|
|
|
|
@Override
|
|
public void run()
|
|
{
|
|
try {
|
|
download();
|
|
} catch(Exception e) {}
|
|
}
|
|
|
|
private void download()
|
|
{
|
|
try {
|
|
resourceLocation = new ResourceLocation("mekanism/" + StringUtils.stripControlCodes(username));
|
|
|
|
Method method = MekanismUtils.getPrivateMethod(AbstractClientPlayer.class, ObfuscatedNames.AbstractClientPlayer_getDownloadImage, ResourceLocation.class, String.class, ResourceLocation.class, IImageBuffer.class);
|
|
Object obj = method.invoke(null, resourceLocation, staticCapeUrl, null, null);
|
|
|
|
if(obj instanceof ThreadDownloadImageData)
|
|
{
|
|
capeImage = (ThreadDownloadImageData)obj;
|
|
}
|
|
} catch(Exception e) {}
|
|
|
|
downloaded = true;
|
|
}
|
|
|
|
public ThreadDownloadImageData getImage()
|
|
{
|
|
return capeImage;
|
|
}
|
|
|
|
public ResourceLocation getResourceLocation()
|
|
{
|
|
return resourceLocation;
|
|
}
|
|
}
|