aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/Danker/commands/DungeonsCommand.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/Danker/commands/DungeonsCommand.java')
-rw-r--r--src/main/java/me/Danker/commands/DungeonsCommand.java66
1 files changed, 53 insertions, 13 deletions
diff --git a/src/main/java/me/Danker/commands/DungeonsCommand.java b/src/main/java/me/Danker/commands/DungeonsCommand.java
index bdc1403..f9ad93e 100644
--- a/src/main/java/me/Danker/commands/DungeonsCommand.java
+++ b/src/main/java/me/Danker/commands/DungeonsCommand.java
@@ -9,6 +9,7 @@ import net.minecraft.command.CommandBase;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.event.HoverEvent;
import net.minecraft.util.BlockPos;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
@@ -77,6 +78,14 @@ public class DungeonsCommand extends CommandBase {
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Failed with reason: " + reason));
return;
}
+
+ String playerURL = "https://api.hypixel.net/player?uuid=" + uuid + "&key=" + key;
+ System.out.println("Fetching player data...");
+ JsonObject playerResponse = APIHandler.getResponse(playerURL);
+ if(!playerResponse.get("success").getAsBoolean()){
+ String reason = playerResponse.get("cause").getAsString();
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "This player has not played on Hypixel."));
+ }
System.out.println("Fetching dungeon stats...");
JsonObject dungeonsObject = profileResponse.get("profile").getAsJsonObject().get("members").getAsJsonObject().get(uuid).getAsJsonObject().get("dungeons").getAsJsonObject();
@@ -84,25 +93,56 @@ public class DungeonsCommand extends CommandBase {
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "This player has not played dungeons."));
return;
}
-
- double catacombs = Utils.xpToDungeonsLevel(dungeonsObject.get("dungeon_types").getAsJsonObject().get("catacombs").getAsJsonObject().get("experience").getAsDouble());
+
+ JsonObject catacombsObject = dungeonsObject.get("dungeon_types").getAsJsonObject().get("catacombs").getAsJsonObject();
+ double catacombs = Utils.xpToDungeonsLevel(catacombsObject.get("experience").getAsDouble());
double healer = Utils.xpToDungeonsLevel(dungeonsObject.get("player_classes").getAsJsonObject().get("healer").getAsJsonObject().get("experience").getAsDouble());
double mage = Utils.xpToDungeonsLevel(dungeonsObject.get("player_classes").getAsJsonObject().get("mage").getAsJsonObject().get("experience").getAsDouble());
double berserk = Utils.xpToDungeonsLevel(dungeonsObject.get("player_classes").getAsJsonObject().get("berserk").getAsJsonObject().get("experience").getAsDouble());
double archer = Utils.xpToDungeonsLevel(dungeonsObject.get("player_classes").getAsJsonObject().get("archer").getAsJsonObject().get("experience").getAsDouble());
double tank = Utils.xpToDungeonsLevel(dungeonsObject.get("player_classes").getAsJsonObject().get("tank").getAsJsonObject().get("experience").getAsDouble());
String selectedClass = Utils.capitalizeString(dungeonsObject.get("selected_dungeon_class").getAsString());
-
- player.addChatMessage(new ChatComponentText(DankersSkyblockMod.DELIMITER_COLOUR + "" + EnumChatFormatting.BOLD + "-------------------\n" +
- EnumChatFormatting.RED + " Catacombs Level: " + catacombs + "\n" +
- EnumChatFormatting.GOLD + " Selected Class: " + selectedClass + "\n\n" +
- EnumChatFormatting.YELLOW + " Healer Level: " + healer + "\n" +
- EnumChatFormatting.LIGHT_PURPLE + " Mage Level: " + mage + "\n" +
- EnumChatFormatting.RED + " Berserk Level: " + berserk + "\n" +
- EnumChatFormatting.GREEN + " Archer Level: " + archer + "\n" +
- EnumChatFormatting.BLUE + " Tank Level: " + tank + "\n" +
- DankersSkyblockMod.DELIMITER_COLOUR + " " + EnumChatFormatting.BOLD + "-------------------"));
+ int secrets = playerResponse.get("player").getAsJsonObject().get("achievements").getAsJsonObject().get("skyblock_treasure_hunter").getAsInt();
+
+ int highestFloor = catacombsObject.get("highest_tier_completed").getAsInt();
+ JsonObject completionObj = catacombsObject.get("tier_completions").getAsJsonObject();
+
+ String delimiter = DankersSkyblockMod.DELIMITER_COLOUR + "" + EnumChatFormatting.BOLD + "-------------------";
+
+ ChatComponentText classLevels = new ChatComponentText(
+ EnumChatFormatting.GOLD + " Selected Class: " + selectedClass + "\n\n" +
+ EnumChatFormatting.RED + " Catacombs Level: " + catacombs + "\n" +
+ EnumChatFormatting.YELLOW + " Healer Level: " + healer + "\n" +
+ EnumChatFormatting.LIGHT_PURPLE + " Mage Level: " + mage + "\n" +
+ EnumChatFormatting.RED + " Berserk Level: " + berserk + "\n" +
+ EnumChatFormatting.GREEN + " Archer Level: " + archer + "\n" +
+ EnumChatFormatting.BLUE + " Tank Level: " + tank + "\n\n" +
+ EnumChatFormatting.WHITE + " Secrets Found: " + secrets + "\n\n");
+
+ StringBuilder completionsHoverString = new StringBuilder();
+
+ for (int i = 0; i <= highestFloor; i++) {
+ completionsHoverString
+ .append(EnumChatFormatting.GOLD)
+ .append(i == 0 ? "Entrance: " : "Floor " + i + ": ")
+ .append(EnumChatFormatting.RESET)
+ .append(completionObj.get(String.valueOf(i)).getAsInt())
+ .append(i < highestFloor ? "\n": "");
+ }
+
+ ChatComponentText completions = new ChatComponentText(EnumChatFormatting.GOLD + " Highest Floor Completed: " + highestFloor);
+
+ completions.setChatStyle(completions.getChatStyle().setChatHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ChatComponentText(completionsHoverString.toString()))));
+
+
+ player.addChatMessage(
+ new ChatComponentText(delimiter)
+ .appendText("\n")
+ .appendSibling(classLevels)
+ .appendSibling(completions)
+ .appendText("\n")
+ .appendSibling(new ChatComponentText(delimiter))
+ );
}).start();
}
-
}