aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/Danker/commands
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/Danker/commands')
-rw-r--r--src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java50
-rw-r--r--src/main/java/me/Danker/commands/CustomMusicCommand.java94
-rw-r--r--src/main/java/me/Danker/commands/DHelpCommand.java4
-rw-r--r--src/main/java/me/Danker/commands/DankerGuiCommand.java24
-rw-r--r--src/main/java/me/Danker/commands/DisplayCommand.java11
-rw-r--r--src/main/java/me/Danker/commands/DungeonsCommand.java63
-rw-r--r--src/main/java/me/Danker/commands/FarmLengthCommand.java50
-rw-r--r--src/main/java/me/Danker/commands/LootCommand.java92
-rw-r--r--src/main/java/me/Danker/commands/MoveCommand.java22
-rw-r--r--src/main/java/me/Danker/commands/PlayerCommand.java258
-rw-r--r--src/main/java/me/Danker/commands/ReloadRepoCommand.java42
-rw-r--r--src/main/java/me/Danker/commands/ResetLootCommand.java36
-rw-r--r--src/main/java/me/Danker/commands/ScaleCommand.java18
-rw-r--r--src/main/java/me/Danker/commands/SkillsCommand.java2
-rw-r--r--src/main/java/me/Danker/commands/SkyblockPlayersCommand.java5
-rw-r--r--src/main/java/me/Danker/commands/SlayerCommand.java10
-rw-r--r--src/main/java/me/Danker/commands/ToggleCommand.java218
-rw-r--r--src/main/java/me/Danker/commands/WeightCommand.java105
18 files changed, 1038 insertions, 66 deletions
diff --git a/src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java b/src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java
new file mode 100644
index 0000000..c545447
--- /dev/null
+++ b/src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java
@@ -0,0 +1,50 @@
+package me.Danker.commands;
+
+import me.Danker.DankersSkyblockMod;
+import me.Danker.features.CrystalHollowWaypoints;
+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.BlockPos;
+import net.minecraft.util.ChatComponentText;
+
+public class CrystalHollowWaypointCommand extends CommandBase {
+
+ @Override
+ public String getCommandName() {
+ return "dsmaddcrystalhollowwaypoints";
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender arg0) {
+ return "/" + getCommandName() + " <formatted waypoint>";
+ }
+
+ @Override
+ public int getRequiredPermissionLevel() {
+ return 0;
+ }
+
+ @Override
+ public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException {
+ EntityPlayer player = (EntityPlayer) arg0;
+
+ if (arg1.length == 0) return;
+
+ String[] waypoints = String.join(" ", arg1).split("\\\\n");
+
+ for (String waypoint : waypoints) {
+ String[] parts = waypoint.split("@");
+ String[] coords = parts[1].split(",");
+
+ String location = parts[0];
+ BlockPos pos = new BlockPos(Integer.parseInt(coords[0]), Integer.parseInt(coords[1]), Integer.parseInt(coords[2]));
+ CrystalHollowWaypoints.Waypoint newWaypoint = new CrystalHollowWaypoints.Waypoint(location, pos);
+
+ CrystalHollowWaypoints.waypoints.add(newWaypoint);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Added " + newWaypoint.location + " @ " + newWaypoint.getPos()));
+ }
+ }
+
+}
diff --git a/src/main/java/me/Danker/commands/CustomMusicCommand.java b/src/main/java/me/Danker/commands/CustomMusicCommand.java
index 0e80dd3..c07ab45 100644
--- a/src/main/java/me/Danker/commands/CustomMusicCommand.java
+++ b/src/main/java/me/Danker/commands/CustomMusicCommand.java
@@ -24,7 +24,8 @@ public class CustomMusicCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + " <stop/reload/volume> [dungeonboss/bloodroom/dungeon] [1-100]";
+ return "/" + getCommandName() + " <stop/reload/volume> [dungeonboss/bloodroom/dungeon/hub/island/dungeonhub/farmingislands/" +
+ "goldmine/deepcaverns/dwarvenmines/crystalhollows/spidersden/blazingfortress/end/park] [1-100]";
}
public static String usage(ICommandSender arg0) {
@@ -41,7 +42,8 @@ public class CustomMusicCommand extends CommandBase {
if (args.length == 1) {
return getListOfStringsMatchingLastWord(args, "stop", "reload", "volume");
} else if (args.length == 2) {
- return getListOfStringsMatchingLastWord(args, "dungeonboss", "bloodroom", "dungeon");
+ return getListOfStringsMatchingLastWord(args, "dungeonboss", "bloodroom", "dungeon", "hub", "island", "dungeonhub", "farmingislands", "goldmine",
+ "deepcaverns", "dwarvenmines", "crystalhollows", "spidersden", "blazingfortress", "end", "park");
}
return null;
}
@@ -76,36 +78,98 @@ public class CustomMusicCommand extends CommandBase {
}
int volume = Integer.parseInt(arg1[2]);
- boolean success;
switch (arg1[1].toLowerCase()) {
case "dungeonboss":
- success = CustomMusic.dungeonboss.setVolume(volume);
- if (!success) {
- return;
- }
+ if (!CustomMusic.dungeonboss.setVolume(volume)) return;
CustomMusic.dungeonbossVolume = volume;
ConfigHandler.writeIntConfig("music", "DungeonBossVolume", volume);
break;
case "bloodroom":
- success = CustomMusic.bloodroom.setVolume(volume);
- if (!success) {
- return;
- }
+ if (!CustomMusic.bloodroom.setVolume(volume)) return;
CustomMusic.bloodroomVolume = volume;
ConfigHandler.writeIntConfig("music", "BloodRoomVolume", volume);
break;
case "dungeon":
- success = CustomMusic.dungeon.setVolume(volume);
- if (!success) {
- return;
- }
+ if (!CustomMusic.dungeon.setVolume(volume)) return;
CustomMusic.dungeonVolume = volume;
ConfigHandler.writeIntConfig("music", "DungeonVolume", volume);
break;
+ case "hub":
+ if (!CustomMusic.hub.setVolume(volume)) return;
+
+ CustomMusic.hubVolume = volume;
+ ConfigHandler.writeIntConfig("music", "HubVolume", volume);
+ break;
+ case "island":
+ if (!CustomMusic.island.setVolume(volume)) return;
+
+ CustomMusic.islandVolume = volume;
+ ConfigHandler.writeIntConfig("music", "IslandVolume", volume);
+ break;
+ case "dungeonhub":
+ if (!CustomMusic.dungeonHub.setVolume(volume)) return;
+
+ CustomMusic.dungeonHubVolume = volume;
+ ConfigHandler.writeIntConfig("music", "DungeonHubVolume", volume);
+ break;
+ case "farmingislands":
+ if (!CustomMusic.farmingIslands.setVolume(volume)) return;
+
+ CustomMusic.farmingIslandsVolume = volume;
+ ConfigHandler.writeIntConfig("music", "FarmingIslandsVolume", volume);
+ break;
+ case "goldmine":
+ if (!CustomMusic.goldMine.setVolume(volume)) return;
+
+ CustomMusic.goldMineVolume = volume;
+ ConfigHandler.writeIntConfig("music", "GoldMineVolume", volume);
+ break;
+ case "deepcaverns":
+ if (!CustomMusic.deepCaverns.setVolume(volume)) return;
+
+ CustomMusic.deepCavernsVolume = volume;
+ ConfigHandler.writeIntConfig("music", "DeepCavernsVolume", volume);
+ break;
+ case "dwarvenmines":
+ if (!CustomMusic.dwarvenMines.setVolume(volume)) return;
+
+ CustomMusic.dwarvenMinesVolume = volume;
+ ConfigHandler.writeIntConfig("music", "DwarvenMinesVolume", volume);
+ break;
+ case "crystalhollows":
+ if (!CustomMusic.crystalHollows.setVolume(volume)) return;
+
+ CustomMusic.crystalHollowsVolume = volume;
+ ConfigHandler.writeIntConfig("music", "CrystalHollowsVolume", volume);
+ break;
+ case "spidersden":
+ if (!CustomMusic.spidersDen.setVolume(volume)) return;
+
+ CustomMusic.spidersDenVolume = volume;
+ ConfigHandler.writeIntConfig("music", "SpidersDenVolume", volume);
+ break;
+ case "blazingfortress":
+ if (!CustomMusic.blazingFortress.setVolume(volume)) return;
+
+ CustomMusic.blazingFortressVolume = volume;
+ ConfigHandler.writeIntConfig("music", "BlazingFortressVolume", volume);
+ break;
+ case "end":
+ if (!CustomMusic.end.setVolume(volume)) return;
+
+ CustomMusic.endVolume = volume;
+ ConfigHandler.writeIntConfig("music", "EndVolume", volume);
+ break;
+ case "park":
+ if (!CustomMusic.park.setVolume(volume)) return;
+
+ CustomMusic.parkVolume = volume;
+ ConfigHandler.writeIntConfig("music", "ParkVolume", volume);
+ break;
default:
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0)));
return;
diff --git a/src/main/java/me/Danker/commands/DHelpCommand.java b/src/main/java/me/Danker/commands/DHelpCommand.java
index 8d47576..b88f6cc 100644
--- a/src/main/java/me/Danker/commands/DHelpCommand.java
+++ b/src/main/java/me/Danker/commands/DHelpCommand.java
@@ -56,6 +56,10 @@ public class DHelpCommand extends CommandBase {
EnumChatFormatting.GOLD + LobbyBankCommand.usage(arg0) + EnumChatFormatting.AQUA + " - Uses API to find the average bank total of the lobby, as well the three players with the highest total money in the bank(and purse).\n" +
EnumChatFormatting.GOLD + RepartyCommand.usage(arg0) + EnumChatFormatting.AQUA + " - Disbands and reparties all members in the party.\n" +
EnumChatFormatting.GOLD + CustomMusicCommand.usage(arg0) + EnumChatFormatting.AQUA + " - Stops or reloads the custom music.\n" +
+ EnumChatFormatting.GOLD + PlayerCommand.usage(arg0) + EnumChatFormatting.AQUA + " - Uses API to find skills, slayers, coins and weight of a player.\n" +
+ EnumChatFormatting.GOLD + ReloadConfigCommand.usage(arg0) + EnumChatFormatting.AQUA + " - Reloads Danker's Skyblock Mod config.\n" +
+ EnumChatFormatting.GOLD + ReloadRepoCommand.usage(arg0) + EnumChatFormatting.AQUA + " - Reloads Danker's Skyblock Mod repository.\n" +
+ EnumChatFormatting.GOLD + FarmLengthCommand.usage(arg0) + EnumChatFormatting.AQUA + " - Sets coords to be used for end of farm alert.\n" +
EnumChatFormatting.GREEN + " Open Maddox Menu" + EnumChatFormatting.AQUA + " - M by default.\n" +
EnumChatFormatting.GREEN + " Start/Stop Skill Tracker" + EnumChatFormatting.AQUA + " - Numpad 5 by default.\n"));
}
diff --git a/src/main/java/me/Danker/commands/DankerGuiCommand.java b/src/main/java/me/Danker/commands/DankerGuiCommand.java
index 5076ef7..d6b92eb 100644
--- a/src/main/java/me/Danker/commands/DankerGuiCommand.java
+++ b/src/main/java/me/Danker/commands/DankerGuiCommand.java
@@ -1,6 +1,7 @@
package me.Danker.commands;
import me.Danker.DankersSkyblockMod;
+import me.Danker.features.EndOfFarmAlert;
import me.Danker.features.SkillTracker;
import me.Danker.features.loot.LootDisplay;
import net.minecraft.client.Minecraft;
@@ -13,6 +14,8 @@ import net.minecraft.util.StringUtils;
import java.awt.*;
import java.awt.datatransfer.StringSelection;
+import java.util.Collections;
+import java.util.List;
public class DankerGuiCommand extends CommandBase {
@@ -22,6 +25,11 @@ public class DankerGuiCommand extends CommandBase {
}
@Override
+ public List<String> getCommandAliases() {
+ return Collections.singletonList("dankersskyblockmod");
+ }
+
+ @Override
public String getCommandUsage(ICommandSender arg0) {
return "/" + getCommandName();
}
@@ -74,6 +82,7 @@ public class DankerGuiCommand extends CommandBase {
debug.append("[oruopuzzle][").append(ToggleCommand.oruoToggled).append("]\n");
debug.append("[blazepuzzle][").append(ToggleCommand.blazeToggled).append("]\n");
debug.append("[creeperpuzzle][").append(ToggleCommand.creeperToggled).append("]\n");
+ debug.append("[creeperlines][").append(ToggleCommand.creeperLinesToggled).append("]\n");
debug.append("[waterpuzzle][").append(ToggleCommand.waterToggled).append("]\n");
debug.append("[tictactoepuzzle][").append(ToggleCommand.ticTacToeToggled).append("]\n");
debug.append("[boulderpuzzle][").append(ToggleCommand.boulderToggled).append("]\n");
@@ -88,7 +97,19 @@ public class DankerGuiCommand extends CommandBase {
debug.append("[superpairs][").append(ToggleCommand.superpairsToggled).append("]\n");
debug.append("[hidetooltipsinaddons][").append(ToggleCommand.hideTooltipsInExperimentAddonsToggled).append("]\n");
debug.append("[pickblock][").append(ToggleCommand.swapToPickBlockToggled).append("]\n");
- debug.append("[melodyTooltips][").append(ToggleCommand.melodyTooltips).append("]\n");
+ debug.append("[melodytooltips][").append(ToggleCommand.melodyTooltips).append("]\n");
+ debug.append("[highlightslayers][").append(ToggleCommand.highlightSlayers).append("]\n");
+ debug.append("[highlightarachne][").append(ToggleCommand.highlightArachne).append("]\n");
+ debug.append("[highlightskeletonmasters][").append(ToggleCommand.highlightSkeletonMasters).append("]\n");
+ debug.append("[teammatesinradius][").append(ToggleCommand.teammatesInRadius).append("]\n");
+ debug.append("[gianthp][").append(ToggleCommand.giantHP).append("]\n");
+ debug.append("[hidepetcandy][").append(ToggleCommand.hidePetCandy).append("]\n");
+ debug.append("[customcolourednames][").append(ToggleCommand.customColouredNames).append("]\n");
+ debug.append("[endoffarmalert][").append(ToggleCommand.endOfFarmAlert).append("]\n");
+ debug.append("[gemstonelore][").append(ToggleCommand.gemstoneLore).append("]\n");
+ debug.append("[crystalhollowwaypoints][").append(ToggleCommand.crystalHollowWaypoints).append("]\n");
+ debug.append("[crystalautowaypoints][").append(ToggleCommand.crystalAutoWaypoints).append("]\n");
+ debug.append("[autoacceptreparty][").append(ToggleCommand.autoAcceptReparty).append("]\n");
debug.append("[dungeonbossmusic][").append(ToggleCommand.dungeonBossMusic).append("]\n");
debug.append("[bloodroommusic][").append(ToggleCommand.bloodRoomMusic).append("]\n");
debug.append("[dungeonmusic][").append(ToggleCommand.dungeonMusic).append("]\n");
@@ -105,6 +126,7 @@ public class DankerGuiCommand extends CommandBase {
debug.append("[Current Display][").append(LootDisplay.display).append("]\n");
debug.append("[Auto Display][").append(LootDisplay.auto).append("]\n");
debug.append("[Skill Tracker Visible][").append(SkillTracker.showSkillTracker).append("]\n");
+ debug.append("[Farm Length][").append(EndOfFarmAlert.min).append(" to ").append(EndOfFarmAlert.max).append("]\n");
debug.append("# Problematic Mods\n");
debug.append("[LabyMod][").append(DankersSkyblockMod.usingLabymod).append("]\n");
debug.append("[OAM][").append(DankersSkyblockMod.usingOAM).append("]\n");
diff --git a/src/main/java/me/Danker/commands/DisplayCommand.java b/src/main/java/me/Danker/commands/DisplayCommand.java
index 990e9d1..e248888 100644
--- a/src/main/java/me/Danker/commands/DisplayCommand.java
+++ b/src/main/java/me/Danker/commands/DisplayCommand.java
@@ -21,7 +21,7 @@ public class DisplayCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + " <zombie/spider/wolf/fishing/catacombs/mythological/ghost/auto/off> [winter/festival/spooky/session/f(1-7)]";
+ return "/" + getCommandName() + " <zombie/spider/wolf/enderman/fishing/catacombs/mythological/ghost/auto/off> [winter/festival/spooky/session/f(1-7)]";
}
public static String usage(ICommandSender arg0) {
@@ -36,7 +36,7 @@ public class DisplayCommand extends CommandBase {
@Override
public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) {
if (args.length == 1) {
- return getListOfStringsMatchingLastWord(args, "wolf", "spider", "zombie", "fishing", "catacombs", "mythological", "ghost", "auto", "off");
+ return getListOfStringsMatchingLastWord(args, "wolf", "spider", "zombie", "enderman", "fishing", "catacombs", "mythological", "ghost", "auto", "off");
} else if (args.length == 2 && args[0].equalsIgnoreCase("fishing")) {
return getListOfStringsMatchingLastWord(args, "winter", "festival", "spooky", "session");
} else if (args.length == 2 && args[0].equalsIgnoreCase("catacombs")) {
@@ -82,6 +82,13 @@ public class DisplayCommand extends CommandBase {
LootDisplay.display = "zombie";
}
break;
+ case "enderman":
+ if (showSession) {
+ LootDisplay.display = "enderman_session";
+ } else {
+ LootDisplay.display = "enderman";
+ }
+ break;
case "fishing":
if (arg1.length > 1) {
switch (arg1[1].toLowerCase()) {
diff --git a/src/main/java/me/Danker/commands/DungeonsCommand.java b/src/main/java/me/Danker/commands/DungeonsCommand.java
index 92779dc..3391a08 100644
--- a/src/main/java/me/Danker/commands/DungeonsCommand.java
+++ b/src/main/java/me/Danker/commands/DungeonsCommand.java
@@ -86,9 +86,10 @@ public class DungeonsCommand extends CommandBase {
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()){
+ 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."));
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Failed with reason: " + reason));
+ return;
}
System.out.println("Fetching dungeon stats...");
@@ -111,42 +112,64 @@ public class DungeonsCommand extends CommandBase {
int highestFloor = catacombsObject.get("highest_tier_completed").getAsInt();
JsonObject completionObj = catacombsObject.get("tier_completions").getAsJsonObject();
+ JsonObject catacombsMasterObject = dungeonsObject.get("dungeon_types").getAsJsonObject().get("master_catacombs").getAsJsonObject();
+ boolean hasPlayedMaster = catacombsMasterObject.has("highest_tier_completed");
+
+ int highestMasterFloor = 0;
+ JsonObject completionMasterObj = null;
+ if (hasPlayedMaster) {
+ highestMasterFloor = catacombsMasterObject.get("highest_tier_completed").getAsInt();
+ completionMasterObj = catacombsMasterObject.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");
+ 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 || hasPlayedMaster ? "\n": "");
+ }
+ for (int i = 1; i <= highestMasterFloor; i++) {
+ if (completionMasterObj != null && completionMasterObj.has(String.valueOf(i))) {
+ completionsHoverString
.append(EnumChatFormatting.GOLD)
- .append(i == 0 ? "Entrance: " : "Floor " + i + ": ")
+ .append("Master Floor ")
+ .append(i)
+ .append(": ")
.append(EnumChatFormatting.RESET)
- .append(completionObj.get(String.valueOf(i)).getAsInt())
- .append(i < highestFloor ? "\n": "");
+ .append(completionMasterObj.get(String.valueOf(i)).getAsInt())
+ .append(i < highestMasterFloor ? "\n": "");
+ }
}
- ChatComponentText completions = new ChatComponentText(EnumChatFormatting.GOLD + " Highest Floor Completed: " + highestFloor);
-
+ ChatComponentText completions;
+ if (hasPlayedMaster) {
+ completions = new ChatComponentText(EnumChatFormatting.GOLD + " Highest Floor Completed: Master " + highestMasterFloor);
+ } else {
+ 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))
- );
+ .appendSibling(new ChatComponentText(delimiter)));
}).start();
}
}
diff --git a/src/main/java/me/Danker/commands/FarmLengthCommand.java b/src/main/java/me/Danker/commands/FarmLengthCommand.java
new file mode 100644
index 0000000..6a28430
--- /dev/null
+++ b/src/main/java/me/Danker/commands/FarmLengthCommand.java
@@ -0,0 +1,50 @@
+package me.Danker.commands;
+
+import me.Danker.DankersSkyblockMod;
+import me.Danker.features.EndOfFarmAlert;
+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;
+
+public class FarmLengthCommand extends CommandBase {
+
+ @Override
+ public String getCommandName() {
+ return "dsmfarmlength";
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender arg0) {
+ return "/" + getCommandName() + " <min coords> <max coords>";
+ }
+
+ public static String usage(ICommandSender arg0) {
+ return new FarmLengthCommand().getCommandUsage(arg0);
+ }
+
+ @Override
+ public int getRequiredPermissionLevel() {
+ return 0;
+ }
+
+ @Override
+ public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException {
+ EntityPlayer player = (EntityPlayer) arg0;
+
+ if (arg1.length == 0) {
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Current Range: " + DankersSkyblockMod.SECONDARY_COLOUR + EndOfFarmAlert.min + DankersSkyblockMod.MAIN_COLOUR + " to " + DankersSkyblockMod.SECONDARY_COLOUR + EndOfFarmAlert.max));
+ } else if (arg1.length < 2) {
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0)));
+ return;
+ }
+
+ EndOfFarmAlert.min = Double.parseDouble(arg1[0]);
+ EndOfFarmAlert.max = Double.parseDouble(arg1[1]);
+ ConfigHandler.writeDoubleConfig("misc", "farmMin", EndOfFarmAlert.min);
+ ConfigHandler.writeDoubleConfig("misc", "farmMax", EndOfFarmAlert.max);
+ }
+
+}
diff --git a/src/main/java/me/Danker/commands/LootCommand.java b/src/main/java/me/Danker/commands/LootCommand.java
index 51347a3..d0b4272 100644
--- a/src/main/java/me/Danker/commands/LootCommand.java
+++ b/src/main/java/me/Danker/commands/LootCommand.java
@@ -24,7 +24,7 @@ public class LootCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + " <zombie/spider/wolf/fishing/catacombs/mythological> [winter/festival/spooky/f(1-7)/session]";
+ return "/" + getCommandName() + " <zombie/spider/wolf/enderman/fishing/catacombs/mythological> [winter/festival/spooky/f(1-7)/session]";
}
public static String usage(ICommandSender arg0) {
@@ -39,7 +39,7 @@ public class LootCommand extends CommandBase {
@Override
public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) {
if (args.length == 1) {
- return getListOfStringsMatchingLastWord(args, "wolf", "spider", "zombie", "fishing", "catacombs", "mythological");
+ return getListOfStringsMatchingLastWord(args, "wolf", "spider", "zombie", "enderman", "fishing", "catacombs", "mythological");
} else if (args.length == 2 && args[0].equalsIgnoreCase("fishing")) {
return getListOfStringsMatchingLastWord(args, "winter", "festival", "spooky", "session");
} else if (args.length == 2 && args[0].equalsIgnoreCase("catacombs")) {
@@ -223,6 +223,7 @@ public class LootCommand extends CommandBase {
EnumChatFormatting.DARK_GREEN + EnumChatFormatting.BOLD + " Zombie Loot Summary (Current Session):\n" +
EnumChatFormatting.GOLD + " Revs Killed: " + nf.format(LootTracker.zombieRevsSession) + "\n" +
EnumChatFormatting.GREEN + " Revenant Flesh: " + nf.format(LootTracker.zombieRevFleshSession) + "\n" +
+ EnumChatFormatting.GREEN + " Revenant Viscera: " + nf.format(LootTracker.zombieRevVisceraSession) + "\n" +
EnumChatFormatting.BLUE + " Foul Flesh: " + drop20 + "\n" +
EnumChatFormatting.DARK_GREEN + " Pestilence Runes: " +LootTracker.zombiePestilencesSession + "\n" +
EnumChatFormatting.WHITE + " Smite VI Books: " + LootTracker.zombieBooksSession + "\n" +
@@ -259,6 +260,7 @@ public class LootCommand extends CommandBase {
EnumChatFormatting.DARK_GREEN + EnumChatFormatting.BOLD + " Zombie Loot Summary:\n" +
EnumChatFormatting.GOLD + " Revs Killed: " + nf.format(LootTracker.zombieRevs) + "\n" +
EnumChatFormatting.GREEN + " Revenant Flesh: " + nf.format(LootTracker.zombieRevFlesh) + "\n" +
+ EnumChatFormatting.GREEN + " Revenant Viscera: " + nf.format(LootTracker.zombieRevViscera) + "\n" +
EnumChatFormatting.BLUE + " Foul Flesh: " + drop20 + "\n" +
EnumChatFormatting.DARK_GREEN + " Pestilence Runes: " + LootTracker.zombiePestilences + "\n" +
EnumChatFormatting.WHITE + " Smite VI Books: " + LootTracker.zombieBooks + "\n" +
@@ -273,6 +275,92 @@ public class LootCommand extends CommandBase {
EnumChatFormatting.AQUA + " Bosses Since RNG: " + bossesBetween + "\n" +
EnumChatFormatting.GREEN + EnumChatFormatting.BOLD + " -------------------"));
break;
+ case "enderman":
+ if (showSession) {
+ if (LootTracker.endermanTimeSession == -1) {
+ timeBetween = "Never";
+ } else {
+ timeBetween = Utils.getTimeBetween(LootTracker.endermanTimeSession, timeNow);
+ }
+ if (LootTracker.endermanBossesSession == -1) {
+ bossesBetween = "Never";
+ } else {
+ bossesBetween = nf.format(LootTracker.endermanBossesSession);
+ }
+ if (ToggleCommand.slayerCountTotal) {
+ drop20 = nf.format(LootTracker.endermanTAPSession);
+ } else {
+ drop20 = nf.format(LootTracker.endermanTAPDropsSession) + " times";
+ }
+
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.DARK_PURPLE + "" + EnumChatFormatting.BOLD + "-------------------\n" +
+ EnumChatFormatting.DARK_GREEN + EnumChatFormatting.BOLD + " Enderman Loot Summary (Current Session):\n" +
+ EnumChatFormatting.GOLD + " Voidglooms Killed: " + nf.format(LootTracker.endermanVoidgloomsSession) + "\n" +
+ EnumChatFormatting.DARK_GRAY + " Null Spheres: " + nf.format(LootTracker.endermanNullSpheresSession) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + " Arrow Poison: " + drop20 + "\n" +
+ EnumChatFormatting.LIGHT_PURPLE + " Endersnake Runes: " + LootTracker.endermanEndersnakesSession + "\n" +
+ EnumChatFormatting.DARK_GREEN + " Summoning Eyes: " + LootTracker.endermanSummoningEyesSession + "\n" +
+ EnumChatFormatting.AQUA + " Mana Steal Books: " + LootTracker.endermanManaBooksSession + "\n" +
+ EnumChatFormatting.BLUE + " Transmission Tuners: " + LootTracker.endermanTunersSession + "\n" +
+ EnumChatFormatting.YELLOW + " Null Atoms: " + LootTracker.endermanAtomsSession + "\n" +
+ EnumChatFormatting.AQUA + " Espresso Machines: " + LootTracker.endermanEspressoMachinesSession + "\n" +
+ EnumChatFormatting.WHITE + " Smarty Pants Books: " + LootTracker.endermanSmartyBooksSession + "\n" +
+ EnumChatFormatting.LIGHT_PURPLE + " End Runes: " + LootTracker.endermanEndRunesSession + "\n" +
+ EnumChatFormatting.RED + " Blood Chalices: " + LootTracker.endermanChalicesSession + "\n" +
+ EnumChatFormatting.RED + " Sinful Dice: " + LootTracker.endermanDiceSession + "\n" +
+ EnumChatFormatting.DARK_PURPLE + " Artifact Upgrader: " + LootTracker.endermanArtifactsSession + "\n" +
+ EnumChatFormatting.DARK_PURPLE + " Enderman Skins: " + LootTracker.endermanSkinsSession + "\n" +
+ EnumChatFormatting.GRAY + " Enchant Runes: " + LootTracker.endermanEnchantRunesSession + "\n" +
+ EnumChatFormatting.GOLD + " Etherwarp Mergers: " + LootTracker.endermanMergersSession + "\n" +
+ EnumChatFormatting.GOLD + " Judgement Cores: " + LootTracker.endermanCoresSession + "\n" +
+ EnumChatFormatting.RED + " Ender Slayer VII Books: " + LootTracker.endermanEnderBooksSession + "\n" +
+ EnumChatFormatting.AQUA + " Time Since RNG: " + timeBetween + "\n" +
+ EnumChatFormatting.AQUA + " Bosses Since RNG: " + bossesBetween + "\n" +
+ EnumChatFormatting.DARK_PURPLE + EnumChatFormatting.BOLD + " -------------------"));
+ return;
+ }
+
+ if (LootTracker.endermanTime == -1) {
+ timeBetween = "Never";
+ } else {
+ timeBetween = Utils.getTimeBetween(LootTracker.endermanTime, timeNow);
+ }
+ if (LootTracker.endermanBosses == -1) {
+ bossesBetween = "Never";
+ } else {
+ bossesBetween = nf.format(LootTracker.endermanBosses);
+ }
+ if (ToggleCommand.slayerCountTotal) {
+ drop20 = nf.format(LootTracker.endermanTAP);
+ } else {
+ drop20 = nf.format(LootTracker.endermanTAPDrops) + " times";
+ }
+
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.DARK_PURPLE + "" + EnumChatFormatting.BOLD + "-------------------\n" +
+ EnumChatFormatting.DARK_GREEN + EnumChatFormatting.BOLD + " Enderman Loot Summary:\n" +
+ EnumChatFormatting.GOLD + " Voidglooms Killed: " + nf.format(LootTracker.endermanVoidglooms) + "\n" +
+ EnumChatFormatting.DARK_GRAY + " Null Spheres: " + nf.format(LootTracker.endermanNullSpheres) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + " Arrow Poison: " + drop20 + "\n" +
+ EnumChatFormatting.LIGHT_PURPLE + " Endersnake Runes: " + LootTracker.endermanEndersnakes + "\n" +
+ EnumChatFormatting.DARK_GREEN + " Summoning Eyes: " + LootTracker.endermanSummoningEyes + "\n" +
+ EnumChatFormatting.AQUA + " Mana Steal Books: " + LootTracker.endermanManaBooks + "\n" +
+ EnumChatFormatting.BLUE + " Transmission Tuners: " + LootTracker.endermanTuners + "\n" +
+ EnumChatFormatting.YELLOW + " Null Atoms: " + LootTracker.endermanAtoms + "\n" +
+ EnumChatFormatting.AQUA + " Espresso Machines: " + LootTracker.endermanEspressoMachines + "\n" +
+ EnumChatFormatting.WHITE + " Smarty Pants Books: " + LootTracker.endermanSmartyBooks + "\n" +
+ EnumChatFormatting.LIGHT_PURPLE + " End Runes: " + LootTracker.endermanEndRunes + "\n" +
+ EnumChatFormatting.RED + " Blood Chalices: " + LootTracker.endermanChalices + "\n" +
+ EnumChatFormatting.RED + " Sinful Dice: " + LootTracker.endermanDice + "\n" +
+ EnumChatFormatting.DARK_PURPLE + " Artifact Upgrader: " + LootTracker.endermanArtifacts + "\n" +
+ EnumChatFormatting.DARK_PURPLE + " Enderman Skins: " + LootTracker.endermanSkins + "\n" +
+ EnumChatFormatting.GRAY + " Enchant Runes: " + LootTracker.endermanEnchantRunes + "\n" +
+ EnumChatFormatting.GOLD + " Etherwarp Mergers: " + LootTracker.endermanMergers + "\n" +
+ EnumChatFormatting.GOLD + " Judgement Cores: " + LootTracker.endermanCores + "\n" +
+ EnumChatFormatting.RED + " Ender Slayer VII Books: " + LootTracker.endermanEnderBooks + "\n" +
+ EnumChatFormatting.AQUA + " Time Since RNG: " + timeBetween + "\n" +
+ EnumChatFormatting.AQUA + " Bosses Since RNG: " + bossesBetween + "\n" +
+ EnumChatFormatting.DARK_PURPLE + EnumChatFormatting.BOLD + " -------------------"));
+ break;
case "fishing":
if (arg1.length > 1) {
if (arg1[1].equalsIgnoreCase("winter")) {
diff --git a/src/main/java/me/Danker/commands/MoveCommand.java b/src/main/java/me/Danker/commands/MoveCommand.java
index 6fe2939..b17794c 100644
--- a/src/main/java/me/Danker/commands/MoveCommand.java
+++ b/src/main/java/me/Danker/commands/MoveCommand.java
@@ -23,6 +23,8 @@ public class MoveCommand extends CommandBase {
public static int[] waterAnswerXY = {0, 0};
public static int[] bonzoTimerXY = {0, 0};
public static int[] golemTimerXY = {0 ,0};
+ public static int[] teammatesInRadiusXY = {0, 0};
+ public static int[] giantHPXY = {0, 0};
@Override
public String getCommandName() {
@@ -31,7 +33,7 @@ public class MoveCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + " <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer/bonzotimer/golemtimer> <x> <y>";
+ return "/" + getCommandName() + " <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer/bonzotimer/golemtimer/teammatesinradius/gianthp> <x> <y>";
}
public static String usage(ICommandSender arg0) {
@@ -46,7 +48,9 @@ public class MoveCommand extends CommandBase {
@Override
public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) {
if (args.length == 1) {
- return getListOfStringsMatchingLastWord(args, "coords", "display", "dungeontimer", "skill50", "lividhp", "caketimer", "skilltracker", "wateranswer", "bonzotimer", "golemtimer");
+ return getListOfStringsMatchingLastWord(args, "coords", "display", "dungeontimer", "skill50", "lividhp", "caketimer",
+ "skilltracker", "wateranswer", "bonzotimer", "golemtimer", "teammatesinradius",
+ "gianthp");
}
return null;
}
@@ -131,6 +135,20 @@ public class MoveCommand extends CommandBase {
ConfigHandler.writeIntConfig("locations", "golemTimerY", golemTimerXY[1]);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Golem timer has been moved to " + DankersSkyblockMod.SECONDARY_COLOUR + arg1[1] + ", " + arg1[2]));
break;
+ case "teammatesinradius":
+ teammatesInRadiusXY[0] = Integer.parseInt(arg1[1]);
+ teammatesInRadiusXY[1] = Integer.parseInt(arg1[2]);
+ ConfigHandler.writeIntConfig("locations", "teammatesInRadiusX", teammatesInRadiusXY[0]);
+ ConfigHandler.writeIntConfig("locations", "teammatesInRadiusY", teammatesInRadiusXY[1]);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Teammates in radius has been moved to " + DankersSkyblockMod.SECONDARY_COLOUR + arg1[1] + ", " + arg1[2]));
+ break;
+ case "gianthp":
+ giantHPXY[0] = Integer.parseInt(arg1[1]);
+ giantHPXY[1] = Integer.parseInt(arg1[2]);
+ ConfigHandler.writeIntConfig("locations", "giantHPX", giantHPXY[0]);
+ ConfigHandler.writeIntConfig("locations", "giantHPY", giantHPXY[1]);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Giant HP has been moved to " + DankersSkyblockMod.SECONDARY_COLOUR + arg1[1] + ", " + arg1[2]));
+ break;
default:
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0)));
}
diff --git a/src/main/java/me/Danker/commands/PlayerCommand.java b/src/main/java/me/Danker/commands/PlayerCommand.java
new file mode 100644
index 0000000..6236168
--- /dev/null
+++ b/src/main/java/me/Danker/commands/PlayerCommand.java
@@ -0,0 +1,258 @@
+package me.Danker.commands;
+
+import com.google.gson.JsonObject;
+import me.Danker.DankersSkyblockMod;
+import me.Danker.handlers.APIHandler;
+import me.Danker.handlers.ConfigHandler;
+import me.Danker.utils.Utils;
+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.BlockPos;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.EnumChatFormatting;
+
+import java.text.NumberFormat;
+import java.util.List;
+import java.util.Locale;
+
+public class PlayerCommand extends CommandBase {
+
+ @Override
+ public String getCommandName() {
+ return "player";
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender arg0) {
+ return "/" + getCommandName() + " [name]";
+ }
+
+ public static String usage(ICommandSender arg0) {
+ return new SkillsCommand().getCommandUsage(arg0);
+ }
+
+ @Override
+ public int getRequiredPermissionLevel() {
+ return 0;
+ }
+
+ @Override
+ public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) {
+ if (args.length == 1) {
+ return Utils.getMatchingPlayers(args[0]);
+ }
+ return null;
+ }
+
+ @Override
+ public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException {
+ // MULTI THREAD DRIFTING
+ new Thread(() -> {
+ EntityPlayer player = (EntityPlayer) arg0;
+
+ // Check key
+ String key = ConfigHandler.getString("api", "APIKey");
+ if (key.equals("")) {
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "API key not set. Use /setkey."));
+ return;
+ }
+
+ // 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(DankersSkyblockMod.MAIN_COLOUR + "Checking stats of " + DankersSkyblockMod.SECONDARY_COLOUR + username));
+ } else {
+ username = arg1[0];
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Checking stats of " + DankersSkyblockMod.SECONDARY_COLOUR + username));
+ uuid = APIHandler.getUUID(username);
+ }
+
+ // Find stats of latest profile
+ String latestProfile = APIHandler.getLatestProfileID(uuid, key);
+ if (latestProfile == null) return;
+
+ String profileURL = "https://api.hypixel.net/skyblock/profile?profile=" + latestProfile + "&key=" + key;
+ System.out.println("Fetching profile...");
+ JsonObject profileResponse = APIHandler.getResponse(profileURL);
+ if (!profileResponse.get("success").getAsBoolean()) {
+ String reason = profileResponse.get("cause").getAsString();
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Failed with reason: " + reason));
+ return;
+ }
+
+ // Skills
+ System.out.println("Fetching skills...");
+ JsonObject userObject = profileResponse.get("profile").getAsJsonObject().get("members").getAsJsonObject().get(uuid).getAsJsonObject();
+
+ double farmingLevel = 0;
+ double miningLevel = 0;
+ double combatLevel = 0;
+ double foragingLevel = 0;
+ double fishingLevel = 0;
+ double enchantingLevel = 0;
+ double alchemyLevel = 0;
+ double tamingLevel = 0;
+
+ if (userObject.has("experience_skill_farming") || userObject.has("experience_skill_mining") || userObject.has("experience_skill_combat") || userObject.has("experience_skill_foraging") || userObject.has("experience_skill_fishing") || userObject.has("experience_skill_enchanting") || userObject.has("experience_skill_alchemy")) {
+ if (userObject.has("experience_skill_farming")) {
+ farmingLevel = Utils.xpToSkillLevel(userObject.get("experience_skill_farming").getAsDouble(), 60);
+ farmingLevel = (double) Math.round(farmingLevel * 100) / 100;
+ }
+ if (userObject.has("experience_skill_mining")) {
+ miningLevel = Utils.xpToSkillLevel(userObject.get("experience_skill_mining").getAsDouble(), 60);
+ miningLevel = (double) Math.round(miningLevel * 100) / 100;
+ }
+ if (userObject.has("experience_skill_combat")) {
+ combatLevel = Utils.xpToSkillLevel(userObject.get("experience_skill_combat").getAsDouble(), 60);
+ combatLevel = (double) Math.round(combatLevel * 100) / 100;
+ }
+ if (userObject.has("experience_skill_foraging")) {
+ foragingLevel = Utils.xpToSkillLevel(userObject.get("experience_skill_foraging").getAsDouble(), 50);
+ foragingLevel = (double) Math.round(foragingLevel * 100) / 100;
+ }
+ if (userObject.has("experience_skill_fishing")) {
+ fishingLevel = Utils.xpToSkillLevel(userObject.get("experience_skill_fishing").getAsDouble(), 50);
+ fishingLevel = (double) Math.round(fishingLevel * 100) / 100;
+ }
+ if (userObject.has("experience_skill_enchanting")) {
+ enchantingLevel = Utils.xpToSkillLevel(userObject.get("experience_skill_enchanting").getAsDouble(), 60);
+ enchantingLevel = (double) Math.round(enchantingLevel * 100) / 100;
+ }
+ if (userObject.has("experience_skill_alchemy")) {
+ alchemyLevel = Utils.xpToSkillLevel(userObject.get("experience_skill_alchemy").getAsDouble(), 50);
+ alchemyLevel = (double) Math.round(alchemyLevel * 100) / 100;
+ }
+ if (userObject.has("experience_skill_taming")) {
+ tamingLevel = Utils.xpToSkillLevel(userObject.get("experience_skill_taming").getAsDouble(), 50);
+ tamingLevel = (double) Math.round(tamingLevel * 100) / 100;
+ }
+ } else {
+ // Get skills from achievement API, will be floored
+
+ String playerURL = "https://api.hypixel.net/player?uuid=" + uuid + "&key=" + key;
+ System.out.println("Fetching skills from achievement API");
+ JsonObject playerObject = APIHandler.getResponse(playerURL);
+
+ if (!playerObject.get("success").getAsBoolean()) {
+ String reason = profileResponse.get("cause").getAsString();
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Failed with reason: " + reason));
+ return;
+ }
+
+ JsonObject achievementObject = playerObject.get("player").getAsJsonObject().get("achievements").getAsJsonObject();
+ if (achievementObject.has("skyblock_harvester")) {
+ farmingLevel = achievementObject.get("skyblock_harvester").getAsInt();
+ }
+ if (achievementObject.has("skyblock_excavator")) {
+ miningLevel = achievementObject.get("skyblock_excavator").getAsInt();
+ }
+ if (achievementObject.has("skyblock_combat")) {
+ combatLevel = achievementObject.get("skyblock_combat").getAsInt();
+ }
+ if (achievementObject.has("skyblock_gatherer")) {
+ foragingLevel = Math.min(achievementObject.get("skyblock_gatherer").getAsInt(), 50);
+ }
+ if (achievementObject.has("skyblock_angler")) {
+ fishingLevel = Math.min(achievementObject.get("skyblock_angler").getAsInt(), 50);
+ }
+ if (achievementObject.has("skyblock_augmentation")) {
+ enchantingLevel = achievementObject.get("skyblock_augmentation").getAsInt();
+ }
+ if (achievementObject.has("skyblock_concoctor")) {
+ alchemyLevel = Math.min(achievementObject.get("skyblock_concoctor").getAsInt(), 50);
+ }
+ if (achievementObject.has("skyblock_domesticator")) {
+ tamingLevel = Math.min(achievementObject.get("skyblock_domesticator").getAsInt(), 50);
+ }
+ }
+
+ double skillAvg = (farmingLevel + miningLevel + combatLevel + foragingLevel + fishingLevel + enchantingLevel + alchemyLevel + tamingLevel) / 8;
+ skillAvg = (double) Math.round(skillAvg * 100) / 100;
+ double trueAvg = (Math.floor(farmingLevel) + Math.floor(miningLevel) + Math.floor(combatLevel) + Math.floor(foragingLevel) + Math.floor(fishingLevel) + Math.floor(enchantingLevel) + Math.floor(alchemyLevel) + Math.floor(tamingLevel)) / 8;
+
+ // Slayers
+ System.out.println("Fetching slayer stats...");
+ JsonObject slayersObject = profileResponse.get("profile").getAsJsonObject().get("members").getAsJsonObject().get(uuid).getAsJsonObject().get("slayer_bosses").getAsJsonObject();
+ // Zombie
+ int zombieXP = 0;
+ if (slayersObject.get("zombie").getAsJsonObject().has("xp")) {
+ zombieXP = slayersObject.get("zombie").getAsJsonObject().get("xp").getAsInt();
+ }
+ // Spider
+ int spiderXP = 0;
+ if (slayersObject.get("spider").getAsJsonObject().has("xp")) {
+ spiderXP = slayersObject.get("spider").getAsJsonObject().get("xp").getAsInt();
+ }
+ // Wolf
+ int wolfXP = 0;
+ if (slayersObject.get("wolf").getAsJsonObject().has("xp")) {
+ wolfXP = slayersObject.get("wolf").getAsJsonObject().get("xp").getAsInt();
+ }
+ // Enderman
+ int endermanXP = 0;
+ if (slayersObject.get("enderman").getAsJsonObject().has("xp")) {
+ endermanXP = slayersObject.get("enderman").getAsJsonObject().get("xp").getAsInt();
+ }
+
+ // Bank
+ System.out.println("Fetching bank + purse coins...");
+ double bankCoins = 0;
+ double purseCoins = profileResponse.get("profile").getAsJsonObject().get("members").getAsJsonObject().get(uuid).getAsJsonObject().get("coin_purse").getAsDouble();
+ purseCoins = Math.floor(purseCoins * 100.0) / 100.0;
+
+ // Check for bank api
+ if (profileResponse.get("profile").getAsJsonObject().has("banking")) {
+ bankCoins = profileResponse.get("profile").getAsJsonObject().get("banking").getAsJsonObject().get("balance").getAsDouble();
+ bankCoins = Math.floor(bankCoins * 100.0) / 100.0;
+ }
+
+ // Weight
+ System.out.println("Fetching weight from Senither API...");
+ String weightURL = "https://hypixel-api.senither.com/v1/profiles/" + uuid + "/weight?key=" + key;
+ JsonObject weightResponse = APIHandler.getResponse(weightURL);
+ if (weightResponse.get("status").getAsInt() != 200) {
+ String reason = weightResponse.get("reason").getAsString();
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Failed with reason: " + reason));
+ return;
+ }
+
+ double weight = weightResponse.get("data").getAsJsonObject().get("weight").getAsDouble();
+ double overflow = weightResponse.get("data").getAsJsonObject().get("weight_overflow").getAsDouble();
+
+ NumberFormat nf = NumberFormat.getIntegerInstance(Locale.US);
+ NumberFormat nfd = NumberFormat.getNumberInstance(Locale.US);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.DELIMITER_COLOUR + "" + EnumChatFormatting.BOLD + "-------------------\n" +
+ EnumChatFormatting.AQUA + " " + username + "'s Skills:\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Farming: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + farmingLevel + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Mining: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + miningLevel + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Combat: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + combatLevel + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Foraging: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + foragingLevel + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Fishing: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + fishingLevel + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Enchanting: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + enchantingLevel + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Alchemy: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + alchemyLevel + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Taming: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + tamingLevel + "\n" +
+ EnumChatFormatting.AQUA + " Average Skill Level: " + DankersSkyblockMod.SKILL_AVERAGE_COLOUR + EnumChatFormatting.BOLD + skillAvg + "\n" +
+ EnumChatFormatting.AQUA + " True Average Skill Level: " + DankersSkyblockMod.SKILL_AVERAGE_COLOUR + EnumChatFormatting.BOLD + trueAvg + "\n\n" +
+ EnumChatFormatting.AQUA + " " + username + "'s Total Slayer XP: " + EnumChatFormatting.GOLD + EnumChatFormatting.BOLD + nf.format(zombieXP + spiderXP + wolfXP + endermanXP) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Zombie XP: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + nf.format(zombieXP) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Spider XP: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + nf.format(spiderXP) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Wolf XP: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + nf.format(wolfXP) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Enderman XP: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + nf.format(endermanXP) + "\n\n" +
+ EnumChatFormatting.AQUA + " " + username + "'s Coins:\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Bank: " + (bankCoins == 0 ? EnumChatFormatting.RED + "Bank API disabled." : EnumChatFormatting.GOLD + nf.format(bankCoins)) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Purse: " + EnumChatFormatting.GOLD + nf.format(purseCoins) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Total: " + EnumChatFormatting.GOLD + nf.format(bankCoins + purseCoins) + "\n\n" +
+ EnumChatFormatting.AQUA + " " + username + "'s Weight:\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Total Weight: " + DankersSkyblockMod.VALUE_COLOUR + nfd.format(weight + overflow) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Weight: " + DankersSkyblockMod.VALUE_COLOUR + nfd.format(weight) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Overflow: " + DankersSkyblockMod.VALUE_COLOUR + nfd.format(overflow) + "\n" +
+ DankersSkyblockMod.DELIMITER_COLOUR + " " + EnumChatFormatting.BOLD + "-------------------"));
+ }).start();
+ }
+
+}
diff --git a/src/main/java/me/Danker/commands/ReloadRepoCommand.java b/src/main/java/me/Danker/commands/ReloadRepoCommand.java
new file mode 100644
index 0000000..a50a5c8
--- /dev/null
+++ b/src/main/java/me/Danker/commands/ReloadRepoCommand.java
@@ -0,0 +1,42 @@
+package me.Danker.commands;
+
+import me.Danker.DankersSkyblockMod;
+import me.Danker.utils.Utils;
+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;
+
+public class ReloadRepoCommand extends CommandBase {
+
+ @Override
+ public String getCommandName() {
+ return "reloaddsmrepo";
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender arg0) {
+ return "/" + getCommandName();
+ }
+
+ public static String usage(ICommandSender arg0) {
+ return new ReloadRepoCommand().getCommandUsage(arg0);
+ }
+
+ @Override
+ public int getRequiredPermissionLevel() {
+ return 0;
+ }
+
+ @Override
+ public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException {
+ // MULTI THREAD DRIFTING
+ new Thread(() -> {
+ EntityPlayer player = (EntityPlayer) arg0;
+ Utils.refreshRepo();
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Refreshed Danker's Skyblock Mod repo."));
+ }).start();
+ }
+
+}
diff --git a/src/main/java/me/Danker/commands/ResetLootCommand.java b/src/main/java/me/Danker/commands/ResetLootCommand.java
index eac4c88..e13b1a5 100644
--- a/src/main/java/me/Danker/commands/ResetLootCommand.java
+++ b/src/main/java/me/Danker/commands/ResetLootCommand.java
@@ -25,7 +25,7 @@ public class ResetLootCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + "<zombie/spider/wolf/fishing/mythological/catacombs/confirm/cancel>";
+ return "/" + getCommandName() + "<zombie/spider/wolf/enderman/fishing/mythological/catacombs/confirm/cancel>";
}
public static String usage(ICommandSender arg0) {
@@ -44,7 +44,7 @@ public class ResetLootCommand extends CommandBase {
if (confirmReset) {
return getListOfStringsMatchingLastWord(args, "confirm", "cancel");
} else {
- return getListOfStringsMatchingLastWord(args, "zombie", "spider", "wolf", "fishing", "mythological", "catacombs");
+ return getListOfStringsMatchingLastWord(args, "zombie", "spider", "wolf", "enderman", "fishing", "mythological", "catacombs");
}
}
@@ -72,6 +72,9 @@ public class ResetLootCommand extends CommandBase {
case "wolf":
resetWolf();
break;
+ case "enderman":
+ resetEnderman();
+ break;
case "fishing":
resetFishing();
break;
@@ -98,6 +101,7 @@ public class ResetLootCommand extends CommandBase {
case "zombie":
case "spider":
case "wolf":
+ case "enderman":
case "fishing":
case "mythological":
case "catacombs":
@@ -120,6 +124,7 @@ public class ResetLootCommand extends CommandBase {
static void resetZombie() {
LootTracker.zombieRevsSession = 0;
LootTracker.zombieRevFleshSession = 0;
+ LootTracker.zombieRevVisceraSession = 0;
LootTracker.zombieFoulFleshSession = 0;
LootTracker.zombieFoulFleshDropsSession = 0;
LootTracker.zombiePestilencesSession = 0;
@@ -168,6 +173,33 @@ public class ResetLootCommand extends CommandBase {
ConfigHandler.deleteCategory("wolf");
ConfigHandler.reloadConfig();
}
+
+ static void resetEnderman() {
+ LootTracker.endermanVoidgloomsSession = 0;
+ LootTracker.endermanNullSpheresSession = 0;
+ LootTracker.endermanTAPSession = 0;
+ LootTracker.endermanTAPDropsSession = 0;
+ LootTracker.endermanEndersnakesSession = 0;
+ LootTracker.endermanSummoningEyesSession = 0;
+ LootTracker.endermanManaBooksSession = 0;
+ LootTracker.endermanTunersSession = 0;
+ LootTracker.endermanAtomsSession = 0;
+ LootTracker.endermanEspressoMachinesSession = 0;
+ LootTracker.endermanSmartyBooksSession = 0;
+ LootTracker.endermanEndRunesSession = 0;
+ LootTracker.endermanChalicesSession = 0;
+ LootTracker.endermanDiceSession = 0;
+ LootTracker.endermanArtifactsSession = 0;
+ LootTracker.endermanSkinsSession = 0;
+ LootTracker.endermanMergersSession = 0;
+ LootTracker.endermanCoresSession = 0;
+ LootTracker.endermanEnchantRunesSession = 0;
+ LootTracker.endermanEnderBooksSession = 0;
+ LootTracker.endermanTimeSession = -1;
+ LootTracker.endermanBossesSession = -1;
+ ConfigHandler.deleteCategory("enderman");
+ ConfigHandler.reloadConfig();
+ }
static void resetFishing() {
LootTracker.seaCreaturesSession = 0;
diff --git a/src/main/java/me/Danker/commands/ScaleCommand.java b/src/main/java/me/Danker/commands/ScaleCommand.java
index b27ac50..def0e57 100644
--- a/src/main/java/me/Danker/commands/ScaleCommand.java
+++ b/src/main/java/me/Danker/commands/ScaleCommand.java
@@ -23,6 +23,8 @@ public class ScaleCommand extends CommandBase {
public static double waterAnswerScale;
public static double bonzoTimerScale;
public static double golemTimerScale;
+ public static double teammatesInRadiusScale;
+ public static double giantHPScale;
@Override
public String getCommandName() {
@@ -31,7 +33,7 @@ public class ScaleCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + " <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer/bonzotimer/golemtimer> <size (0.1 - 10)>";
+ return "/" + getCommandName() + " <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer/bonzotimer/golemtimer/teammatesinradius/gianthp> <size (0.1 - 10)>";
}
public static String usage(ICommandSender arg0) {
@@ -46,7 +48,9 @@ public class ScaleCommand extends CommandBase {
@Override
public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) {
if (args.length == 1) {
- return getListOfStringsMatchingLastWord(args, "coords", "display", "dungeontimer", "skill50", "lividhp", "caketimer", "skilltracker", "wateranswer", "bonzotimer", "golemtimer");
+ return getListOfStringsMatchingLastWord(args, "coords", "display", "dungeontimer", "skill50", "lividhp", "caketimer",
+ "skilltracker", "wateranswer", "bonzotimer", "golemtimer", "teammatesinradius",
+ "gianthp");
}
return null;
}
@@ -117,6 +121,16 @@ public class ScaleCommand extends CommandBase {
ConfigHandler.writeDoubleConfig("scales", "golemTimerScale", golemTimerScale);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Golem timer has been scaled to " + DankersSkyblockMod.SECONDARY_COLOUR + golemTimerScale + "x"));
break;
+ case "teammatesinradius":
+ teammatesInRadiusScale = scaleAmount;
+ ConfigHandler.writeDoubleConfig("scales", "teammatesInRadiusScale", teammatesInRadiusScale);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Teammates in radius has been scaled to " + DankersSkyblockMod.SECONDARY_COLOUR + teammatesInRadiusScale + "x"));
+ break;
+ case "gianthp":
+ giantHPScale = scaleAmount;
+ ConfigHandler.writeDoubleConfig("scales", "giantHPScale", giantHPScale);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Giant hp has been scaled to " + DankersSkyblockMod.SECONDARY_COLOUR + giantHPScale + "x"));
+ break;
default:
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0)));
}
diff --git a/src/main/java/me/Danker/commands/SkillsCommand.java b/src/main/java/me/Danker/commands/SkillsCommand.java
index a17fedb..6195e81 100644
--- a/src/main/java/me/Danker/commands/SkillsCommand.java
+++ b/src/main/java/me/Danker/commands/SkillsCommand.java
@@ -19,7 +19,7 @@ public class SkillsCommand extends CommandBase {
@Override
public String getCommandName() {
- return "skills";
+ return "skill";
}
@Override
diff --git a/src/main/java/me/Danker/commands/SkyblockPlayersCommand.java b/src/main/java/me/Danker/commands/SkyblockPlayersCommand.java
index f8db0af..2d05815 100644
--- a/src/main/java/me/Danker/commands/SkyblockPlayersCommand.java
+++ b/src/main/java/me/Danker/commands/SkyblockPlayersCommand.java
@@ -75,6 +75,7 @@ public class SkyblockPlayersCommand extends CommandBase {
int goldMine = 0; // mining_1
int deepCaverns = 0; // mining_2
int dwarvenMines = 0; // mining_3
+ int crystalHollows = 0; // crystal_hollows
int spidersDen = 0; // combat_1
int blazingFortress = 0; // combat_2
int end = 0; // combat_3
@@ -109,6 +110,9 @@ public class SkyblockPlayersCommand extends CommandBase {
if (skyblockPlayers.has("mining_3")) {
dwarvenMines = skyblockPlayers.get("mining_3").getAsInt();
}
+ if (skyblockPlayers.has("crystal_hollows")) {
+ crystalHollows = skyblockPlayers.get("crystal_hollows").getAsInt();
+ }
if (skyblockPlayers.has("combat_1")) {
spidersDen = skyblockPlayers.get("combat_1").getAsInt();
}
@@ -144,6 +148,7 @@ public class SkyblockPlayersCommand extends CommandBase {
DankersSkyblockMod.TYPE_COLOUR + " Gold Mine: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(goldMine) + " / " + Utils.getPercentage(goldMine, skyblockTotalPlayers) + "%\n" +
DankersSkyblockMod.TYPE_COLOUR + " Deep Caverns: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(deepCaverns) + " / " + Utils.getPercentage(deepCaverns, skyblockTotalPlayers) + "%\n" +
DankersSkyblockMod.TYPE_COLOUR + " Dwarven Mines: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(dwarvenMines) + " / " + Utils.getPercentage(dwarvenMines, skyblockTotalPlayers) + "%\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Crystal Hollows: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(crystalHollows) + " / " + Utils.getPercentage(crystalHollows, skyblockTotalPlayers) + "%\n" +
DankersSkyblockMod.TYPE_COLOUR + " Spider's Den: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(spidersDen) + " / " + Utils.getPercentage(spidersDen, skyblockTotalPlayers) + "%\n" +
DankersSkyblockMod.TYPE_COLOUR + " Blazing Fortress: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(blazingFortress) + " / " + Utils.getPercentage(blazingFortress, skyblockTotalPlayers) + "%\n" +
DankersSkyblockMod.TYPE_COLOUR + " The End: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(end) + " / " + Utils.getPercentage(end, skyblockTotalPlayers) + "%\n" +
diff --git a/src/main/java/me/Danker/commands/SlayerCommand.java b/src/main/java/me/Danker/commands/SlayerCommand.java
index 91a1a61..0efac3f 100644
--- a/src/main/java/me/Danker/commands/SlayerCommand.java
+++ b/src/main/java/me/Danker/commands/SlayerCommand.java
@@ -27,7 +27,7 @@ public class SlayerCommand extends CommandBase {
@Override
public List<String> getCommandAliases() {
- return Collections.singletonList("slayer");
+ return Collections.singletonList("slayers");
}
@Override
@@ -107,13 +107,19 @@ public class SlayerCommand extends CommandBase {
if (slayersObject.get("wolf").getAsJsonObject().has("xp")) {
wolfXP = slayersObject.get("wolf").getAsJsonObject().get("xp").getAsInt();
}
+ // Enderman
+ int endermanXP = 0;
+ if (slayersObject.get("enderman").getAsJsonObject().has("xp")) {
+ endermanXP = slayersObject.get("enderman").getAsJsonObject().get("xp").getAsInt();
+ }
NumberFormat nf = NumberFormat.getIntegerInstance(Locale.US);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.DELIMITER_COLOUR + "" + EnumChatFormatting.BOLD + "-------------------\n" +
- EnumChatFormatting.AQUA + " " + username + "'s Total XP: " + EnumChatFormatting.GOLD + EnumChatFormatting.BOLD + nf.format(zombieXP + spiderXP + wolfXP) + "\n" +
+ EnumChatFormatting.AQUA + " " + username + "'s Total XP: " + EnumChatFormatting.GOLD + EnumChatFormatting.BOLD + nf.format(zombieXP + spiderXP + wolfXP + endermanXP) + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Zombie XP: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + nf.format(zombieXP) + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Spider XP: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + nf.format(spiderXP) + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Wolf XP: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + nf.format(wolfXP) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Enderman XP: " + DankersSkyblockMod.VALUE_COLOUR + EnumChatFormatting.BOLD + nf.format(endermanXP) + "\n" +
DankersSkyblockMod.DELIMITER_COLOUR + " " + EnumChatFormatting.BOLD + "-------------------"));
}).start();
diff --git a/src/main/java/me/Danker/commands/ToggleCommand.java b/src/main/java/me/Danker/commands/ToggleCommand.java
index a6f20fc..7d1020a 100644
--- a/src/main/java/me/Danker/commands/ToggleCommand.java
+++ b/src/main/java/me/Danker/commands/ToggleCommand.java
@@ -14,6 +14,8 @@ import net.minecraft.util.ChatComponentText;
import java.util.List;
public class ToggleCommand extends CommandBase implements ICommand {
+ // i hate this file so much
+ // Some of these end with toggled and some don't, I don't want to go back and fix them all for consistency
public static boolean gpartyToggled;
public static boolean coordsToggled;
public static boolean goldenToggled;
@@ -33,6 +35,16 @@ public class ToggleCommand extends CommandBase implements ICommand {
public static boolean cakeTimerToggled;
public static boolean highlightSlayers;
public static boolean highlightArachne;
+ public static boolean highlightSkeletonMasters;
+ public static boolean teammatesInRadius;
+ public static boolean giantHP;
+ public static boolean hidePetCandy;
+ public static boolean customColouredNames;
+ public static boolean endOfFarmAlert;
+ public static boolean gemstoneLore;
+ public static boolean crystalHollowWaypoints;
+ public static boolean crystalAutoWaypoints;
+ public static boolean autoAcceptReparty;
// Chat Messages
public static boolean sceptreMessages;
public static boolean midasStaffMessages;
@@ -56,6 +68,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
public static boolean oruoToggled;
public static boolean blazeToggled;
public static boolean creeperToggled;
+ public static boolean creeperLinesToggled;
public static boolean waterToggled;
public static boolean ticTacToeToggled;
public static boolean boulderToggled;
@@ -75,6 +88,18 @@ public class ToggleCommand extends CommandBase implements ICommand {
public static boolean dungeonBossMusic;
public static boolean bloodRoomMusic;
public static boolean dungeonMusic;
+ public static boolean hubMusic;
+ public static boolean islandMusic;
+ public static boolean dungeonHubMusic;
+ public static boolean farmingIslandsMusic;
+ public static boolean goldMineMusic;
+ public static boolean deepCavernsMusic;
+ public static boolean dwarvenMinesMusic;
+ public static boolean crystalHollowsMusic;
+ public static boolean spidersDenMusic;
+ public static boolean blazingFortressMusic;
+ public static boolean endMusic;
+ public static boolean parkMusic;
@Override
public String getCommandName() {
@@ -83,21 +108,23 @@ public class ToggleCommand extends CommandBase implements ICommand {
@Override
public String getCommandUsage(ICommandSender arg0) {
-
return "/" + getCommandName() + " <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/ghostdisplay/chatmaddox/spiritbearalert/" +
"sceptremessages/petcolors/dungeontimer/golemalerts/expertiselore/" + //ghosttimer
"skill50display/outlinetext/midasstaffmessages/implosionmessages/healmessages/cooldownmessages/" +
"manamessages/killcombomessages/caketimer/lowhealthnotify/lividsolver/stopsalvagestarred/" +
"notifyslayerslain/necronnotifications/bonzotimer/threemanpuzzle/oruopuzzle/blazepuzzle/" +
- "creeperpuzzle/waterpuzzle/tictactoepuzzle/boulderpuzzle/silverfishpuzzle/icewalkpuzzle/watchermessage/" +
+ "creeperpuzzle/creeperlines/waterpuzzle/tictactoepuzzle/boulderpuzzle/silverfishpuzzle/icewalkpuzzle/watchermessage/" +
"startswithterminal/selectallterminal/clickinorderterminal/" +
"ultrasequencer/chronomatron/superpairs/hidetooltipsinaddons/pickblock/" +
- "melodytooltips/highlightslayers/highlightarachne/dungeonbossmusic/bloodroommusic/" +
- "dungeonmusic/list>";
+ "melodytooltips/highlightslayers/highlightarachne/highlightskeletonmasters/teammatesinradius/" +
+ "gianthp/hidepetcandy/customcolorednames/endoffarmalert/gemstonelore/crystalhollowwaypoints/crystalautowaypoints/" +
+ "autoacceptreparty/dungeonbossmusic/bloodroommusic/dungeonmusic/hubmusic/islandmusic/dungeonhubmusic/" +
+ "farmingislandsmusic/goldminemusic/deepcavernsmusic/crystalhollowsmusic/spidersdenmusic/blazingfortressmusic/endmusic/" +
+ "parkmusic/list>";
}
public static String usage(ICommandSender arg0) {
- return new ToggleCommand().getCommandUsage(arg0);
+ return "/toggle <too many to list>";
}
@Override
@@ -116,12 +143,17 @@ public class ToggleCommand extends CommandBase implements ICommand {
"killcombomessages", "caketimer", "lowhealthnotify", "autoskilltracker", "lividsolver",
"stopsalvagestarred", "notifyslayerslain", "necronnotifications",
"bonzotimer", "threemanpuzzle", "oruopuzzle", "blazepuzzle",
- "creeperpuzzle", "waterpuzzle", "tictactoepuzzle", "boulderpuzzle",
+ "creeperpuzzle", "creeperlines", "waterpuzzle", "tictactoepuzzle", "boulderpuzzle",
"silverfishpuzzle", "icewalkpuzzle", "watchermessage", "startswithterminal",
"selectallterminal", "clickinorderterminal",
"ultrasequencer", "chronomatron", "superpairs",
"hidetooltipsinaddons", "pickblock", "melodytooltips", "highlightslayers",
- "dungeonbossmusic", "bloodroommusic", "dungeonmusic", "list");
+ "highlightskeletonmasters", "dungeonbossmusic", "bloodroommusic", "dungeonmusic",
+ "teammatesinradius", "gianthp", "hidepetcandy", "customcolorednames", "endoffarmalert",
+ "gemstonelore", "crystalhollowwaypoints", "crystalautowaypoints", "autoacceptreparty",
+ "hubmusic", "islandmusic", "dungeonhubmusic", "farmingislandsmusic", "goldminemusic",
+ "deepcavernsmusic", "dwarvenminesmusic", "crystalhollowsmusic", "spidersdenmusic", "blazingfortressmusic",
+ "endmusic", "parkmusic", "list");
}
return null;
}
@@ -285,7 +317,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
case "bonzotimer":
bonzoTimerToggled = !bonzoTimerToggled;
ConfigHandler.writeBooleanConfig("toggles", "BonzoTimer", bonzoTimerToggled);
- player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Bonzo's Mask timer has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + necronNotificationsToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Bonzo's Mask timer has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + bonzoTimerToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
break;
case "autoskilltracker":
autoSkillTrackerToggled = !autoSkillTrackerToggled;
@@ -312,6 +344,11 @@ public class ToggleCommand extends CommandBase implements ICommand {
ConfigHandler.writeBooleanConfig("toggles", "CreeperPuzzle", creeperToggled);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Creeper puzzle solver has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + creeperToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
break;
+ case "creeperlines":
+ creeperLinesToggled = !creeperLinesToggled;
+ ConfigHandler.writeBooleanConfig("toggles", "CreeperLines", creeperLinesToggled);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Creeper lines has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + creeperLinesToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
case "waterpuzzle":
waterToggled = !waterToggled;
ConfigHandler.writeBooleanConfig("toggles", "WaterPuzzle", waterToggled);
@@ -385,17 +422,69 @@ public class ToggleCommand extends CommandBase implements ICommand {
case "melodytooltips":
melodyTooltips = !melodyTooltips;
ConfigHandler.writeBooleanConfig("toggles", "MelodyTooltips", melodyTooltips);
- player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Hide tooltips in Melody's Harp " + DankersSkyblockMod.SECONDARY_COLOUR + melodyTooltips + DankersSkyblockMod.MAIN_COLOUR + "."));
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Hide tooltips in Melody's Harp has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + melodyTooltips + DankersSkyblockMod.MAIN_COLOUR + "."));
break;
case "highlightslayers":
highlightSlayers = !highlightSlayers;
ConfigHandler.writeBooleanConfig("toggles", "HighlightSlayers", highlightSlayers);
- player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Highlight Slayer Bosses " + DankersSkyblockMod.SECONDARY_COLOUR + highlightSlayers + DankersSkyblockMod.MAIN_COLOUR + "."));
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Highlight Slayer Bosses has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + highlightSlayers + DankersSkyblockMod.MAIN_COLOUR + "."));
break;
- case "highlightArachne":
+ case "highlightarachne":
highlightArachne = !highlightArachne;
ConfigHandler.writeBooleanConfig("toggles", "HighlightArachne", highlightArachne);
- player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Highlight Arachne " + DankersSkyblockMod.SECONDARY_COLOUR + highlightArachne + DankersSkyblockMod.MAIN_COLOUR + "."));
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Highlight Arachne has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + highlightArachne + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "highlightskeletonmasters":
+ highlightSkeletonMasters = !highlightSkeletonMasters;
+ ConfigHandler.writeBooleanConfig("toggles", "HighlightSkeletonMasters", highlightSkeletonMasters);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Highlight Skeleton Masters has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + highlightSkeletonMasters + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "teammatesinradius":
+ teammatesInRadius = !teammatesInRadius;
+ ConfigHandler.writeBooleanConfig("toggles", "TeammatesInRadius", teammatesInRadius);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Teammates in radius has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + teammatesInRadius + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "gianthp":
+ giantHP = !giantHP;
+ ConfigHandler.writeBooleanConfig("toggles", "GiantHP", giantHP);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Giant HP display has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + giantHP + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "hidepetcandy":
+ hidePetCandy = !hidePetCandy;
+ ConfigHandler.writeBooleanConfig("toggles", "HidePetCandy", hidePetCandy);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Hide pet candy has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + hidePetCandy + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "customcolorednames":
+ case "customcolourednames":
+ customColouredNames = !customColouredNames;
+ ConfigHandler.writeBooleanConfig("toggles", "CustomColouredNames", customColouredNames);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom name colors has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + customColouredNames + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "endoffarmalert":
+ endOfFarmAlert = !endOfFarmAlert;
+ ConfigHandler.writeBooleanConfig("toggles", "EndOfFarmAlert", endOfFarmAlert);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "End of farm alert has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + endOfFarmAlert + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "gemstonelore":
+ gemstoneLore = !gemstoneLore;
+ ConfigHandler.writeBooleanConfig("toggles", "GemstoneLore", gemstoneLore);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Gemstone in lore has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + gemstoneLore + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "crystalhollowwaypoints":
+ crystalHollowWaypoints = !crystalHollowWaypoints;
+ ConfigHandler.writeBooleanConfig("toggles", "CrystalHollowWaypoints", crystalHollowWaypoints);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Crystal Hollows waypoints has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + crystalHollowWaypoints + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "crystalautowaypoints":
+ crystalAutoWaypoints = !crystalAutoWaypoints;
+ ConfigHandler.writeBooleanConfig("toggles", "CrystalAutoWaypoints", crystalAutoWaypoints);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Auto Crystal Hollows waypoints has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + crystalAutoWaypoints + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "autoacceptreparty":
+ autoAcceptReparty = !autoAcceptReparty;
+ ConfigHandler.writeBooleanConfig("toggles", "AutoAcceptReparty", autoAcceptReparty);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Auto accept reparty has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + autoAcceptReparty + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
case "dungeonbossmusic":
dungeonBossMusic = !dungeonBossMusic;
CustomMusic.dungeonboss.stop();
@@ -414,6 +503,78 @@ public class ToggleCommand extends CommandBase implements ICommand {
ConfigHandler.writeBooleanConfig("toggles", "DungeonMusic", dungeonMusic);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom dungeon music has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + dungeonMusic + DankersSkyblockMod.MAIN_COLOUR + "."));
break;
+ case "hubmusic":
+ hubMusic = !hubMusic;
+ CustomMusic.hub.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "HubMusic", hubMusic);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom hub music has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + hubMusic + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "islandmusic":
+ islandMusic = !islandMusic;
+ CustomMusic.island.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "IslandMusic", islandMusic);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom island music has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + islandMusic + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "dungeonhubmusic":
+ dungeonHubMusic = !dungeonHubMusic;
+ CustomMusic.dungeonHub.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "DungeonHubMusic", dungeonHubMusic);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom dungeon hub music has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + dungeonHubMusic + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "farmingislandsmusic":
+ farmingIslandsMusic = !farmingIslandsMusic;
+ CustomMusic.farmingIslands.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "FarmingIslandsMusic", farmingIslandsMusic);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom farming islands music has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + farmingIslandsMusic + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "goldminemusic":
+ goldMineMusic = !goldMineMusic;
+ CustomMusic.goldMine.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "GoldMineMusic", goldMineMusic);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom gold mine music has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + goldMineMusic + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "deepcavernsmusic":
+ deepCavernsMusic = !deepCavernsMusic;
+ CustomMusic.deepCaverns.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "DeepCavernsMusic", deepCavernsMusic);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom deep caverns music has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + deepCavernsMusic + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "dwarvenminesmusic":
+ dwarvenMinesMusic = !dwarvenMinesMusic;
+ CustomMusic.dwarvenMines.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "DwarvenMinesMusic", dwarvenMinesMusic);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom dwarven mines music has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + dwarvenMinesMusic + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "crystalhollowsmusic":
+ crystalHollowsMusic = !crystalHollowsMusic;
+ CustomMusic.crystalHollows.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "CrystalHollowsMusic", crystalHollowsMusic);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom crystal hollows music has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + crystalHollowsMusic + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "spidersdenmusic":
+ spidersDenMusic = !spidersDenMusic;
+ CustomMusic.spidersDen.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "SpidersDenMusic", spidersDenMusic);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom spider's den music has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + spidersDenMusic + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "blazingfortressmusic":
+ blazingFortressMusic = !blazingFortressMusic;
+ CustomMusic.blazingFortress.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "BlazingFortressMusic", blazingFortressMusic);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom blazing fortress music has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + blazingFortressMusic + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "endmusic":
+ endMusic = !endMusic;
+ CustomMusic.end.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "EndMusic", endMusic);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom end music has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + endMusic + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "parkmusic":
+ parkMusic = !parkMusic;
+ CustomMusic.park.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "DungeonMusic", parkMusic);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom park music has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + parkMusic + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
case "list":
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.TYPE_COLOUR + "Guild party notifications: " + DankersSkyblockMod.VALUE_COLOUR + gpartyToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Coord/Angle display: " + DankersSkyblockMod.VALUE_COLOUR + coordsToggled + "\n" +
@@ -443,6 +604,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
DankersSkyblockMod.TYPE_COLOUR + " Oruo trivia solver: " + DankersSkyblockMod.VALUE_COLOUR + oruoToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Blaze puzzle solver: " + DankersSkyblockMod.VALUE_COLOUR + blazeToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Creeper puzzle solver: " + DankersSkyblockMod.VALUE_COLOUR + creeperToggled + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Creeper lines: " + DankersSkyblockMod.VALUE_COLOUR + creeperLinesToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Water puzzle solver: " + DankersSkyblockMod.VALUE_COLOUR + waterToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Tic tac toe puzzle solver: " + DankersSkyblockMod.VALUE_COLOUR + ticTacToeToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Boulder puzzle solver: " + DankersSkyblockMod.VALUE_COLOUR + boulderToggled + "\n" +
@@ -455,13 +617,35 @@ public class ToggleCommand extends CommandBase implements ICommand {
DankersSkyblockMod.TYPE_COLOUR + " Chronomatron solver: " + DankersSkyblockMod.VALUE_COLOUR + chronomatronToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Superpairs solver: " + DankersSkyblockMod.VALUE_COLOUR + superpairsToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Hide tooltips in experiment addons: " + DankersSkyblockMod.VALUE_COLOUR + hideTooltipsInExperimentAddonsToggled + "\n" +
- DankersSkyblockMod.TYPE_COLOUR + " Auto-swap to pick block " + DankersSkyblockMod.VALUE_COLOUR + swapToPickBlockToggled + "\n" +
- DankersSkyblockMod.TYPE_COLOUR + " Hide tooltips in Melody's Harp " + DankersSkyblockMod.VALUE_COLOUR + melodyTooltips + "\n" +
- DankersSkyblockMod.TYPE_COLOUR + " Highlight Slayer Bosses " + DankersSkyblockMod.VALUE_COLOUR + highlightSlayers + "\n" +
- DankersSkyblockMod.TYPE_COLOUR + " Highlight Arachne Boss " + DankersSkyblockMod.VALUE_COLOUR + highlightArachne + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Auto-swap to pick block: " + DankersSkyblockMod.VALUE_COLOUR + swapToPickBlockToggled + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Hide tooltips in Melody's Harp: " + DankersSkyblockMod.VALUE_COLOUR + melodyTooltips + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Highlight Slayer Bosses: " + DankersSkyblockMod.VALUE_COLOUR + highlightSlayers + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Highlight Arachne Boss: " + DankersSkyblockMod.VALUE_COLOUR + highlightArachne + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Highlight Skeleton Masters: " + DankersSkyblockMod.VALUE_COLOUR + highlightSkeletonMasters + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Teammates in radius: " + DankersSkyblockMod.VALUE_COLOUR + teammatesInRadius + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Giant HP display: " + DankersSkyblockMod.VALUE_COLOUR + giantHP + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Hide pet candy: " + DankersSkyblockMod.VALUE_COLOUR + hidePetCandy + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Custom name colors: " + DankersSkyblockMod.VALUE_COLOUR + customColouredNames + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " End of farm alert: " + DankersSkyblockMod.VALUE_COLOUR + endOfFarmAlert + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Gemstone in lore: " + DankersSkyblockMod.VALUE_COLOUR + gemstoneLore + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Crystal Hollows waypoints: " + DankersSkyblockMod.VALUE_COLOUR + crystalHollowWaypoints + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Auto Crystal Hollows waypoints: " + DankersSkyblockMod.VALUE_COLOUR + crystalAutoWaypoints + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Auto accept reparty: " + DankersSkyblockMod.VALUE_COLOUR + autoAcceptReparty + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Custom dungeon boss music: " + DankersSkyblockMod.VALUE_COLOUR + dungeonBossMusic + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Custom blood room music: " + DankersSkyblockMod.VALUE_COLOUR + bloodRoomMusic + "\n" +
- DankersSkyblockMod.TYPE_COLOUR + " Custom dungeon music: " + DankersSkyblockMod.VALUE_COLOUR + dungeonMusic
+ DankersSkyblockMod.TYPE_COLOUR + " Custom dungeon music: " + DankersSkyblockMod.VALUE_COLOUR + dungeonMusic + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Custom hub music: " + DankersSkyblockMod.VALUE_COLOUR + hubMusic + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Custom island music: " + DankersSkyblockMod.VALUE_COLOUR + islandMusic + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Custom dungeon hub music: " + DankersSkyblockMod.VALUE_COLOUR + dungeonHubMusic + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Custom farming islands music: " + DankersSkyblockMod.VALUE_COLOUR + farmingIslandsMusic + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Custom gold mine music: " + DankersSkyblockMod.VALUE_COLOUR + goldMineMusic + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Custom deep caverns music: " + DankersSkyblockMod.VALUE_COLOUR + deepCavernsMusic + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Custom dwarven mines music: " + DankersSkyblockMod.VALUE_COLOUR + dwarvenMinesMusic + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Custom crystal hollows music: " + DankersSkyblockMod.VALUE_COLOUR + crystalHollowsMusic + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Custom spider's den music: " + DankersSkyblockMod.VALUE_COLOUR + spidersDenMusic + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Custom blazing fortress music: " + DankersSkyblockMod.VALUE_COLOUR + blazingFortressMusic + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Custom end music: " + DankersSkyblockMod.VALUE_COLOUR + endMusic + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Custom park music: " + DankersSkyblockMod.VALUE_COLOUR + parkMusic
));
break;
default:
diff --git a/src/main/java/me/Danker/commands/WeightCommand.java b/src/main/java/me/Danker/commands/WeightCommand.java
new file mode 100644
index 0000000..41c59d8
--- /dev/null
+++ b/src/main/java/me/Danker/commands/WeightCommand.java
@@ -0,0 +1,105 @@
+package me.Danker.commands;
+
+import com.google.gson.JsonObject;
+import me.Danker.DankersSkyblockMod;
+import me.Danker.handlers.APIHandler;
+import me.Danker.handlers.ConfigHandler;
+import me.Danker.utils.Utils;
+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.BlockPos;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.EnumChatFormatting;
+
+import java.text.NumberFormat;
+import java.util.List;
+import java.util.Locale;
+
+public class WeightCommand extends CommandBase {
+
+ @Override
+ public String getCommandName() {
+ return "weight";
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender arg0) {
+ return "/" + getCommandName() + " [name]";
+ }
+
+ public static String usage(ICommandSender arg0) {
+ return new WeightCommand().getCommandUsage(arg0);
+ }
+
+ @Override
+ public int getRequiredPermissionLevel() {
+ return 0;
+ }
+
+ @Override
+ public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) {
+ if (args.length == 1) {
+ return Utils.getMatchingPlayers(args[0]);
+ }
+ return null;
+ }
+
+ @Override
+ public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException {
+ // MULTI THREAD DRIFTING
+ new Thread(() -> {
+ EntityPlayer player = (EntityPlayer) arg0;
+
+ // Check key
+ String key = ConfigHandler.getString("api", "APIKey");
+ if (key.equals("")) {
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "API key not set. Use /setkey."));
+ return;
+ }
+
+ // 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(DankersSkyblockMod.MAIN_COLOUR + "Checking weight of " + DankersSkyblockMod.SECONDARY_COLOUR + username));
+ } else {
+ username = arg1[0];
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Checking weight of " + DankersSkyblockMod.SECONDARY_COLOUR + username));
+ uuid = APIHandler.getUUID(username);
+ }
+
+ System.out.println("Fetching weight from Senither API...");
+ String weightURL = "https://hypixel-api.senither.com/v1/profiles/" + uuid + "/weight?key=" + key;
+ JsonObject weightResponse = APIHandler.getResponse(weightURL);
+ if (weightResponse.get("status").getAsInt() != 200) {
+ String reason = weightResponse.get("reason").getAsString();
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Failed with reason: " + reason));
+ return;
+ }
+
+ JsonObject data = weightResponse.get("data").getAsJsonObject();
+ double weight = data.get("weight").getAsDouble();
+ double overflow = data.get("weight_overflow").getAsDouble();
+ double skillWeight = data.get("skills").getAsJsonObject().get("weight").getAsDouble();
+ double skillOverflow = data.get("skills").getAsJsonObject().get("weight_overflow").getAsDouble();
+ double slayerWeight = data.get("slayers").getAsJsonObject().get("weight").getAsDouble();
+ double slayerOverflow = data.get("slayers").getAsJsonObject().get("weight_overflow").getAsDouble();
+ double dungeonWeight = data.get("dungeons").getAsJsonObject().get("weight").getAsDouble();
+ double dungeonOverflow = data.get("dungeons").getAsJsonObject().get("weight_overflow").getAsDouble();
+
+ NumberFormat nf = NumberFormat.getNumberInstance(Locale.US);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.DELIMITER_COLOUR + "" + EnumChatFormatting.BOLD + "-------------------\n" +
+ EnumChatFormatting.AQUA + " " + username + "'s Weight:\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Total Weight: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(weight + overflow) + " (" + nf.format(weight) + " + " + nf.format(overflow) + ")\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Skill Weight: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(skillWeight + skillOverflow) + " (" + nf.format(skillWeight) + " + " + nf.format(skillOverflow) + ")\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Slayers Weight: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(slayerWeight + slayerOverflow) + " (" + nf.format(slayerWeight) + " + " + nf.format(slayerOverflow) + ")\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Dungeons Weight: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(dungeonWeight + dungeonOverflow) + " (" + nf.format(dungeonWeight) + " + " + nf.format(dungeonOverflow) + ")\n" +
+ DankersSkyblockMod.DELIMITER_COLOUR + " " + EnumChatFormatting.BOLD + "-------------------"));
+ }).start();
+ }
+
+}