package net.minecraft.network;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.net.URL;
import java.net.URLEncoder;
import net.minecraft.util.CryptManager;
class ThreadLoginVerifier extends Thread
{
/** The login handler that spawned this thread. */
final NetLoginHandler loginHandler;
ThreadLoginVerifier(NetLoginHandler par1NetLoginHandler)
{
this.loginHandler = par1NetLoginHandler;
}
public void run()
{
try
{
String var1 = (new BigInteger(CryptManager.getServerIdHash(NetLoginHandler.getServerId(this.loginHandler), NetLoginHandler.getLoginMinecraftServer(this.loginHandler).getKeyPair().getPublic(), NetLoginHandler.getSharedKey(this.loginHandler)))).toString(16);
URL var2 = new URL("http://session.minecraft.net/game/checkserver.jsp?user=" + URLEncoder.encode(NetLoginHandler.getClientUsername(this.loginHandler), "UTF-8") + "&serverId=" + URLEncoder.encode(var1, "UTF-8"));
BufferedReader var3 = new BufferedReader(new InputStreamReader(var2.openStream()));
String var4 = var3.readLine();
var3.close();
if (!"YES".equals(var4))
{
this.loginHandler.raiseErrorAndDisconnect("Failed to verify username!");
return;
}
NetLoginHandler.func_72531_a(this.loginHandler, true);
}
catch (Exception var5)
{
this.loginHandler.raiseErrorAndDisconnect("Failed to verify username! [internal error " + var5 + "]");
var5.printStackTrace();
}
}
}