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(); } } }