Hey. I am working on a mod and I need to make up to 24 web requests on execution of a command. It works fine, but while doing the requests, the game gets frozen, until its done. Is there any way of doing it in the background or so?
This is the code.
NetHandlerPlayClient connection = Minecraft.getMinecraft().getNetHandler();
List<NetworkPlayerInfo> playerInfo = new ArrayList(connection.getPlayerInfoMap());
List<String> playerList = Lists.<String>newArrayList();
List<Integer> pointsList = Lists.<Integer>newArrayList();
for (int i = 0; i < playerInfo.size(); ++i) {
if (i < playerInfo.size()) {
playerList.add(playerInfo.get(i).getGameProfile().getName());
}
}
for (int i = 0; i < playerList.size(); ++i) {
try {
Document doc = Jsoup.connect("https://hivemc.com/player/" + playerList.get(i)).userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36").get();
Elements temp = doc.select("li");
for (Element j : temp) {
if (j.getElementsByTag("p").text().contains("Survival Games 2")) {
pointsList.add(Integer.parseInt((j.getElementsByTag("span").first().text())));
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
for (int i = 0; i < playerList.size(); ++i) {
points.add(new PointsEntity(playerList.get(i), pointsList.get(i)));
}
Collections.sort(points, Collections.reverseOrder());
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.GRAY + "------------- " + EnumChatFormatting.AQUA + "SG2.0 Drops " + EnumChatFormatting.GRAY + "-------------"));
for (PointsEntity p : points) {
String message = p.name + " | " + p.points + " points | Drops " + Math.round(p.points * 0.025);
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(message));
}
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.GRAY + "---------------------------------------"));
points.clear();