public static boolean Authorize(final String user, final String pass) {
        try {
            LHost = InetAddress.getLocalHost();
        } catch (UnknownHostException ex) {
            print(ex.toString());
        }
//        new Thread() {
//            @Override
//            public void run() {
                print("Processing client data...");
                
                String AuthorizeResult = ru.zetrix.settings.NetUtil.ConnectNet(MZLOptions.AuthScrpt, "a=auth" + "&user=" + user + "&password=" + ShieldUtil.ShaHash(user.toLowerCase() + pass) + "&opt=" + ru.zetrix.settings.ShieldUtil.GetMAC() + "&localhost=" + LHost.toString());
                print(AuthorizeResult);
                
                if (AuthorizeResult == null) {
                    return false;
                }
                
                switch (AuthorizeResult.trim()) {
                    case "Bad Login":
                        return false;
                    case "Fuck Off":
                        BuildGui.WrongClient = true;
                        return false;
                    default:
                        try {
                            hashes = AuthorizeResult.split("_")[0].split("<>");
                            clientinf = AuthorizeResult.split("_")[1].split("<>");
                            
                            print("Auth OK. Starting 'check for download' process...");
                            Util.SleepTime(Long.valueOf(500L));
                        } catch (Exception e) {
                            print(e.toString());
                        }
                        if (checkUpdate() == true) {
                            MineStart = new MCStart(user, clientinf[1].trim());
                            return true;
                        } else {
                            Update = new Updater();
                            Update.show();
                            return false;
                        }
                }
    }