diff --git a/src/srvrotator/SRVRotator.java b/src/srvrotator/SRVRotator.java index 81f159c..ca7e581 100644 --- a/src/srvrotator/SRVRotator.java +++ b/src/srvrotator/SRVRotator.java @@ -11,9 +11,9 @@ import java.net.URLConnection; import java.util.ArrayList; import java.util.Scanner; -import java.util.UUID; -import com.google.gson.JsonArray; +import org.apache.commons.codec.digest.DigestUtils; + import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; @@ -29,19 +29,21 @@ public class SRVRotator { static String xauthkey; static String zoneid; static String recordid; + + static final String sessionServerUrl = "https://sessionserver.mojang.com/blockedservers"; public static void main(String[] args) throws IOException, UnirestException { initalize(); System.out.println("Started. This could take a while..."); String unblacklisted; try { - unblacklisted = getUnblacklisted(); + unblacklisted = getUnblacklisted(); } catch(IndexOutOfBoundsException e) { System.out.println("Error: domains.txt does not contain any or enough domains"); return; } if(unblacklisted.equals(null)) { - System.out.println("No domains found in file"); + System.out.println("No unblacklisted domains found in file"); return; } if(unblacklisted.equals(getCurrentTarget())) { @@ -96,7 +98,7 @@ public static void setup() throws IOException { } br.close(); String json = response.toString(); - JsonElement pageelement = new JsonParser().parse(json); + JsonElement pageelement = JsonParser.parseString(json); JsonObject pageobject = pageelement.getAsJsonObject(); xauthemail = pageobject.get("X-Auth-Email").getAsString(); if(xauthemail.equals("")) { @@ -129,7 +131,7 @@ public static String getNameOne() throws UnirestException { .header("X-Auth-Key",xauthkey) .asJson(); String json = res.getBody().toString(); - JsonElement pageelement = new JsonParser().parse(json); + JsonElement pageelement = JsonParser.parseString(json); JsonObject pageobject = pageelement.getAsJsonObject(); return pageobject.get("result").getAsJsonObject().get("name").getAsString(); } @@ -139,7 +141,7 @@ public static String getNameTwo() throws UnirestException { .header("X-Auth-Key",xauthkey) .asJson(); String json = res.getBody().toString(); - JsonElement pageelement = new JsonParser().parse(json); + JsonElement pageelement = JsonParser.parseString(json); JsonObject pageobject = pageelement.getAsJsonObject(); return pageobject.get("result").getAsJsonObject().get("data").getAsJsonObject().get("name").getAsString(); } @@ -149,44 +151,41 @@ public static String getCurrentTarget() throws UnirestException { .header("X-Auth-Key",xauthkey) .asJson(); String json = res.getBody().toString(); - JsonElement pageelement = new JsonParser().parse(json); + JsonElement pageelement = JsonParser.parseString(json); JsonObject pageobject = pageelement.getAsJsonObject(); return pageobject.get("result").getAsJsonObject().get("data").getAsJsonObject().get("target").getAsString(); } - public static String getUnblacklisted() throws IOException { - int place = 0; - boolean cont=true; - ArrayList list = getFromFile(domains); - while(cont) { - boolean worked=true; - String json; - try { - json = getJson("https://use.gameapis.net/mc/extra/blockedservers/check/" +list.get(place)); + public static String getUnblacklisted() throws IOException, UnirestException { + ArrayList listOfDomains = getFromFile(domains); + String blockedServersList = Unirest.get(sessionServerUrl).asString().getBody(); + if(listOfDomains.size() > 0) { + for(String domain: listOfDomains) { + if(!isBlocked(domain,blockedServersList)) { + return domain; + } + } } - catch(ArrayIndexOutOfBoundsException e) { + else { System.out.println("No unblacklisted domains found"); - break; } - //System.out.println(list.get(place)); - JsonElement pageelement = new JsonParser().parse(json); - JsonObject pageobject = pageelement.getAsJsonObject(); - JsonArray domains = pageobject.getAsJsonArray(list.get(place)); - for(int i=0;i