aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/cowtipper/cowlection/data/HyStalkingData.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/cowtipper/cowlection/data/HyStalkingData.java')
-rw-r--r--src/main/java/de/cowtipper/cowlection/data/HyStalkingData.java120
1 files changed, 120 insertions, 0 deletions
diff --git a/src/main/java/de/cowtipper/cowlection/data/HyStalkingData.java b/src/main/java/de/cowtipper/cowlection/data/HyStalkingData.java
new file mode 100644
index 0000000..45f3344
--- /dev/null
+++ b/src/main/java/de/cowtipper/cowlection/data/HyStalkingData.java
@@ -0,0 +1,120 @@
+package de.cowtipper.cowlection.data;
+
+import de.cowtipper.cowlection.util.Utils;
+import org.apache.commons.lang3.StringUtils;
+
+public class HyStalkingData {
+ private boolean success;
+ private String cause;
+ private HySession session;
+
+ /**
+ * No-args constructor for GSON
+ */
+ private HyStalkingData() {
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public String getCause() {
+ return cause;
+ }
+
+ public HySession getSession() {
+ return session;
+ }
+
+ public static class HySession {
+ private boolean online;
+ private String gameType;
+ private String mode;
+ private String map;
+
+ /**
+ * No-args constructor for GSON
+ */
+ private HySession() {
+ }
+
+ public boolean isOnline() {
+ return online;
+ }
+
+ public String getGameType() {
+ return DataHelper.GameType.getFancyName(gameType);
+ }
+
+ public String getMode() {
+ // modes partially taken from https://api.hypixel.net/gameCounts?key=MOO
+ if (mode == null) {
+ return null;
+ }
+ String gameType = getGameType();
+ if (DataHelper.GameType.BEDWARS.getCleanName().equals(gameType)) {
+ // BedWars related
+ String playerMode;
+ String specialMode;
+ int specialModeStart = StringUtils.ordinalIndexOf(mode, "_", 2);
+ if (specialModeStart > -1) {
+ playerMode = mode.substring(0, specialModeStart);
+ specialMode = mode.substring(specialModeStart + 1) + " ";
+ } else {
+ playerMode = mode;
+ specialMode = "";
+ }
+ String playerModeClean;
+ switch (playerMode) {
+ case "EIGHT_ONE":
+ playerModeClean = "Solo";
+ break;
+ case "EIGHT_TWO":
+ playerModeClean = "Doubles";
+ break;
+ case "FOUR_THREE":
+ playerModeClean = "3v3v3v3";
+ break;
+ case "FOUR_FOUR":
+ playerModeClean = "4v4v4v4";
+ break;
+ case "TWO_FOUR":
+ playerModeClean = "4v4";
+ break;
+ default:
+ playerModeClean = playerMode;
+ }
+ return Utils.fancyCase(specialMode + playerModeClean);
+ } else if (DataHelper.GameType.SKYBLOCK.getCleanName().equals(gameType)) {
+ // SkyBlock related
+ switch (mode) {
+ case "dynamic":
+ return "Private Island";
+ case "hub":
+ return "Hub";
+ case "combat_1":
+ return "Spider's Den";
+ case "combat_2":
+ return "Blazing Fortress";
+ case "combat_3":
+ return "The End";
+ case "farming_1":
+ return "The Barn";
+ case "farming_2":
+ return "Mushroom Desert";
+ case "foraging_1":
+ return "The Park";
+ case "mining_1":
+ return "Gold Mine";
+ case "mining_2":
+ return "Deep Caverns";
+ }
+ }
+ return Utils.fancyCase(mode);
+ }
+
+ public String getMap() {
+ return map;
+ }
+ }
+}