aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/eu/olli/cowmoonication/util
diff options
context:
space:
mode:
authorCow <cow@volloeko.de>2020-05-04 12:54:50 +0200
committerCow <cow@volloeko.de>2020-05-04 12:54:50 +0200
commit6f33fc424111ce46dcabd85f214db68f4ddc8b9d (patch)
tree1e83b126d347c6e9face12222402997864595598 /src/main/java/eu/olli/cowmoonication/util
parentcba81609bd12038559754b07973ec00f598defaa (diff)
downloadCowlection-6f33fc424111ce46dcabd85f214db68f4ddc8b9d.tar.gz
Cowlection-6f33fc424111ce46dcabd85f214db68f4ddc8b9d.tar.bz2
Cowlection-6f33fc424111ce46dcabd85f214db68f4ddc8b9d.zip
Cleaned-up some GSON stuff
Diffstat (limited to 'src/main/java/eu/olli/cowmoonication/util')
-rw-r--r--src/main/java/eu/olli/cowmoonication/util/ApiUtils.java10
-rw-r--r--src/main/java/eu/olli/cowmoonication/util/GsonUtils.java28
-rw-r--r--src/main/java/eu/olli/cowmoonication/util/HyStalking.java10
-rw-r--r--src/main/java/eu/olli/cowmoonication/util/SlothStalking.java3
4 files changed, 44 insertions, 7 deletions
diff --git a/src/main/java/eu/olli/cowmoonication/util/ApiUtils.java b/src/main/java/eu/olli/cowmoonication/util/ApiUtils.java
index 9f013f3..2dc41b2 100644
--- a/src/main/java/eu/olli/cowmoonication/util/ApiUtils.java
+++ b/src/main/java/eu/olli/cowmoonication/util/ApiUtils.java
@@ -8,6 +8,7 @@ import com.mojang.util.UUIDTypeAdapter;
import eu.olli.cowmoonication.Cowmoonication;
import eu.olli.cowmoonication.config.MooConfig;
import eu.olli.cowmoonication.friends.Friend;
+import org.apache.http.HttpStatus;
import java.io.BufferedReader;
import java.io.IOException;
@@ -27,7 +28,6 @@ public class ApiUtils {
private static final String STALKING_URL_OFFICIAL = "https://api.hypixel.net/status?key=%s&uuid=%s";
private static final String STALKING_URL_UNOFFICIAL = "https://api.slothpixel.me/api/players/%s";
private static ExecutorService pool = Executors.newCachedThreadPool();
- private static Gson gson = new GsonBuilder().registerTypeAdapter(UUID.class, new UUIDTypeAdapter()).registerTypeAdapter(Friend.class, new Friend.FriendCreator()).create();
private ApiUtils() {
}
@@ -41,7 +41,7 @@ public class ApiUtils {
if (reader == null) {
return Friend.FRIEND_NOT_FOUND;
} else {
- return gson.fromJson(reader, Friend.class);
+ return GsonUtils.fromJson(reader, Friend.class);
}
} catch (IOException e) {
e.printStackTrace();
@@ -76,7 +76,7 @@ public class ApiUtils {
private static HyStalking stalkPlayer(Friend friend) {
try (BufferedReader reader = makeApiCall(String.format(STALKING_URL_OFFICIAL, MooConfig.moo, UUIDTypeAdapter.fromUUID(friend.getUuid())))) {
if (reader != null) {
- return gson.fromJson(reader, HyStalking.class);
+ return GsonUtils.fromJson(reader, HyStalking.class);
}
} catch (IOException e) {
e.printStackTrace();
@@ -91,7 +91,7 @@ public class ApiUtils {
private static SlothStalking stalkOfflinePlayer(Friend stalkedPlayer) {
try (BufferedReader reader = makeApiCall(String.format(STALKING_URL_UNOFFICIAL, UUIDTypeAdapter.fromUUID(stalkedPlayer.getUuid())))) {
if (reader != null) {
- return gson.fromJson(reader, SlothStalking.class);
+ return GsonUtils.fromJson(reader, SlothStalking.class);
}
} catch (IOException e) {
e.printStackTrace();
@@ -106,7 +106,7 @@ public class ApiUtils {
connection.addRequestProperty("User-Agent", "Forge Mod " + Cowmoonication.MODNAME + "/" + Cowmoonication.VERSION + " (" + Cowmoonication.GITURL + ")");
connection.getResponseCode();
- if (connection.getResponseCode() == 204) {
+ if (connection.getResponseCode() == HttpStatus.SC_NO_CONTENT) { // http status 204
return null;
} else {
BufferedReader reader;
diff --git a/src/main/java/eu/olli/cowmoonication/util/GsonUtils.java b/src/main/java/eu/olli/cowmoonication/util/GsonUtils.java
new file mode 100644
index 0000000..4a723ec
--- /dev/null
+++ b/src/main/java/eu/olli/cowmoonication/util/GsonUtils.java
@@ -0,0 +1,28 @@
+package eu.olli.cowmoonication.util;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.mojang.util.UUIDTypeAdapter;
+
+import java.io.Reader;
+import java.lang.reflect.Type;
+import java.util.UUID;
+
+public final class GsonUtils {
+ private static Gson gson = new GsonBuilder().registerTypeAdapter(UUID.class, new UUIDTypeAdapter()).create();
+
+ private GsonUtils() {
+ }
+
+ public static <T> T fromJson(String json, Type clazz) {
+ return gson.fromJson(json, clazz);
+ }
+
+ public static <T> T fromJson(Reader json, Class<T> clazz) {
+ return gson.fromJson(json, clazz);
+ }
+
+ public static String toJson(Object object) {
+ return gson.toJson(object);
+ }
+}
diff --git a/src/main/java/eu/olli/cowmoonication/util/HyStalking.java b/src/main/java/eu/olli/cowmoonication/util/HyStalking.java
index a1f11ae..19f2362 100644
--- a/src/main/java/eu/olli/cowmoonication/util/HyStalking.java
+++ b/src/main/java/eu/olli/cowmoonication/util/HyStalking.java
@@ -7,7 +7,10 @@ public class HyStalking {
private String cause;
private HySession session;
- public HyStalking() {
+ /**
+ * No-args constructor for GSON
+ */
+ private HyStalking() {
}
public boolean isSuccess() {
@@ -28,7 +31,10 @@ public class HyStalking {
private String mode;
private String map;
- public HySession() {
+ /**
+ * No-args constructor for GSON
+ */
+ private HySession() {
}
public boolean isOnline() {
diff --git a/src/main/java/eu/olli/cowmoonication/util/SlothStalking.java b/src/main/java/eu/olli/cowmoonication/util/SlothStalking.java
index 1cc7c22..9e659ec 100644
--- a/src/main/java/eu/olli/cowmoonication/util/SlothStalking.java
+++ b/src/main/java/eu/olli/cowmoonication/util/SlothStalking.java
@@ -9,6 +9,9 @@ public class SlothStalking {
private long last_logout;
private String last_game;
+ /**
+ * No-args constructor for GSON
+ */
public SlothStalking() {
}