blob: 94868a26c99604d10196152129e357b6f255d589 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
package me.Danker.handlers;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
public class APIHandler {
public static JsonObject getResponse(String urlString) {
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
try {
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String input;
StringBuffer response = new StringBuffer();
while ((input = in.readLine()) != null) {
response.append(input);
}
in.close();
Gson gson = new Gson();
JsonObject object = gson.fromJson(response.toString(), JsonObject.class);
return object;
} else {
player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Request failed. HTTP Error Code: " + conn.getResponseCode()));
}
} catch (MalformedURLException ex) {
player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "An error has occured. See logs for more details."));
System.err.println(ex);
} catch (IOException ex) {
player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "An error has occured. See logs for more details."));
System.err.println(ex);
}
return new JsonObject();
}
public static String getUUID(String username) {
Gson gson = new Gson();
JsonObject uuidResponse = getResponse("https://api.mojang.com/users/profiles/minecraft/" + username);
String UUID = uuidResponse.get("id").getAsString();
return UUID;
}
public static String getLatestProfileID(String UUID, String key) {
Gson gson = new Gson();
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
// Get profiles
System.out.println("Fetching profiles...");
JsonObject profilesResponse = getResponse("https://api.hypixel.net/skyblock/profiles?uuid=" + UUID + "&key=" + key);
if (!profilesResponse.get("success").getAsBoolean()) {
String reason = profilesResponse.get("cause").getAsString();
player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Failed with reason: " + reason));
return null;
}
if (profilesResponse.get("profiles").isJsonNull()) {
player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "This player doesn't appear to have played SkyBlock."));
return null;
}
// Loop through profiles to find latest
System.out.println("Looping through profiles...");
String latestProfile = "";
int latestSave = 0;
JsonArray profilesArray = profilesResponse.get("profiles").getAsJsonArray();
for (JsonElement profile : profilesArray) {
JsonObject profileJSON = profile.getAsJsonObject();
int profileLastSave = profileJSON.get("members").getAsJsonObject().get(UUID).getAsJsonObject().get("last_save").getAsInt();
if (profileLastSave > latestSave) {
latestProfile = profileJSON.get("profile_id").getAsString();
latestSave = profileLastSave;
}
}
return latestProfile;
}
}
|