aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbowser0000 <bowser0000@gmail.com>2020-07-20 19:27:24 -0400
committerbowser0000 <bowser0000@gmail.com>2020-07-20 19:27:24 -0400
commit2f128b7995cded35f9b0ca41f5ef6fa70d633b7f (patch)
tree0b3787ce7df788c64f25125422c80c3fc1e159ec
parent34234ac4f58c66c3910e635aaaad60ebf08e9b00 (diff)
downloadSkyblockMod-2f128b7995cded35f9b0ca41f5ef6fa70d633b7f.tar.gz
SkyblockMod-2f128b7995cded35f9b0ca41f5ef6fa70d633b7f.tar.bz2
SkyblockMod-2f128b7995cded35f9b0ca41f5ef6fa70d633b7f.zip
/dhelp, /guildof, fix brackets
Add /dhelp which returns list of commands. Add /guildof which returns guild and guildmaster of a person. Swap <> and [] for parameters.
-rw-r--r--README.md23
-rw-r--r--me/Danker/TheMod.java6
-rw-r--r--me/Danker/commands/DHelpCommand.java45
-rw-r--r--me/Danker/commands/DisplayCommand.java6
-rw-r--r--me/Danker/commands/GuildOfCommand.java105
-rw-r--r--me/Danker/commands/LootCommand.java6
-rw-r--r--me/Danker/commands/MoveCommand.java6
-rw-r--r--me/Danker/commands/SetkeyCommand.java4
-rw-r--r--me/Danker/commands/SkillsCommand.java4
-rw-r--r--me/Danker/commands/SlayerCommand.java4
-rw-r--r--me/Danker/commands/ToggleCommand.java6
-rw-r--r--me/Danker/handlers/APIHandler.java37
12 files changed, 222 insertions, 30 deletions
diff --git a/README.md b/README.md
index 21bebb7..091bc4c 100644
--- a/README.md
+++ b/README.md
@@ -4,22 +4,23 @@ QOL changes that enhances your Hypixel Skyblock experience. Created to add featu
## Current features
- Guild party desktop notifications (toggleable)
- Coordinate and angle display (toggleable)
-- Slayer item tracker
-- Slayer API command
-- Skill API command
+- Slayer item tracker (with GUI display)
+- API commands
## Commands
-- /toggle [gparty/coords/list] - Toggles features. /toggle list returns values of every toggle.
-- /setkey [key] - Sets API key.
+- /dhelp - Returns this message in-game.
+- /toggle <gparty/coords/list> - Toggles features. /toggle list returns values of every toggle.
+- /setkey <key> - Sets API key.
- /getkey - Returns key set with /setkey.
-- /loot [zombie/spider/wolf] - Returns loot received from the slayer quest.
-- /display [zombie/spider/wolf/off] - Text display for slayer tracker.
-- /move [coords/display] [x] [y] - Moves text display to specified X and Y coordinates.
-- /slayer <name> - Uses API to get slayer xp of a person. If no name is provided, it checks yours.
-- /skills <name> - Uses API to get skill levlels of a person. If no name is provided, it checks yours.
+- /loot <zombie/spider/wolf> - Returns loot received from slayer quests.
+- /display <zombie/spider/wolf/off> - Text display for slayer tracker.
+- /move <coords/display> <x> <y> - Moves text display to specified X and Y coordinates.
+- /slayer [name] - Uses API to get slayer xp of a person. If no name is provided, it checks yours.
+- /skills [name] - Uses API to get skill levels of a person. If no name is provided, it checks yours.
+- /guildof [name] - Uses API to get guild name and guild master of a person. If no name is provided, it checks yours.
### Notes
- Slayer tracker for token drops and 20% chance drops uses a 12x12x12 bounding box centered on the player to detect the drops. If you are out of the range of the item drop, it will not count on the tracker.
- API commands may take a while depending on your internet connection.
-- API commands send one request to Mojang and two requests to the Hypixel API. This means doing more than 60 API commands/minute will get you rate-limited. If you have an unlimited Hypixel API key, this is changed to 600 API commands/10 minutes.
+- If you use too many API commands too fast, you can and will get rate-limited.
- An incorrect API key will result in an HTTP error code of 402.
diff --git a/me/Danker/TheMod.java b/me/Danker/TheMod.java
index 5d603a3..0064d00 100644
--- a/me/Danker/TheMod.java
+++ b/me/Danker/TheMod.java
@@ -7,8 +7,10 @@ import java.awt.TrayIcon;
import java.text.NumberFormat;
import java.util.List;
+import me.Danker.commands.DHelpCommand;
import me.Danker.commands.DisplayCommand;
import me.Danker.commands.GetkeyCommand;
+import me.Danker.commands.GuildOfCommand;
import me.Danker.commands.LootCommand;
import me.Danker.commands.MoveCommand;
import me.Danker.commands.ReloadConfigCommand;
@@ -42,7 +44,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
public class TheMod
{
public static final String MODID = "Danker's Skyblock Mod";
- public static final String VERSION = "1.5.2";
+ public static final String VERSION = "1.5.3";
static int checkItemsNow = 0;
static int itemsChecked = 0;
@@ -68,6 +70,8 @@ public class TheMod
ClientCommandHandler.instance.registerCommand(new MoveCommand());
ClientCommandHandler.instance.registerCommand(new SlayerCommand());
ClientCommandHandler.instance.registerCommand(new SkillsCommand());
+ ClientCommandHandler.instance.registerCommand(new GuildOfCommand());
+ ClientCommandHandler.instance.registerCommand(new DHelpCommand());
}
// It randomly broke, so I had to make it the highest priority
diff --git a/me/Danker/commands/DHelpCommand.java b/me/Danker/commands/DHelpCommand.java
new file mode 100644
index 0000000..5e71f81
--- /dev/null
+++ b/me/Danker/commands/DHelpCommand.java
@@ -0,0 +1,45 @@
+package me.Danker.commands;
+
+import net.minecraft.command.CommandBase;
+import net.minecraft.command.CommandException;
+import net.minecraft.command.ICommandSender;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.EnumChatFormatting;
+
+public class DHelpCommand extends CommandBase {
+
+ @Override
+ public String getCommandName() {
+ return "dhelp";
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender arg0) {
+ return getCommandName();
+ }
+
+ @Override
+ public int getRequiredPermissionLevel() {
+ return 0;
+ }
+
+ @Override
+ public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException {
+ EntityPlayer player = (EntityPlayer) arg0;
+
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.GOLD + "Danker's Skyblock Mod Version 1.5.3\n" +
+ EnumChatFormatting.AQUA + "<> = Mandatory parameter. [] = Optional parameter.\n" +
+ EnumChatFormatting.GOLD + "/dhelp" + EnumChatFormatting.AQUA + " - Returns this message.\n" +
+ EnumChatFormatting.GOLD + "/toggle <gparty/coords/list>" + EnumChatFormatting.AQUA + " - Toggles features. /toggle list returns values of every toggle.\n" +
+ EnumChatFormatting.GOLD + "/setkey <key>" + EnumChatFormatting.AQUA + " - Sets API key.\n" +
+ EnumChatFormatting.GOLD + "/getkey" + EnumChatFormatting.AQUA + " - Returns key set with /setkey.\n" +
+ EnumChatFormatting.GOLD + "/loot <zombie/spider/wolf>" + EnumChatFormatting.AQUA + " - Returns loot received from slayer quests.\n" +
+ EnumChatFormatting.GOLD + "/display <zombie/spider/wolf/off>" + EnumChatFormatting.AQUA + " - Text display for slayer tracker.\n" +
+ EnumChatFormatting.GOLD + "/move <coords/display> <x> <y>" + EnumChatFormatting.AQUA + " - Moves text display to specified X and Y coordinates.\n" +
+ EnumChatFormatting.GOLD + "/slayer [player]" + EnumChatFormatting.AQUA + " - Uses API to get slayer xp of a person. If no name is provided, it checks yours.\n" +
+ EnumChatFormatting.GOLD + "/skills [player]" + EnumChatFormatting.AQUA + " - Uses API to get skill levels of a person. If no name is provided, it checks yours.\n" +
+ EnumChatFormatting.GOLD + "/guildof [player]" + EnumChatFormatting.AQUA + " - Uses API to get guild name and guild master of a person. If no name is provided, it checks yours."));
+ }
+
+}
diff --git a/me/Danker/commands/DisplayCommand.java b/me/Danker/commands/DisplayCommand.java
index 09d7c0f..998aead 100644
--- a/me/Danker/commands/DisplayCommand.java
+++ b/me/Danker/commands/DisplayCommand.java
@@ -18,7 +18,7 @@ public class DisplayCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return getCommandName() + " [zombie/spider/wolf/off]";
+ return getCommandName() + " <zombie/spider/wolf/off>";
}
@Override
@@ -31,7 +31,7 @@ public class DisplayCommand extends CommandBase {
final EntityPlayer player = (EntityPlayer) arg0;
if (arg1.length == 0) {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /display [zombie/spider/wolf/off]"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /display <zombie/spider/wolf/off>"));
return;
}
@@ -46,7 +46,7 @@ public class DisplayCommand extends CommandBase {
} else if (arg1[0].equalsIgnoreCase("off")) {
display = "off";
} else {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /display [zombie/spider/wolf/off]"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /display <zombie/spider/wolf/off>"));
return;
}
player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Display set to " + EnumChatFormatting.DARK_GREEN + display + EnumChatFormatting.GREEN + "."));
diff --git a/me/Danker/commands/GuildOfCommand.java b/me/Danker/commands/GuildOfCommand.java
new file mode 100644
index 0000000..20b759d
--- /dev/null
+++ b/me/Danker/commands/GuildOfCommand.java
@@ -0,0 +1,105 @@
+package me.Danker.commands;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+
+import me.Danker.handlers.APIHandler;
+import me.Danker.handlers.ConfigHandler;
+import net.minecraft.command.CommandBase;
+import net.minecraft.command.CommandException;
+import net.minecraft.command.ICommandSender;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.EnumChatFormatting;
+
+public class GuildOfCommand extends CommandBase {
+
+ @Override
+ public String getCommandName() {
+ return "guildof";
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender arg0) {
+ return getCommandName() + " [name]";
+ }
+
+ @Override
+ public int getRequiredPermissionLevel() {
+ return 0;
+ }
+
+ @Override
+ public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException {
+ // MULTI THREAD DRIFTING
+ new Thread(() -> {
+ APIHandler ah = new APIHandler();
+ ConfigHandler cf = new ConfigHandler();
+ EntityPlayer player = (EntityPlayer) arg0;
+
+ // Check key
+ String key = cf.getString("api", "APIKey");
+ if (key.equals("")) {
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "API key not set. Use /setkey."));
+ }
+
+ // Get UUID for Hypixel API requests
+ String username;
+ String uuid;
+ if (arg1.length == 0) {
+ username = player.getName();
+ uuid = player.getUniqueID().toString().replaceAll("[\\-]", "");
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Checking guild of " + EnumChatFormatting.DARK_GREEN + username));
+ } else {
+ username = arg1[0];
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Checking guild of " + EnumChatFormatting.DARK_GREEN + username));
+ uuid = ah.getUUID(username);
+ }
+
+ // Find guild ID
+ System.out.println("Fetching guild...");
+ String guildURL = "https://api.hypixel.net/guild?player=" + uuid + "&key=" + key;
+ JsonObject guildResponse = ah.getResponse(guildURL);
+ if (!guildResponse.get("success").getAsBoolean()) {
+ String reason = guildResponse.get("cause").getAsString();
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Failed with reason: " + reason));
+ return;
+ }
+
+ System.out.println("Fetching guild stats and members...");
+
+ String guildName = "N/A";
+ String guildMaster = "N/A";
+ // Check if player is in guild
+ if (!guildResponse.get("guild").isJsonNull()) {
+ guildName = guildResponse.get("guild").getAsJsonObject().get("name").getAsString();
+
+ // Loop through members to find guildmaster
+ JsonArray guildMembers = guildResponse.get("guild").getAsJsonObject().get("members").getAsJsonArray();
+ for (JsonElement member : guildMembers) {
+ JsonObject memberObject = member.getAsJsonObject();
+ String memberRank = memberObject.get("rank").getAsString();
+
+ if (memberRank.equals("GUILDMASTER") || memberRank.equals("Guild Master")) {
+ // Get username from UUID
+ String gmUUID = memberObject.get("uuid").getAsString();
+ String gmNameURL = "https://api.mojang.com/user/profiles/" + gmUUID + "/names";
+ JsonArray gmNameResponse = ah.getArrayResponse(gmNameURL);
+
+ String gmName = gmNameResponse.get(gmNameResponse.size() - 1).getAsJsonObject().get("name").getAsString();
+ guildMaster = gmName;
+ break;
+ }
+ }
+ }
+
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.AQUA + "" + EnumChatFormatting.BOLD + "-------------------\n" +
+ EnumChatFormatting.AQUA + " " + username + "'s Guild:\n" +
+ EnumChatFormatting.GREEN + " Guild: " + EnumChatFormatting.DARK_GREEN + EnumChatFormatting.BOLD + guildName + "\n" +
+ EnumChatFormatting.GREEN + " Guildmaster: " + EnumChatFormatting.DARK_GREEN + EnumChatFormatting.BOLD + guildMaster + "\n" +
+ EnumChatFormatting.AQUA + " " + EnumChatFormatting.BOLD + "-------------------"));
+ }).start();
+ }
+
+}
diff --git a/me/Danker/commands/LootCommand.java b/me/Danker/commands/LootCommand.java
index 9beec87..e61fde7 100644
--- a/me/Danker/commands/LootCommand.java
+++ b/me/Danker/commands/LootCommand.java
@@ -84,7 +84,7 @@ public class LootCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return getCommandName() + " [zombie/spider/wolf]";
+ return getCommandName() + " <zombie/spider/wolf>";
}
@Override
@@ -97,7 +97,7 @@ public class LootCommand extends CommandBase {
final EntityPlayer player = (EntityPlayer) arg0;
if (arg1.length == 0) {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /loot [zombie/spider/wolf]"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /loot <zombie/spider/wolf>"));
return;
}
@@ -184,7 +184,7 @@ public class LootCommand extends CommandBase {
EnumChatFormatting.AQUA + " Bosses Since RNG: " + bossesBetween + "\n" +
EnumChatFormatting.GREEN + "" + EnumChatFormatting.BOLD + " -------------------"));
} else {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /loot [zombie/spider/wolf]"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /loot <zombie/spider/wolf>"));
}
}
diff --git a/me/Danker/commands/MoveCommand.java b/me/Danker/commands/MoveCommand.java
index d402680..797cffa 100644
--- a/me/Danker/commands/MoveCommand.java
+++ b/me/Danker/commands/MoveCommand.java
@@ -20,7 +20,7 @@ public class MoveCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return getCommandName() + " [coords/display] [x] [y]";
+ return getCommandName() + " <coords/display> <x> <y>";
}
@Override
@@ -34,7 +34,7 @@ public class MoveCommand extends CommandBase {
final ConfigHandler cf = new ConfigHandler();
if (arg1.length < 2) {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /move [coords/display] [x] [y]"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /move <coords/display> <x> <y>"));
return;
}
@@ -51,7 +51,7 @@ public class MoveCommand extends CommandBase {
cf.writeIntConfig("locations", "displayY", displayXY[1]);
player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Tracker display has been moved to " + EnumChatFormatting.DARK_GREEN + arg1[1] + ", " + arg1[2]));
} else {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /move [coords/display] [x] [y]"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /move <coords/display> <x> <y>"));
}
}
diff --git a/me/Danker/commands/SetkeyCommand.java b/me/Danker/commands/SetkeyCommand.java
index 14f2336..f68ff75 100644
--- a/me/Danker/commands/SetkeyCommand.java
+++ b/me/Danker/commands/SetkeyCommand.java
@@ -18,7 +18,7 @@ public class SetkeyCommand extends CommandBase implements ICommand {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return getCommandName() + " [key]";
+ return getCommandName() + " <key>";
}
@Override
@@ -31,7 +31,7 @@ public class SetkeyCommand extends CommandBase implements ICommand {
final EntityPlayer player = (EntityPlayer)arg0;
if (arg1.length == 0) {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /setkey [key]"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /setkey <key>"));
return;
}
diff --git a/me/Danker/commands/SkillsCommand.java b/me/Danker/commands/SkillsCommand.java
index 00a1e5d..dc70175 100644
--- a/me/Danker/commands/SkillsCommand.java
+++ b/me/Danker/commands/SkillsCommand.java
@@ -182,7 +182,7 @@ public class SkillsCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return getCommandName() + " <name>";
+ return getCommandName() + " [name]";
}
@Override
@@ -315,7 +315,7 @@ public class SkillsCommand extends CommandBase {
EnumChatFormatting.GREEN + " Taming: " + EnumChatFormatting.DARK_GREEN + EnumChatFormatting.BOLD + tamingLevel + "\n" +
EnumChatFormatting.AQUA + " Average Skill Level: " + EnumChatFormatting.GOLD + EnumChatFormatting.BOLD + skillAvg + "\n" +
EnumChatFormatting.AQUA + " True Average Skill Level: " + EnumChatFormatting.GOLD + EnumChatFormatting.BOLD + trueAvg + "\n" +
- EnumChatFormatting.AQUA + "" + EnumChatFormatting.BOLD + "-------------------"));
+ EnumChatFormatting.AQUA + " " + EnumChatFormatting.BOLD + "-------------------"));
}).start();
}
diff --git a/me/Danker/commands/SlayerCommand.java b/me/Danker/commands/SlayerCommand.java
index 090e85f..8f528e6 100644
--- a/me/Danker/commands/SlayerCommand.java
+++ b/me/Danker/commands/SlayerCommand.java
@@ -24,7 +24,7 @@ public class SlayerCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return getCommandName() + " <name>";
+ return getCommandName() + " [name]";
}
@Override
@@ -95,7 +95,7 @@ public class SlayerCommand extends CommandBase {
EnumChatFormatting.AQUA + " Zombie XP: " + EnumChatFormatting.BLUE + EnumChatFormatting.BOLD + NumberFormat.getIntegerInstance().format(zombieXP) + "\n" +
EnumChatFormatting.AQUA + " Spider XP: " + EnumChatFormatting.BLUE + EnumChatFormatting.BOLD + NumberFormat.getIntegerInstance().format(spiderXP) + "\n" +
EnumChatFormatting.AQUA + " Wolf XP: " + EnumChatFormatting.BLUE + EnumChatFormatting.BOLD + NumberFormat.getIntegerInstance().format(wolfXP) + "\n" +
- EnumChatFormatting.AQUA + "" + EnumChatFormatting.BOLD + "-------------------"));
+ EnumChatFormatting.AQUA + " " + EnumChatFormatting.BOLD + "-------------------"));
}).start();
}
diff --git a/me/Danker/commands/ToggleCommand.java b/me/Danker/commands/ToggleCommand.java
index bbcafc1..6baa7af 100644
--- a/me/Danker/commands/ToggleCommand.java
+++ b/me/Danker/commands/ToggleCommand.java
@@ -20,7 +20,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return getCommandName() + " [gparty/coords/list]";
+ return getCommandName() + " <gparty/coords/list>";
}
@Override
@@ -34,7 +34,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
final ConfigHandler cf = new ConfigHandler();
if (arg1.length == 0) {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /toggle [gparty/coords/list]"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /toggle <gparty/coords/list>"));
return;
}
@@ -50,7 +50,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Guild party notifications: " + EnumChatFormatting.DARK_GREEN + gpartyToggled + "\n" +
EnumChatFormatting.GREEN + " Coord/Angle display: " + EnumChatFormatting.DARK_GREEN + coordsToggled));
} else {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /toggle [gparty/coords/list]"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /toggle <gparty/coords/list>"));
}
}
}
diff --git a/me/Danker/handlers/APIHandler.java b/me/Danker/handlers/APIHandler.java
index 94868a2..006842b 100644
--- a/me/Danker/handlers/APIHandler.java
+++ b/me/Danker/handlers/APIHandler.java
@@ -54,6 +54,43 @@ public class APIHandler {
return new JsonObject();
}
+ // Only used for UUID => Username
+ public static JsonArray getArrayResponse(String urlString) {
+ EntityPlayer player = Minecraft.getMinecraft().thePlayer;
+
+ try {
+ URL url = new URL(urlString);
+ HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+ conn.setRequestMethod("GET");
+
+ if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
+ BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
+ String input;
+ StringBuffer response = new StringBuffer();
+
+ while ((input = in.readLine()) != null) {
+ response.append(input);
+ }
+ in.close();
+
+ Gson gson = new Gson();
+ JsonArray array = gson.fromJson(response.toString(), JsonArray.class);
+
+ return array;
+ } else {
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Request failed. HTTP Error Code: " + conn.getResponseCode()));
+ }
+ } catch (MalformedURLException ex) {
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "An error has occured. See logs for more details."));
+ System.err.println(ex);
+ } catch (IOException ex) {
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "An error has occured. See logs for more details."));
+ System.err.println(ex);
+ }
+
+ return new JsonArray();
+ }
+
public static String getUUID(String username) {
Gson gson = new Gson();