From 6f33fc424111ce46dcabd85f214db68f4ddc8b9d Mon Sep 17 00:00:00 2001 From: Cow Date: Mon, 4 May 2020 12:54:50 +0200 Subject: Cleaned-up some GSON stuff --- .../java/eu/olli/cowmoonication/util/ApiUtils.java | 10 ++++---- .../eu/olli/cowmoonication/util/GsonUtils.java | 28 ++++++++++++++++++++++ .../eu/olli/cowmoonication/util/HyStalking.java | 10 ++++++-- .../eu/olli/cowmoonication/util/SlothStalking.java | 3 +++ 4 files changed, 44 insertions(+), 7 deletions(-) create mode 100644 src/main/java/eu/olli/cowmoonication/util/GsonUtils.java (limited to 'src/main/java/eu/olli/cowmoonication/util') 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 fromJson(String json, Type clazz) { + return gson.fromJson(json, clazz); + } + + public static T fromJson(Reader json, Class 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() { } -- cgit