Package org.spoutcraft.client

Source Code of org.spoutcraft.client.DataMiningThread

/*
* This file is part of Spoutcraft.
*
* Copyright (c) 2011 SpoutcraftDev <http://spoutcraft.org/>
* Spoutcraft is licensed under the GNU Lesser General Public License.
*
* Spoutcraft is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Spoutcraft is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
package org.spoutcraft.client;

import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import net.minecraft.src.World;

import org.spoutcraft.client.io.FileUtil;

public class DataMiningThread extends Thread {
  private volatile boolean onLogin = false;
  private volatile boolean multiplayer = false;
  private boolean runOnce = false;
  private static DataMiningThread instance = null;

  public DataMiningThread() {
    instance = this;
  }

  public static DataMiningThread getInstance() {
    return instance;
  }

  public void onLogin() {
    onLogin = true;
  }

  private void doLogin() {
    onRunOnce();
    if (SpoutClient.getInstance().getServerVersion() > 0) {
      onSpoutLogin();
    } else {
      onVanillaLogin();
    }
  }

  private void doSinglePlayer() {
    onRunOnce();
    pingLink("http://bit.ly/spoutsp");
  }

  private void onRunOnce() {
    File runOnce = new File(FileUtil.getConfigDir(), "runonce");
    if (!runOnce.exists()) {
      try {
        runOnce.createNewFile();
        pingLink("http://bit.ly/spoutcraftinstall");
      } catch (Exception e) {
      }
    }
  }

  private void onSpoutLogin() {
    pingLink("http://bit.ly/spoutcraftlogin");
  }

  private void onVanillaLogin() {
    pingLink("http://bit.ly/vanillalogin");
  }

  private void pingLink(String Url) {
    try {
      URL url = new URL(Url);
      HttpURLConnection con = (HttpURLConnection)(url.openConnection());
      System.setProperty("http.agent", ""); // Spoofing the user agent is required to track stats
      con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.100 Safari/534.30");
      BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
      String str;
      while ((str = in.readLine()) != null);
      in.close();
    } catch (Exception e) {}
  }

  public void run() {
    while (true) {
      try {
        sleep(10000);
      }
      catch (InterruptedException e1) {}
      if (onLogin) {
        doLogin();
        onLogin = false;
      }
      World world = SpoutClient.getHandle().theWorld;
      if (world != null) {
        if (!runOnce) {
          multiplayer = world.isRemote;
          runOnce = true;
          onRunOnce();
        }
        if (multiplayer != world.isRemote) {
          if (world.isRemote) {
            doSinglePlayer();
          }
          multiplayer = world.isRemote;
        }
      }
    }
  }
}
TOP

Related Classes of org.spoutcraft.client.DataMiningThread

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.