Skip to content

Commit c8afe8b

Browse files
Update version 0.0.4
1 parent e57d310 commit c8afe8b

File tree

11 files changed

+234
-119
lines changed

11 files changed

+234
-119
lines changed

README.md

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,27 @@
11
# MojangAPI-in-Java
22
Mojang Public API Java implementation.
3-
<h2>It is still in development.<br>
4-
The Maven repository server is maintaining, so please download the jar file.</h2>
3+
<h2>It is still in development.</h2>
54

65
## Download
76
Maven:
87
```xml
98
<repository>
109
<id>xiaopangxie732</id>
11-
<url>http://yc.aikeshi.top:40002/repository/maven-public</url>
10+
<url>http://repo.xiaopangxie732.cn:30002/repository/maven-public/</url>
1211
</repository>
1312
```
1413
```xml
1514
<dependency>
1615
<groupId>cn.xiaopangxie732</groupId>
1716
<artifactId>mojang-api</artifactId>
18-
<version>0.0.2</version>
17+
<version>0.0.3</version>
1918
</dependency>
2019
```
2120

22-
Jar file download: Please download file at [GitHub releases](https://github.com/XiaoPangxie732/MojangAPI-in-Java/releases/tag/0.0.2)
21+
Jar file download: Please download file at [GitHub releases](https://github.com/XiaoPangxie732/MojangAPI-in-Java/releases/latest)
2322
Javadoc: [Click here](http://yc.aikeshi.top:30003/xiaopangxie732/javadoc/mojang-api/0.0.1)
2423
## How to build(from source):
2524
1.Install Maven.
2625
2.cd to that directory.
27-
3.Run command in the cmd.
28-
```batch
29-
mvn clean install
30-
```
31-
4.When build complete, files are all in target folder
32-
<hr>
33-
My English is not very good, maybe some places are wrong:).(from translate.google.com)
26+
3.Run <code>mvn clean install</code>
27+
4.When build complete, files are all in target folder

mojang-api.iml

Lines changed: 0 additions & 21 deletions
This file was deleted.

pom.xml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,6 @@
1313
<artifactId>gson</artifactId>
1414
<version>2.8.5</version>
1515
</dependency>
16-
<dependency>
17-
<groupId>org.apache.httpcomponents</groupId>
18-
<artifactId>httpclient</artifactId>
19-
<version>4.5.7</version>
20-
</dependency>
2116
</dependencies>
2217
<build>
2318
<plugins>
@@ -37,6 +32,7 @@
3732
<phase>install</phase>
3833
<goals>
3934
<goal>jar</goal>
35+
<goal>javadoc</goal>
4036
</goals>
4137
</execution>
4238
</executions>

src/main/java/cn/xiaopangxie732/mojang_api/Status.java

Lines changed: 93 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package cn.xiaopangxie732.mojang_api;
22

3-
import cn.xiaopangxie732.mojang_api.util.Net;
43
import com.google.gson.JsonArray;
54
import com.google.gson.JsonObject;
65
import com.google.gson.JsonParser;
76

7+
import cn.xiaopangxie732.mojang_api.util.Net;
8+
9+
import java.io.FileWriter;
10+
import java.io.IOException;
811
import java.util.Properties;
912

1013
/**
11-
* Used to check the Mojang servers status.
14+
* To check the status of servers.
1215
* @author XiaoPangxie732
16+
* @since 0.0.1
1317
*/
1418
public class Status {
1519

@@ -19,18 +23,42 @@ public class Status {
1923
* @author XiaoPangxie732
2024
*/
2125
public enum StatusServer {
26+
/**
27+
* minecraft.net
28+
*/
2229
MINECRAFT_NET,
30+
/**
31+
* session.minecraft.net
32+
*/
2333
SESSION_MINECRAFT_NET,
34+
/**
35+
* account.mojang.com
36+
*/
2437
ACCOUNT_MOJANG_COM,
38+
/**
39+
* authserver.mojang.com
40+
*/
2541
AUTHSERVER_MOJANG_COM,
42+
/**
43+
* sessionserver.mojang.com
44+
*/
2645
SESSIONSERVER_MOJANG_COM,
46+
/**
47+
* api.mojang.com
48+
*/
2749
API_MOJANG_COM,
50+
/**
51+
* textures.minecraft.net
52+
*/
2853
TEXTURES_MINECRAFT_NET,
54+
/**
55+
* mojang.com
56+
*/
2957
MOJANG_COM;
3058

3159
/**
32-
* Let enum to string.<br>
33-
* @return The lower case of enum name.
60+
* {@code toString} method.
61+
* @return The lower case and replace "_" to the " " enum name.
3462
* @since 0.0.1
3563
* @author XiaoPangxie732
3664
*/
@@ -46,13 +74,21 @@ public String toString() {
4674
* @author XiaoPangxie732
4775
*/
4876
public enum StatusType {
77+
/**
78+
* green
79+
*/
4980
GREEN,
81+
/**
82+
* yellow
83+
*/
5084
YELLOW,
51-
RED,
52-
ERROR_TO_CONNECT;
85+
/**
86+
* red(or could not connect)
87+
*/
88+
RED;
5389

5490
/**
55-
* Let enum to string.
91+
* {@code toString} method.
5692
* @return The lower case of enum name.
5793
* @since 0.0.1
5894
* @author XiaoPangxie732
@@ -67,7 +103,8 @@ public String toString() {
67103
private String response;
68104

69105
/**
70-
* Construct a <code>Status</code> class.
106+
* Construct a <code>Status</code> class.<br>
107+
* To get the servers status.
71108
* @since 0.0.1
72109
*/
73110
public Status() {
@@ -77,8 +114,8 @@ public Status() {
77114
/**
78115
* To check server status.
79116
* @throws NullPointerException When the server is <code>null</code>.
80-
* @param server The server needs to check the status.
81-
* @return The status of this server.
117+
* @param server The server to check status.
118+
* @return The status of this server.<br>When couldn't connect, it will return {@link StatusType#RED}.
82119
* @since 0.0.1
83120
* @author XiaoPangxie732
84121
*/
@@ -88,19 +125,61 @@ public StatusType getStatus(StatusServer server) throws NullPointerException {
88125
Properties result = new Properties();
89126
for(int var = 0;var < array.size(); ++var) {
90127
JsonObject object = array.get(var).getAsJsonObject();
91-
Object[] key = object.keySet().toArray();
92-
result.setProperty((String)key[0], object.get(key[0].toString()).getAsString());
128+
String key = object.keySet().iterator().next();
129+
result.setProperty(key, object.get(key).getAsString());
93130
}
94-
String value = result.getProperty(server.toString());
131+
String value = result.getProperty(String.valueOf(server));
95132
switch (value) {
96133
case "green":
97134
return StatusType.GREEN;
98135
case "yellow":
99136
return StatusType.YELLOW;
100137
case "red":
101138
return StatusType.RED;
139+
default:
140+
return StatusType.RED;
102141
}
103-
return StatusType.ERROR_TO_CONNECT;
142+
}
143+
144+
/**
145+
* To check server status and list them.<br>
146+
* @param store Whether to store the output.
147+
* @return The all server status.<br>Return as <code>Properties</code> format.
148+
* @since 0.0.4
149+
* @author XiaoPangxie732
150+
*/
151+
public String getAllStatus(boolean store) {
152+
JsonArray array = new JsonParser().parse(response).getAsJsonArray();
153+
Properties data = new Properties();
154+
for(int var = 0;var < array.size(); ++var) {
155+
JsonObject object = array.get(var).getAsJsonObject();
156+
String key = object.keySet().iterator().next();
157+
data.setProperty(key, object.get(key).getAsString());
158+
}
159+
String returned = String.valueOf(data).replace("{", "").replace("}", "").replace(", ", "\n");
160+
if(store) {
161+
try {
162+
data.store(new FileWriter(System.getProperty("user.home") + "\\Desktop\\ServerStatuses.properties"),
163+
"The server statuses output.\nMojangAPI-in-Java made by XiaoPangxie732.\nhttps://github.com/XiaoPangxie732/MojangAPI-in-Java");
164+
} catch (IOException e) {
165+
System.err.println("File store failed!");
166+
System.err.print("Stacktrace: ");
167+
e.printStackTrace();
168+
return returned;
169+
}
170+
System.out.println("File store complete.\nFile stored at desktop.(ServerStatuses.properties)");
171+
}
172+
return returned;
173+
}
174+
175+
/**
176+
* To check server status and list them.<br>
177+
* @return The all server status.<br>Return as <code>Properties</code> format.
178+
* @since 0.0.4
179+
* @author XiaoPangxie732
180+
*/
181+
public String getAllStatus() {
182+
return getAllStatus(false);
104183
}
105184

106185
/**

src/main/java/cn/xiaopangxie732/mojang_api/UUIDName.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,32 @@
22

33
import cn.xiaopangxie732.mojang_api.util.Net;
44
import com.google.gson.Gson;
5+
import com.google.gson.JsonArray;
6+
import com.google.gson.JsonParser;
57

68
import java.text.DateFormat;
79
import java.util.Date;
8-
import java.util.Properties;
910

1011
/**
11-
* Incomplete
12+
* Used for UUID operating.
1213
* @author XiaoPangxie732
1314
*/
1415
public class UUIDName {
1516

1617
private static Gson json = new Gson();
1718

19+
/**
20+
* To get UUID's name history.
21+
* @param uuid The player's UUID, can be get be using {@link UserName#UUIDAtNow(String)}
22+
* @return The name history of the UUID.
23+
*/
1824
public static String NameHistory(String uuid) {
1925
String url = "https://api.mojang.com/user/profiles/" + uuid + "/names";
20-
Properties[] response = json.fromJson(Net.getConnection(url), Properties[].class);
21-
StringBuilder result = new StringBuilder("Original: " + response[0].getProperty("name"));
22-
for(int var = 1; var < response.length; ++var) {
23-
result.append("\n" + DateFormat.getDateInstance().format(new Date(Long.parseLong(response[var].getProperty("changedToAt")))) + ": " + response[var].getProperty("name"));
26+
JsonArray response = new JsonParser().parse(Net.getConnection(url)).getAsJsonArray();
27+
StringBuilder result = new StringBuilder("Original=" + response.get(0).getAsJsonObject().get("name").getAsString());
28+
for(int var = 1; var < response.size(); ++var) {
29+
result.append("\n" + DateFormat.getDateInstance().format(new Date(Long.parseLong(response.get(var).getAsJsonObject().get("changedToAt").getAsString()))) + "="
30+
+ response.get(var).getAsJsonObject().get("name").getAsString());
2431
}
2532
return result.toString();
2633
}

0 commit comments

Comments
 (0)