aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/Danker
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/Danker')
-rw-r--r--src/main/java/me/Danker/DankersSkyblockMod.java5
-rw-r--r--src/main/java/me/Danker/commands/DHelpCommand.java1
-rw-r--r--src/main/java/me/Danker/commands/DankerGuiCommand.java3
-rw-r--r--src/main/java/me/Danker/commands/DisplayCommand.java11
-rw-r--r--src/main/java/me/Danker/commands/LobbyBankCommand.java139
-rw-r--r--src/main/java/me/Danker/commands/ToggleCommand.java62
-rw-r--r--src/main/java/me/Danker/features/ArachneESP.java87
-rw-r--r--src/main/java/me/Danker/features/AutoDisplay.java3
-rw-r--r--src/main/java/me/Danker/features/BlockAbilities.java12
-rw-r--r--src/main/java/me/Danker/features/HideTooltipsInExperiments.java3
-rw-r--r--src/main/java/me/Danker/features/SlayerESP.java121
-rw-r--r--src/main/java/me/Danker/features/loot/LootDisplay.java30
-rw-r--r--src/main/java/me/Danker/features/loot/LootTracker.java50
-rw-r--r--src/main/java/me/Danker/gui/DankerGui.java44
-rw-r--r--src/main/java/me/Danker/gui/DisplayGui.java10
-rw-r--r--src/main/java/me/Danker/gui/OnlySlayerGui.java16
-rw-r--r--src/main/java/me/Danker/handlers/ConfigHandler.java19
17 files changed, 593 insertions, 23 deletions
diff --git a/src/main/java/me/Danker/DankersSkyblockMod.java b/src/main/java/me/Danker/DankersSkyblockMod.java
index 4a40a61..a7c440b 100644
--- a/src/main/java/me/Danker/DankersSkyblockMod.java
+++ b/src/main/java/me/Danker/DankersSkyblockMod.java
@@ -87,6 +87,7 @@ public class DankersSkyblockMod {
@EventHandler
public void init(FMLInitializationEvent event) {
MinecraftForge.EVENT_BUS.register(this);
+ MinecraftForge.EVENT_BUS.register(new ArachneESP());
MinecraftForge.EVENT_BUS.register(new ArrowTerminalSolver());
MinecraftForge.EVENT_BUS.register(new AutoDisplay());
MinecraftForge.EVENT_BUS.register(new AutoSwapToPickBlock());
@@ -123,6 +124,7 @@ public class DankersSkyblockMod {
MinecraftForge.EVENT_BUS.register(new SilverfishSolver());
MinecraftForge.EVENT_BUS.register(new Skill50Display());
MinecraftForge.EVENT_BUS.register(new SkillTracker());
+ MinecraftForge.EVENT_BUS.register(new SlayerESP());
MinecraftForge.EVENT_BUS.register(new SpamHider());
MinecraftForge.EVENT_BUS.register(new SpiritBearAlert());
MinecraftForge.EVENT_BUS.register(new StartsWithSolver());
@@ -163,6 +165,7 @@ public class DankersSkyblockMod {
ClientCommandHandler.instance.registerCommand(new GetkeyCommand());
ClientCommandHandler.instance.registerCommand(new GuildOfCommand());
ClientCommandHandler.instance.registerCommand(new ImportFishingCommand());
+ ClientCommandHandler.instance.registerCommand(new LobbyBankCommand());
ClientCommandHandler.instance.registerCommand(new LobbySkillsCommand());
ClientCommandHandler.instance.registerCommand(new LootCommand());
ClientCommandHandler.instance.registerCommand(new MoveCommand());
@@ -178,7 +181,7 @@ public class DankersSkyblockMod {
ClientCommandHandler.instance.registerCommand(new ToggleCommand());
configDirectory = event.getModConfigurationDirectory().toString();
- CustomMusic.init(configDirectory);
+ CustomMusic.init(configDirectory);
}
@EventHandler
diff --git a/src/main/java/me/Danker/commands/DHelpCommand.java b/src/main/java/me/Danker/commands/DHelpCommand.java
index 0348574..34f85f3 100644
--- a/src/main/java/me/Danker/commands/DHelpCommand.java
+++ b/src/main/java/me/Danker/commands/DHelpCommand.java
@@ -54,6 +54,7 @@ public class DHelpCommand extends CommandBase {
EnumChatFormatting.GOLD + " /sbplayers" + EnumChatFormatting.AQUA + " - Uses API to find how many players are on each Skyblock island.\n" +
EnumChatFormatting.GOLD + " /onlyslayer <zombie/spider/wolf> <1/2/3/4/5>" + EnumChatFormatting.AQUA + " - Stops you from starting a slayer quest other than the one specified.\n" +
EnumChatFormatting.GOLD + " /skilltracker <start/stop/reset>" + EnumChatFormatting.AQUA + " - Text display for skill xp/hour.\n" +
+ EnumChatFormatting.GOLD + " /lobbybank " + 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 + " /reparty" + EnumChatFormatting.AQUA + " - Disbands and reparties all members in the party.\n" +
EnumChatFormatting.GOLD + " /dsmmusic <stop/reload>" + EnumChatFormatting.AQUA + " - Stops or reloads the custom music.\n" +
EnumChatFormatting.GREEN + " Open Maddox Menu" + EnumChatFormatting.AQUA + " - M by default.\n" +
diff --git a/src/main/java/me/Danker/commands/DankerGuiCommand.java b/src/main/java/me/Danker/commands/DankerGuiCommand.java
index 6774d5a..79ab3e3 100644
--- a/src/main/java/me/Danker/commands/DankerGuiCommand.java
+++ b/src/main/java/me/Danker/commands/DankerGuiCommand.java
@@ -89,6 +89,9 @@ 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("[shadowFuryAbility][").append(ToggleCommand.shadowFuryToggled).append("]\n");
+ debug.append("[specialhoe][").append(ToggleCommand.specialHoeRightClick).append("]\n");
+ debug.append("[melodyTooltips][").append(ToggleCommand.melodyTooltips).append("]\n");
debug.append("[dungeonbossmusic][").append(ToggleCommand.dungeonBossMusic).append("]\n");
debug.append("# Locations\n");
debug.append("[coords][").append(MoveCommand.coordsXY[0]).append(", ").append(MoveCommand.coordsXY[1]).append("]\n");
diff --git a/src/main/java/me/Danker/commands/DisplayCommand.java b/src/main/java/me/Danker/commands/DisplayCommand.java
index 74f142a..7760ec9 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/auto/off> [winter/festival/spooky/session/f(1-7)]";
+ return "/" + getCommandName() + " <zombie/spider/wolf/fishing/catacombs/mythological/ghost/auto/off> [winter/festival/spooky/session/f(1-7)]";
}
@Override
@@ -32,7 +32,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", "auto", "off");
+ return getListOfStringsMatchingLastWord(args, "wolf", "spider", "zombie", "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")) {
@@ -192,6 +192,13 @@ public class DisplayCommand extends CommandBase {
return;
}
break;
+ case "ghost":
+ if (showSession) {
+ LootDisplay.display = "ghost_session";
+ } else {
+ LootDisplay.display = "ghost";
+ }
+
case "auto":
LootDisplay.auto = true;
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Display set to " + DankersSkyblockMod.SECONDARY_COLOUR + "auto" + DankersSkyblockMod.MAIN_COLOUR + "."));
diff --git a/src/main/java/me/Danker/commands/LobbyBankCommand.java b/src/main/java/me/Danker/commands/LobbyBankCommand.java
new file mode 100644
index 0000000..5c1a63b
--- /dev/null
+++ b/src/main/java/me/Danker/commands/LobbyBankCommand.java
@@ -0,0 +1,139 @@
+package me.Danker.commands;
+
+import com.google.gson.JsonArray;
+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.client.Minecraft;
+import net.minecraft.client.network.NetworkPlayerInfo;
+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;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+public class LobbyBankCommand extends CommandBase {
+
+ @Override
+ public String getCommandName() {
+ return "lobbybank";
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender sender) {
+ return "/" + getCommandName();
+ }
+
+ @Override
+ public int getRequiredPermissionLevel() {
+ return 0;
+ }
+
+ @Override
+ public void processCommand(ICommandSender sender, String[] args) throws CommandException {
+ EntityPlayer playerSP = (EntityPlayer) sender;
+ Map<String, Double> unsortedBankList = new HashMap<>();
+ ArrayList<Double> lobbyBanks = new ArrayList<>();
+ // Check key
+ String key = ConfigHandler.getString("api", "APIKey");
+ if (key.equals("")) {
+ playerSP.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "API key not set. Use /setkey."));
+ return;
+ }
+
+ new Thread(() -> {
+ try {
+ // Create deep copy of players to prevent passing reference and ConcurrentModificationException
+ Collection<NetworkPlayerInfo> players = new ArrayList<>(Minecraft.getMinecraft().getNetHandler().getPlayerInfoMap());
+ playerSP.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Checking skill average of lobby. Estimated time: " + (int) (players.size() * 1.2 + 1) + " seconds."));
+ // Send request every .6 seconds, leaving room for another 20 requests per minute
+
+ for (final NetworkPlayerInfo player : players) {
+ if (player.getGameProfile().getName().startsWith("!")) continue;
+ // Manually get latest profile to use reduced requests on extra achievement API
+ String UUID = player.getGameProfile().getId().toString().replaceAll("-", "");
+ long biggestLastSave = 0;
+ int profileIndex = -1;
+ Thread.sleep(600);
+ JsonObject profileResponse = APIHandler.getResponse("https://api.hypixel.net/skyblock/profiles?uuid=" + UUID + "&key=" + key);
+ if (!profileResponse.get("success").getAsBoolean()) {
+ String reason = profileResponse.get("cause").getAsString();
+ System.out.println("User " + player.getGameProfile().getName() + " failed with reason: " + reason);
+ continue;
+ }
+ if (profileResponse.get("profiles").isJsonNull()) continue;
+
+ JsonArray profiles = profileResponse.get("profiles").getAsJsonArray();
+ for (int i = 0; i < profiles.size(); i++) {
+ JsonObject profile = profiles.get(i).getAsJsonObject();
+ if (!profile.get("members").getAsJsonObject().get(UUID).getAsJsonObject().has("last_save"))
+ continue;
+ if (profile.get("members").getAsJsonObject().get(UUID).getAsJsonObject().get("last_save").getAsLong() > biggestLastSave) {
+ biggestLastSave = profile.get("members").getAsJsonObject().get(UUID).getAsJsonObject().get("last_save").getAsLong();
+ profileIndex = i;
+ }
+ }
+ if (profileIndex == -1 || biggestLastSave == 0) continue;
+
+ JsonObject latestProfile = profiles.get(profileIndex).getAsJsonObject().get("members").getAsJsonObject().get(UUID).getAsJsonObject();
+ boolean hasBanking = profiles.get(profileIndex).getAsJsonObject().has("banking");
+
+ // Get SA
+ double coin_purse;
+ // Add bank to lobby banks
+ // Put bank in HashMap
+
+ if (latestProfile.has("coin_purse")) {
+ coin_purse = latestProfile.get("coin_purse").getAsDouble();
+ if (hasBanking == true) {
+ coin_purse += profiles.get(profileIndex).getAsJsonObject().get("banking").getAsJsonObject().get("balance").getAsDouble();
+
+ }
+
+ unsortedBankList.put(player.getGameProfile().getName(), coin_purse); // Put bank in HashMap
+ lobbyBanks.add(coin_purse); // Add bank to lobby banks
+
+ }
+ }
+
+ // I have no idea how this works, or even what :: does but this sorts the skill averages
+ Map<String, Double> sortedBankList = unsortedBankList.entrySet().stream()
+ .sorted(Map.Entry.<String, Double>comparingByValue().reversed())
+ .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
+ (e1, e2) -> e1, LinkedHashMap::new));
+
+ String[] sortedBankListKeys = sortedBankList.keySet().toArray(new String[0]);
+ String top3 = "";
+ for (int i = 0; i < 3 && i < sortedBankListKeys.length; i++) {
+ top3 += "\n " + EnumChatFormatting.AQUA + sortedBankListKeys[i] + ": " + DankersSkyblockMod.SKILL_AVERAGE_COLOUR + EnumChatFormatting.BOLD + Math.round(sortedBankList.get(sortedBankListKeys[i]));
+ }
+
+ // Get lobby sa
+ double lobbyBank = 0;
+ for (Double playerSkills : lobbyBanks) {
+ lobbyBank += playerSkills;
+ }
+ lobbyBank = (double) Math.round((lobbyBank / lobbyBanks.size()) * 100) / 100;
+
+ // Finally say skill lobby avg and highest SA users
+ playerSP.addChatMessage(new ChatComponentText(DankersSkyblockMod.DELIMITER_COLOUR + "" + EnumChatFormatting.BOLD + "-------------------\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Lobby Bank Average: " + DankersSkyblockMod.SKILL_AVERAGE_COLOUR + EnumChatFormatting.BOLD + Math.round(lobbyBank) + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Highest Bank Averages:" + top3 + "\n" +
+ DankersSkyblockMod.DELIMITER_COLOUR + "" + EnumChatFormatting.BOLD + " -------------------"));
+
+
+ } catch (InterruptedException ex) {
+ System.out.println("Current bank average list: " + unsortedBankList.toString());
+ Thread.currentThread().interrupt();
+ System.out.println("Interrupted /lobbyskills thread.");
+ }
+
+ }).start();
+ }
+} \ No newline at end of file
diff --git a/src/main/java/me/Danker/commands/ToggleCommand.java b/src/main/java/me/Danker/commands/ToggleCommand.java
index 2cc4745..fc6b4f3 100644
--- a/src/main/java/me/Danker/commands/ToggleCommand.java
+++ b/src/main/java/me/Danker/commands/ToggleCommand.java
@@ -19,18 +19,23 @@ public class ToggleCommand extends CommandBase implements ICommand {
public static boolean goldenToggled;
public static boolean slayerCountTotal;
public static boolean rngesusAlerts;
+ public static boolean ghostDisplay;
public static boolean splitFishing;
public static boolean chatMaddoxToggled;
public static boolean spiritBearAlerts;
public static boolean aotdToggled;
public static boolean lividDaggerToggled;
+ public static boolean shadowFuryToggled;
public static boolean petColoursToggled;
public static boolean dungeonTimerToggled;
+ public static boolean ghostTimerToggled;
public static boolean golemAlertToggled;
public static boolean expertiseLoreToggled;
public static boolean skill50DisplayToggled;
public static boolean outlineTextToggled;
public static boolean cakeTimerToggled;
+ public static boolean highlightSlayers;
+ public static boolean highlightArachne;
// Chat Messages
public static boolean sceptreMessages;
public static boolean midasStaffMessages;
@@ -71,6 +76,8 @@ public class ToggleCommand extends CommandBase implements ICommand {
public static boolean chronomatronToggled;
public static boolean superpairsToggled;
public static boolean hideTooltipsInExperimentAddonsToggled;
+ public static boolean specialHoeRightClick;
+ public static boolean melodyTooltips;
// Custom Music
public static boolean dungeonBossMusic;
@@ -82,15 +89,15 @@ public class ToggleCommand extends CommandBase implements ICommand {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + " <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/chatmaddox/spiritbearalert/" +
- "aotd/lividdagger/flowerweapons/sceptremessages/petcolors/dungeontimer/golemalerts/expertiselore/" +
+ return "/" + getCommandName() + " <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/ghostdisplay/chatmaddox/spiritbearalert/" +
+ "aotd/lividdagger/shadowfury/flowerweapons/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/" +
"startswithterminal/selectallterminal/clickinorderterminal/blockwrongterminalclicks/" +
- "itemframeonsealanterns/ultrasequencer/chronomatron/superpairs/hidetooltipsinaddons/" +
- "pickblock/dungeonbossmusic/list>";
+ "itemframeonsealanterns/ultrasequencer/chronomatron/superpairs/hidetooltipsinaddons/pickblock/ " +
+ "/specialhoe/melodytooltips/highlightslayers/highlightArachne/dungeonbossmusic/list>";
}
@Override
@@ -101,8 +108,8 @@ public class ToggleCommand extends CommandBase implements ICommand {
@Override
public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) {
if (args.length == 1) {
- return getListOfStringsMatchingLastWord(args, "gparty", "coords", "golden", "slayercount", "rngesusalerts",
- "splitfishing", "chatmaddox", "spiritbearalerts", "aotd", "lividdagger",
+ return getListOfStringsMatchingLastWord(args, "gparty", "coords", "golden", "slayercount", "rngesusalerts", "highlightArachne",
+ "splitfishing", "chatmaddox", "spiritbearalerts", "aotd", "lividdagger", "shadowfury",
"flowerweapons", "sceptremessages", "petcolors", "dungeontimer", "golemalerts",
"expertiselore", "skill50display", "outlinetext", "midasstaffmessages",
"implosionmessages", "healmessages", "cooldownmessages", "manamessages",
@@ -113,7 +120,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
"silverfishpuzzle", "icewalkpuzzle", "watchermessage", "startswithterminal",
"selectallterminal", "clickinorderterminal", "blockwrongterminalclicks",
"itemframeonsealanterns", "ultrasequencer", "chronomatron", "superpairs",
- "hidetooltipsinaddons", "pickblock", "dungeonbossmusic", "list");
+ "hidetooltipsinaddons", "pickblock", "specialhoe", "melodytooltips", "highlightslayers", "dungeonbossmusic", "list");
}
return null;
}
@@ -153,6 +160,11 @@ public class ToggleCommand extends CommandBase implements ICommand {
ConfigHandler.writeBooleanConfig("toggles", "RNGesusAlerts", rngesusAlerts);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Slayer RNGesus alerts has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + rngesusAlerts + DankersSkyblockMod.MAIN_COLOUR + "."));
break;
+ case "ghostDisplay":
+ ghostDisplay = !ghostDisplay;
+ ConfigHandler.writeBooleanConfig("toggles", "GhostDisplay", ghostDisplay);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Ghost Display has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + ghostDisplay + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
case "splitfishing":
splitFishing = !splitFishing;
ConfigHandler.writeBooleanConfig("toggles", "SplitFishing", splitFishing);
@@ -176,6 +188,11 @@ public class ToggleCommand extends CommandBase implements ICommand {
case "lividdagger":
lividDaggerToggled = !lividDaggerToggled;
ConfigHandler.writeBooleanConfig("toggles", "LividDagger", lividDaggerToggled);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Block Shadow Fury ability been set to " + DankersSkyblockMod.SECONDARY_COLOUR + shadowFuryToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ case "shadowfury":
+ shadowFuryToggled = !shadowFuryToggled;
+ ConfigHandler.writeBooleanConfig("toggles", "ShadowFury", shadowFuryToggled);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Block Livid Dagger ability been set to " + DankersSkyblockMod.SECONDARY_COLOUR + lividDaggerToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
break;
case "flowerweapons":
@@ -229,6 +246,11 @@ public class ToggleCommand extends CommandBase implements ICommand {
ConfigHandler.writeBooleanConfig("toggles", "DungeonTimer", dungeonTimerToggled);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Dungeon timer has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + dungeonTimerToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
break;
+ /*case "ghostTimer":
+ ghostTimerToggled = !ghostTimerToggled;
+ ConfigHandler.writeBooleanConfig("toggles", "GhostTimer", ghostTimerToggled);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Ghost timer has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + ghostTimerToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break; */
case "golemalerts":
golemAlertToggled = !golemAlertToggled;
ConfigHandler.writeBooleanConfig("toggles", "GolemAlerts", golemAlertToggled);
@@ -389,6 +411,25 @@ public class ToggleCommand extends CommandBase implements ICommand {
ConfigHandler.writeBooleanConfig("toggles", "PickBlock", swapToPickBlockToggled);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Auto-swap to pick block has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + swapToPickBlockToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
break;
+ case "specialhoe":
+ specialHoeRightClick = !specialHoeRightClick;
+ ConfigHandler.writeBooleanConfig("toggles", "SpecialHoe", specialHoeRightClick);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Block right click ability of special hoes " + DankersSkyblockMod.SECONDARY_COLOUR + specialHoeRightClick + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
+ 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 + "."));
+ 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 + "."));
+ break;
+ 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 + "."));
case "dungeonbossmusic":
dungeonBossMusic = !dungeonBossMusic;
if (CustomMusic.dungeonboss != null) {
@@ -419,7 +460,6 @@ public class ToggleCommand extends CommandBase implements ICommand {
DankersSkyblockMod.TYPE_COLOUR + " Heal messages: " + DankersSkyblockMod.VALUE_COLOUR + healMessages + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Ability cooldown messages: " + DankersSkyblockMod.VALUE_COLOUR + cooldownMessages + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Out of mana messages: " + DankersSkyblockMod.VALUE_COLOUR + manaMessages + "\n" +
- DankersSkyblockMod.TYPE_COLOUR + " Kill combo messages: " + DankersSkyblockMod.VALUE_COLOUR + killComboMessages + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Pet colours: " + DankersSkyblockMod.VALUE_COLOUR + petColoursToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Dungeon timer: " + DankersSkyblockMod.VALUE_COLOUR + dungeonTimerToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Golem spawn alerts: " + DankersSkyblockMod.VALUE_COLOUR + golemAlertToggled + "\n" +
@@ -447,7 +487,11 @@ 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 + " Auto-swap to pick block " + DankersSkyblockMod.VALUE_COLOUR + swapToPickBlockToggled + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Block Special Hoe right click " + DankersSkyblockMod.VALUE_COLOUR + specialHoeRightClick + "\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
DankersSkyblockMod.TYPE_COLOUR + " Custom dungeon boss music: " + DankersSkyblockMod.VALUE_COLOUR + dungeonBossMusic
));
break;
diff --git a/src/main/java/me/Danker/features/ArachneESP.java b/src/main/java/me/Danker/features/ArachneESP.java
new file mode 100644
index 0000000..1a9b0b2
--- /dev/null
+++ b/src/main/java/me/Danker/features/ArachneESP.java
@@ -0,0 +1,87 @@
+package me.Danker.features;
+
+import me.Danker.DankersSkyblockMod;
+import me.Danker.commands.ToggleCommand;
+import me.Danker.handlers.ScoreboardHandler;
+import me.Danker.utils.Utils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.monster.EntitySpider;
+import net.minecraft.entity.monster.EntityZombie;
+import net.minecraft.entity.passive.EntityWolf;
+import net.minecraft.util.AxisAlignedBB;
+import net.minecraft.util.BlockPos;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.StringUtils;
+import net.minecraft.world.World;
+import net.minecraftforge.client.event.ClientChatReceivedEvent;
+import net.minecraftforge.client.event.RenderWorldLastEvent;
+import net.minecraftforge.event.entity.player.AttackEntityEvent;
+import net.minecraftforge.event.entity.player.PlayerInteractEvent;
+import net.minecraftforge.event.world.WorldEvent;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+import net.minecraftforge.fml.common.gameevent.TickEvent;
+
+
+import java.util.List;
+
+/**
+ * @author RabbitType99
+ */
+
+public class ArachneESP {
+
+
+ static Entity arachne = null;
+ static boolean arachneActive = true;
+ public static int ARACHANE_COLOUR;
+
+
+ @SubscribeEvent
+ public void onWorldChange(WorldEvent.Load event) {
+ arachne = null;
+ }
+
+ public boolean inSpidersDen(List<String> scoreboard) {
+ for (String s : scoreboard) {
+ if (ScoreboardHandler.cleanSB(s).contains("Spiders Den")) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @SubscribeEvent
+ public void onChat(ClientChatReceivedEvent event) {
+ if (!Utils.inSkyblock) return;
+ if (!inSpidersDen(ScoreboardHandler.getSidebarLines())) return;
+ String message = StringUtils.stripControlCodes(event.message.getUnformattedText());
+ if (message.contains("Something is awakening")){
+ arachneActive = true;
+ World world = Minecraft.getMinecraft().theWorld;
+ List<Entity> entities = world.getLoadedEntityList();
+ for (Entity e : entities) {
+ if (e.getName().contains("Arachne") && !e.getName().contains("Arachne's Brood")) {
+ arachne = e;
+ }
+ }
+ }
+ if (message.contains("ARACHNE DOWN!")) {
+ arachneActive = false;
+ arachne = null;
+ }
+ }
+
+ @SubscribeEvent
+ public void onWorldRender(RenderWorldLastEvent event) {
+ if (!Utils.inSkyblock) return;
+ if (arachne != null) {
+ if (arachneActive && ToggleCommand.highlightArachne) {
+ AxisAlignedBB aabb = new AxisAlignedBB(arachne.posX - 0.5, arachne.posY - 1, arachne.posZ - 0.5, arachne.posX + 0.5, arachne.posY, arachne.posZ + 0.5);
+ Utils.draw3DBox(aabb, ARACHANE_COLOUR, event.partialTicks);
+ }
+ }
+ }
+
+}
+
diff --git a/src/main/java/me/Danker/features/AutoDisplay.java b/src/main/java/me/Danker/features/AutoDisplay.java
index 876fb6a..182c0b4 100644
--- a/src/main/java/me/Danker/features/AutoDisplay.java
+++ b/src/main/java/me/Danker/features/AutoDisplay.java
@@ -37,6 +37,9 @@ public class AutoDisplay {
} else if (sCleaned.contains("Revenant Horror")) {
LootDisplay.display = "zombie";
found = true;
+ } else if (sCleaned.contains("The Mist")){
+ LootDisplay.display = "ghost";
+ found = true;
} else if (sCleaned.contains("The Catacombs (")) {
if (sCleaned.contains("F1")) {
LootDisplay.display = "catacombs_floor_one";
diff --git a/src/main/java/me/Danker/features/BlockAbilities.java b/src/main/java/me/Danker/features/BlockAbilities.java
index 19a887c..814fd65 100644
--- a/src/main/java/me/Danker/features/BlockAbilities.java
+++ b/src/main/java/me/Danker/features/BlockAbilities.java
@@ -27,6 +27,12 @@ public class BlockAbilities {
if (ToggleCommand.lividDaggerToggled && item.getDisplayName().contains("Livid Dagger")) {
event.setCanceled(true);
}
+ if (ToggleCommand.shadowFuryToggled && item.getDisplayName().contains("Shadow Fury")) {
+ event.setCanceled(true);
+ }
+ if (ToggleCommand.specialHoeRightClick && (item.getDisplayName().contains("Mathematical Hoe") || item.getDisplayName().contains("Potato Hoe") || item.getDisplayName().contains("Wheat Hoe") || item.getDisplayName().contains("Carrot Hoe") || item.getDisplayName().contains("Sugar Cane Hoe") || item.getDisplayName().contains("Nether Warts Hoe"))) {
+ event.setCanceled(true);
+ }
} else if (event.action == PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK) {
Block block = Minecraft.getMinecraft().theWorld.getBlockState(event.pos).getBlock();
@@ -77,6 +83,12 @@ public class BlockAbilities {
if (ToggleCommand.lividDaggerToggled && item.getDisplayName().contains("Livid Dagger")) {
event.setCanceled(true);
}
+ if (ToggleCommand.shadowFuryToggled && item.getDisplayName().contains("Shadow Fury")) {
+ event.setCanceled(true);
+ }
+ }
+ if (ToggleCommand.specialHoeRightClick && (item.getDisplayName().contains("Mathematical Hoe") || item.getDisplayName().contains("Potato Hoe") || item.getDisplayName().contains("Wheat Hoe") || item.getDisplayName().contains("Carrot Hoe") || item.getDisplayName().contains("Sugar Cane Hoe") || item.getDisplayName().contains("Nether Warts Hoe"))) {
+ event.setCanceled(true);
}
}
}
diff --git a/src/main/java/me/Danker/features/HideTooltipsInExperiments.java b/src/main/java/me/Danker/features/HideTooltipsInExperiments.java
index 5866fc8..6e295e1 100644
--- a/src/main/java/me/Danker/features/HideTooltipsInExperiments.java
+++ b/src/main/java/me/Danker/features/HideTooltipsInExperiments.java
@@ -29,6 +29,9 @@ public class HideTooltipsInExperiments {
if (ToggleCommand.hideTooltipsInExperimentAddonsToggled && (chestName.startsWith("Ultrasequencer (") || chestName.startsWith("Chronomatron ("))) {
event.toolTip.clear();
}
+ if (ToggleCommand.melodyTooltips && chestName.startsWith("Harp")) {
+ event.toolTip.clear();
+ }
}
}
diff --git a/src/main/java/me/Danker/features/SlayerESP.java b/src/main/java/me/Danker/features/SlayerESP.java
new file mode 100644
index 0000000..17a1c0e
--- /dev/null
+++ b/src/main/java/me/Danker/features/SlayerESP.java
@@ -0,0 +1,121 @@
+package me.Danker.features;
+
+import me.Danker.DankersSkyblockMod;
+import me.Danker.commands.ToggleCommand;
+import me.Danker.handlers.ScoreboardHandler;
+import me.Danker.utils.Utils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.entity.Entity;
+import net.minecraft.util.AxisAlignedBB;
+import net.minecraft.util.StringUtils;
+import net.minecraft.world.World;
+import net.minecraftforge.client.event.ClientChatReceivedEvent;
+import net.minecraftforge.client.event.RenderWorldLastEvent;
+import net.minecraftforge.event.AttachCapabilitiesEvent;
+import net.minecraftforge.event.world.WorldEvent;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+import net.minecraftforge.fml.common.gameevent.TickEvent;
+
+import java.util.List;
+
+/**
+ * @author CuzImClicks
+ */
+
+public class SlayerESP {
+
+ static Entity zombie = null;
+ static Entity spider = null;
+ static Entity wolf = null;
+ static boolean slayerActive = false;
+ static boolean slayerStarted = false;
+ public static int SLAYER_COLOUR;
+
+ @SubscribeEvent
+ public void onWorldChange(WorldEvent.Load event) {
+ zombie = null;
+ spider = null;
+ wolf = null;
+ }
+
+
+ @SubscribeEvent
+ public void onTick(TickEvent.ClientTickEvent event) {
+ if (!Utils.inSkyblock) return;
+ if (event.phase != TickEvent.Phase.START) return;
+
+ World world = Minecraft.getMinecraft().theWorld;
+ if (world == null) return;
+ if (!slayerStarted) return;
+ if (zombie != null || spider != null || wolf != null) {
+ return;
+ }
+ slayerActive = true;
+ if (DankersSkyblockMod.tickAmount % 10 == 0 && ToggleCommand.highlightSlayers) {
+ for (String line : ScoreboardHandler.getSidebarLines()) {
+ String cleanedLine = ScoreboardHandler.cleanSB(line);
+ if (cleanedLine.contains("Slay the boss!")) {
+ slayerActive = true;
+ List<Entity> entities = world.getLoadedEntityList();
+ for (Entity e : entities) {
+ System.out.println(e.getName());
+ if (e.getName().contains("Revenant Horror")) {
+ zombie = e;
+ return;
+ } else if (e.getName().contains("Tarantula Broodfather")) {
+ spider = e;
+ return;
+ } else if (e.getName().contains("Sven Packmaster")) {
+ wolf = e;
+ return;
+ }
+
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ @SubscribeEvent
+ public void onChat(ClientChatReceivedEvent event) {
+ if (!Utils.inSkyblock) return;
+ String message = StringUtils.stripControlCodes(event.message.getUnformattedText());
+ if (message.contains("SLAYER QUEST STARTED!")) {
+ slayerStarted = true;
+ }
+ if (message.contains("NICE! SLAYER BOSS SLAIN!") || message.contains("SLAYER QUEST COMPLETE!") || message.contains("SLAYER QUEST FAILED!")) {
+ slayerActive = false;
+ slayerStarted = false;
+ zombie = null;
+ spider = null;
+ wolf = null;
+ }
+
+ }
+
+
+ @SubscribeEvent
+ public void onWorldRender(RenderWorldLastEvent event) {
+ if (!Utils.inSkyblock) return;
+ if (!slayerStarted) return;
+ if (slayerActive && ToggleCommand.highlightSlayers) {
+ if (zombie != null) {
+ AxisAlignedBB aabb = new AxisAlignedBB(zombie.posX - 0.5, zombie.posY - 2, zombie.posZ - 0.5, zombie.posX + 0.5, zombie.posY, zombie.posZ + 0.5);
+ Utils.draw3DBox(aabb, SLAYER_COLOUR, event.partialTicks);
+ return;
+ }
+ if (spider != null) {
+ AxisAlignedBB aabb = new AxisAlignedBB(spider.posX - 0.5, spider.posY - 1, spider.posZ - 0.5, spider.posX + 0.5, spider.posY, spider.posZ + 0.5);
+ Utils.draw3DBox(aabb, SLAYER_COLOUR, event.partialTicks);
+ return;
+ }
+ if (wolf != null) {
+ AxisAlignedBB aabb = new AxisAlignedBB(wolf.posX - 0.5, wolf.posY - 1, wolf.posZ - 0.5, wolf.posX + 0.5, wolf.posY, wolf.posZ + 0.5);
+ Utils.draw3DBox(aabb, SLAYER_COLOUR, event.partialTicks);
+ return;
+ }
+ }
+ }
+
+}
diff --git a/src/main/java/me/Danker/features/loot/LootDisplay.java b/src/main/java/me/Danker/features/loot/LootDisplay.java
index f51157b..cd34da7 100644
--- a/src/main/java/me/Danker/features/loot/LootDisplay.java
+++ b/src/main/java/me/Danker/features/loot/LootDisplay.java
@@ -900,6 +900,36 @@ public class LootDisplay {
EnumChatFormatting.AQUA + Utils.getMoneySpent(LootTracker.f7CoinsSpentSession) + "\n" +
EnumChatFormatting.AQUA + Utils.getTimeBetween(0, LootTracker.f7TimeSpentSession);
break;
+ case "ghost_session":
+ dropsText = EnumChatFormatting.GOLD + "Bags of Cash:\n" +
+ EnumChatFormatting.BLUE + "Sorrows:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Ghosty Boots:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Voltas:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Plasmas:" ; // + \n
+ // EnumChatFormatting.AQUA + "Time Spent:" +
+ countText = EnumChatFormatting.GOLD + nf.format(LootTracker.bagOfCashSession) + "\n" +
+ EnumChatFormatting.BLUE + nf.format(LootTracker.sorrowSession) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + nf.format(LootTracker.ghostlyBootsSession) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + nf.format(LootTracker.voltaSession) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + nf.format(LootTracker.plasmaSession); //+ "\n" +
+ // EnumChatFormatting.AQUA + nf.format(LootTracker.ghostsTimeSpentSession);
+ break;
+ case "ghost":
+ dropsText = EnumChatFormatting.GOLD + "Bags of Cash:\n" +
+ EnumChatFormatting.BLUE + "Sorrows:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Ghosty Boots:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Voltas:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Plasmas:" ; // + \n
+ // EnumChatFormatting.AQUA + "Time Spent:" +
+ countText = EnumChatFormatting.GOLD + nf.format(LootTracker.bagOfCashSession) + "\n" +
+ EnumChatFormatting.BLUE + nf.format(LootTracker.sorrowSession) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + nf.format(LootTracker.ghostlyBootsSession) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + nf.format(LootTracker.voltaSession) + "\n" +
+ EnumChatFormatting.DARK_PURPLE + nf.format(LootTracker.plasmaSession); //+ "\n" +
+ // EnumChatFormatting.AQUA + nf.format(LootTracker.ghostsTimeSpentSession);
+ break;
+
+
default:
System.out.println("Display was an unknown value, turning off.");
display = "off";
diff --git a/src/main/java/me/Danker/features/loot/LootTracker.java b/src/main/java/me/Danker/features/loot/LootTracker.java
index 68cd8b0..4858569 100644
--- a/src/main/java/me/Danker/features/loot/LootTracker.java
+++ b/src/main/java/me/Danker/features/loot/LootTracker.java
@@ -178,6 +178,15 @@ public class LootTracker {
public static int witherBoots;
public static double f7CoinsSpent;
public static double f7TimeSpent;
+ // Ghosts
+ public static int sorrows = 0;
+ public static int bagOfCashs = 0;
+ public static int voltas = 0;
+ public static int plasmas = 0;
+ public static int ghostlyBoots = 0;
+ // public static double ghostsTimeSpent = -1;
+
+
// Single sessions (No config saves)
// Wolf
@@ -340,6 +349,14 @@ public class LootTracker {
public static int witherBootsSession = 0;
public static double f7CoinsSpentSession = 0;
public static double f7TimeSpentSession = 0;
+ // Ghosts
+ public static int sorrowSession = 0;
+ public static int bagOfCashSession = 0;
+ public static int voltaSession = 0;
+ public static int plasmaSession = 0;
+ public static int ghostlyBootsSession = 0;
+ // public static double ghostsSecondsSinceStarts = 0;
+
static double checkItemsNow = 0;
static double itemsChecked = 0;
@@ -348,6 +365,7 @@ public class LootTracker {
public void onChat(ClientChatReceivedEvent event) {
String message = StringUtils.stripControlCodes(event.message.getUnformattedText());
+
if (!Utils.inSkyblock) return;
if (event.type == 2) return;
if (message.contains(":")) return;
@@ -356,6 +374,8 @@ public class LootTracker {
boolean spiderRNG = false;
boolean zombieRNG = false;
+
+
// Slayer tracker
// T6 books
if (message.contains("VERY RARE DROP! (Enchanted Book)") || message.contains("CRAZY RARE DROP! (Enchanted Book)")) {
@@ -373,6 +393,7 @@ public class LootTracker {
zombieBooks++;
ConfigHandler.writeIntConfig("zombie", "book", zombieBooks);
}
+
}
}
@@ -973,6 +994,35 @@ public class LootTracker {
ConfigHandler.writeIntConfig("mythological", "minosInquisitor", minosInquisitors);
}
}
+
+
+ if (message.contains("RARE DROP!")) {
+ if (message.contains("Sorrow")) {
+ sorrows++;
+ sorrowSession++;
+ ConfigHandler.writeIntConfig("ghosts", "sorrow", sorrows);
+ }
+ if (message.contains("Volta")) {
+ voltas++;
+ voltaSession++;
+ ConfigHandler.writeIntConfig("ghosts", "volta", voltas);
+ }
+ if (message.contains("Plasma")) {
+ plasmas++;
+ plasmaSession++;
+ ConfigHandler.writeIntConfig("ghosts", "plasma", plasmas);
+ }
+ if (message.contains("Ghostly Boots")) {
+ ghostlyBoots++;
+ ghostlyBootsSession++;
+ ConfigHandler.writeIntConfig("ghosts", "ghostlyBoots", ghostlyBoots);
+ }
+ if (message.contains("Bag of Cash")) {
+ bagOfCashs++;
+ bagOfCashSession++;
+ ConfigHandler.writeIntConfig("ghosts", "bagOfCash", bagOfCashs);
+ }
+ }
}
@SubscribeEvent
diff --git a/src/main/java/me/Danker/gui/DankerGui.java b/src/main/java/me/Danker/gui/DankerGui.java
index 2d07f27..ecca047 100644
--- a/src/main/java/me/Danker/gui/DankerGui.java
+++ b/src/main/java/me/Danker/gui/DankerGui.java
@@ -31,6 +31,7 @@ public class DankerGui extends GuiScreen {
private GuiButton puzzleSolvers;
private GuiButton experimentationTableSolvers;
private GuiButton skillTracker;
+ private GuiButton highlightArachne;
// Toggles
private GuiButton gparty;
private GuiButton coords;
@@ -47,6 +48,9 @@ public class DankerGui extends GuiScreen {
private GuiButton skill50Display;
private GuiButton outlineText;
private GuiButton cakeTimer;
+ private GuiButton shadowFury;
+ private GuiButton specialHoe;
+ private GuiButton melodyTooltips;
private GuiButton dungeonBossMusic;
// Chat Messages
private GuiButton lividDagger;
@@ -69,7 +73,7 @@ public class DankerGui extends GuiScreen {
private GuiButton necronNotifications;
private GuiButton bonzoTimer;
private GuiButton autoSkillTracker;
-
+
public DankerGui(int page) {
this.page = page;
}
@@ -135,13 +139,18 @@ public class DankerGui extends GuiScreen {
stopSalvageStarred = new GuiButton(0, width / 2 - 100, (int) (height * 0.5), "Stop Salvaging Starred Items: " + Utils.getColouredBoolean(ToggleCommand.stopSalvageStarredToggled));
watcherReadyMessage = new GuiButton(0, width / 2 - 100, (int) (height * 0.6), "Display Watcher Ready Message: " + Utils.getColouredBoolean(ToggleCommand.watcherReadyToggled));
flowerWeapons = new GuiButton(0, width / 2 - 100, (int) (height * 0.7), "Prevent Placing FoT/Spirit Sceptre: " + Utils.getColouredBoolean(ToggleCommand.flowerWeaponsToggled));
- //Page 6
+ // Page 6
notifySlayerSlain = new GuiButton(0, width / 2 - 100, (int) (height * 0.1), "Notify when Slayer Slain: " + Utils.getColouredBoolean(ToggleCommand.notifySlayerSlainToggled));
necronNotifications = new GuiButton(0, width / 2 - 100, (int) (height * 0.2), "Necron Phase Notifications: " + Utils.getColouredBoolean(ToggleCommand.necronNotificationsToggled));
bonzoTimer = new GuiButton(0, width / 2 - 100, (int) (height * 0.3), "Bonzo's Mask Timer: " + Utils.getColouredBoolean(ToggleCommand.bonzoTimerToggled));
autoSkillTracker = new GuiButton(0, width / 2 - 100, (int) (height * 0.4), "Auto Start/Stop Skill Tracker: " + Utils.getColouredBoolean(ToggleCommand.autoSkillTrackerToggled));
dungeonBossMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.5), "Custom Dungeon Boss Music: " + Utils.getColouredBoolean(ToggleCommand.dungeonBossMusic));
-
+ shadowFury = new GuiButton(0, width / 2 - 100, (int) (height * 0.6), "Block Shadow Fury ability: " + Utils.getColouredBoolean(ToggleCommand.shadowFuryToggled));
+ specialHoe = new GuiButton(0, width / 2 - 100, (int) (height * 0.7), "Block Special Hoe right click: " + Utils.getColouredBoolean(ToggleCommand.specialHoeRightClick));
+ // Page 7
+ melodyTooltips = new GuiButton(0, width / 2 - 100, (int) (height * 0.1), "Hide tooltips in Melody's Harp: " + Utils.getColouredBoolean(ToggleCommand.melodyTooltips));
+ highlightArachne =new GuiButton(0, width / 2 - 100, (int) (height * 0.2), "Highlight Arachne: " + Utils.getColouredBoolean(ToggleCommand.highlightArachne));
+
switch (page) {
case 1:
this.buttonList.add(changeDisplay);
@@ -183,6 +192,7 @@ public class DankerGui extends GuiScreen {
this.buttonList.add(gparty);
this.buttonList.add(golemAlerts);
this.buttonList.add(rngesusAlert);
+ this.buttonList.add(splitFishing);
this.buttonList.add(nextPage);
this.buttonList.add(backPage);
break;
@@ -199,10 +209,18 @@ public class DankerGui extends GuiScreen {
break;
case 6:
this.buttonList.add(notifySlayerSlain);
- this.buttonList.add(necronNotifications);
+ this.buttonList.add(necronNotifications);
this.buttonList.add(bonzoTimer);
this.buttonList.add(autoSkillTracker);
this.buttonList.add(dungeonBossMusic);
+ this.buttonList.add(shadowFury);
+ this.buttonList.add(specialHoe);
+ this.buttonList.add(nextPage);
+ this.buttonList.add(backPage);
+ break;
+ case 7:
+ this.buttonList.add(melodyTooltips);
+ this.buttonList.add(highlightArachne);
this.buttonList.add(backPage);
break;
}
@@ -216,7 +234,7 @@ public class DankerGui extends GuiScreen {
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
this.drawDefaultBackground();
- String pageText = "Page: " + page + "/6";
+ String pageText = "Page: " + page + "/7";
int pageWidth = mc.fontRendererObj.getStringWidth(pageText);
new TextRenderer(mc, pageText, width / 2 - pageWidth / 2, 10, 1D);
super.drawScreen(mouseX, mouseY, partialTicks);
@@ -386,10 +404,26 @@ public class DankerGui extends GuiScreen {
ToggleCommand.autoSkillTrackerToggled = !ToggleCommand.autoSkillTrackerToggled;
ConfigHandler.writeBooleanConfig("toggles", "AutoSkillTracker", ToggleCommand.autoSkillTrackerToggled);
autoSkillTracker.displayString = "Auto Start/Stop Skill Tracker: " + Utils.getColouredBoolean(ToggleCommand.autoSkillTrackerToggled);
+ } else if (button == shadowFury) {
+ ToggleCommand.shadowFuryToggled = !ToggleCommand.shadowFuryToggled;
+ ConfigHandler.writeBooleanConfig("toggles", "ShadowFury", ToggleCommand.shadowFuryToggled);
+ shadowFury.displayString = "Block Shadow Fury ability: " + Utils.getColouredBoolean(ToggleCommand.shadowFuryToggled);
+ } else if (button == specialHoe) {
+ ToggleCommand.specialHoeRightClick = !ToggleCommand.specialHoeRightClick;
+ ConfigHandler.writeBooleanConfig("toggles", "SpecialHoe", ToggleCommand.specialHoeRightClick);
+ specialHoe.displayString = "Block Special Hoe right click: " + Utils.getColouredBoolean(ToggleCommand.specialHoeRightClick);
+ } else if (button == melodyTooltips) {
+ ToggleCommand.melodyTooltips = !ToggleCommand.melodyTooltips;
+ ConfigHandler.writeBooleanConfig("toggles", "MelodyTooltips", ToggleCommand.melodyTooltips);
+ melodyTooltips.displayString = "Hide tooltips in Melody's Harp: " + Utils.getColouredBoolean(ToggleCommand.melodyTooltips);
} else if (button == killComboMessages) {
ToggleCommand.killComboMessages = !ToggleCommand.killComboMessages;
ConfigHandler.writeBooleanConfig("toggles", "KillComboMessages", ToggleCommand.killComboMessages);
killComboMessages.displayString = "Kill Combo Messages: " + Utils.getColouredBoolean(ToggleCommand.killComboMessages);
+ } else if (button == highlightArachne) {
+ ToggleCommand.highlightArachne = !ToggleCommand.highlightArachne;
+ ConfigHandler.writeBooleanConfig("toggles", "HighlightArachne", ToggleCommand.highlightArachne);
+ highlightArachne.displayString = "Highlight Arachne: " + Utils.getColouredBoolean(ToggleCommand.highlightArachne);
} else if (button == dungeonBossMusic) {
ToggleCommand.dungeonBossMusic = !ToggleCommand.dungeonBossMusic;
if (CustomMusic.dungeonboss != null) {
diff --git a/src/main/java/me/Danker/gui/DisplayGui.java b/src/main/java/me/Danker/gui/DisplayGui.java
index ceda556..38459ee 100644
--- a/src/main/java/me/Danker/gui/DisplayGui.java
+++ b/src/main/java/me/Danker/gui/DisplayGui.java
@@ -33,6 +33,7 @@ public class DisplayGui extends GuiScreen {
private GuiButton catacombsF5;
private GuiButton catacombsF6;
private GuiButton catacombsF7;
+ private GuiButton ghost;
@Override
public boolean doesGuiPauseGame() {
@@ -58,7 +59,8 @@ public class DisplayGui extends GuiScreen {
fishingWinter = new GuiButton(0, width / 2 - 110, (int) (height * 0.4), 100, 20, "Fishing Winter");
fishingFestival = new GuiButton(0, width / 2 + 10, (int) (height * 0.4), 100, 20, "Fishing Festival");
fishingSpooky = new GuiButton(0, width / 2 + 130, (int) (height * 0.4), 100, 20, "Fishing Spooky");
- mythological = new GuiButton(0, width / 2 - 100, (int) (height * 0.5), 200, 20, "Mythological");
+ mythological = new GuiButton(0, width / 2 - 100, (int) (height * 0.5), 95, 20, "Mythological");
+ ghost = new GuiButton(0, width / 2 + 5, (int) (height * 0.5), 95, 20, "Ghost");
catacombsF1 = new GuiButton(0, width / 2 - 205, (int) (height * 0.65), 50, 20, "F1");
catacombsF2 = new GuiButton(0, width / 2 - 145, (int) (height * 0.65), 50, 20, "F2");
catacombsF3 = new GuiButton(0, width / 2 - 85, (int) (height * 0.65), 50, 20, "F3");
@@ -66,7 +68,7 @@ public class DisplayGui extends GuiScreen {
catacombsF5 = new GuiButton(0, width / 2 + 35, (int) (height * 0.65), 50, 20, "F5");
catacombsF6 = new GuiButton(0, width / 2 + 95, (int) (height * 0.65), 50, 20, "F6");
catacombsF7 = new GuiButton(0, width / 2 + 155, (int) (height * 0.65), 50, 20, "F7");
-
+
this.buttonList.add(showSession);
this.buttonList.add(off);
this.buttonList.add(auto);
@@ -85,6 +87,7 @@ public class DisplayGui extends GuiScreen {
this.buttonList.add(catacombsF5);
this.buttonList.add(catacombsF6);
this.buttonList.add(catacombsF7);
+ this.buttonList.add(ghost);
this.buttonList.add(goBack);
}
@@ -151,7 +154,8 @@ public class DisplayGui extends GuiScreen {
setDisplay("catacombs_floor_six", false);
} else if (button == catacombsF7) {
setDisplay("catacombs_floor_seven", false);
- }
+ } else if (button == ghost)
+ setDisplay("ghost",false);
}
public void setDisplay(String display, boolean forceNoSession) {
diff --git a/src/main/java/me/Danker/gui/OnlySlayerGui.java b/src/main/java/me/Danker/gui/OnlySlayerGui.java
index 6ae1490..9df0087 100644
--- a/src/main/java/me/Danker/gui/OnlySlayerGui.java
+++ b/src/main/java/me/Danker/gui/OnlySlayerGui.java
@@ -1,10 +1,13 @@
package me.Danker.gui;
import me.Danker.DankersSkyblockMod;
+import me.Danker.commands.ToggleCommand;
import me.Danker.features.BlockWrongSlayer;
import me.Danker.handlers.ConfigHandler;
import me.Danker.handlers.TextRenderer;
+import me.Danker.utils.Utils;
import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.ScaledResolution;
@@ -23,7 +26,9 @@ public class OnlySlayerGui extends GuiScreen {
private GuiButton two;
private GuiButton three;
private GuiButton four;
- private GuiButton five;
+ private GuiButton five;
+
+ private GuiButton highlightSlayers;
@Override
public boolean doesGuiPauseGame() {
@@ -69,6 +74,7 @@ public class OnlySlayerGui extends GuiScreen {
three = new GuiButton(0, width / 2 - 30, (int) (height * 0.6), 60, 20, "III");
four = new GuiButton(0, width / 2 + 50, (int) (height * 0.6), 60, 20, "IV");
five = new GuiButton(0, width / 2 + 130, (int) (height * 0.6), 60, 20, "V");
+ highlightSlayers = new GuiButton(0, width / 2 - 100, (int) (height * 0.7), "Highlight Slayer Bosses: " + Utils.getColouredBoolean(ToggleCommand.highlightSlayers));
this.buttonList.add(off);
this.buttonList.add(zombie);
@@ -79,6 +85,7 @@ public class OnlySlayerGui extends GuiScreen {
this.buttonList.add(three);
this.buttonList.add(four);
this.buttonList.add(five);
+ this.buttonList.add(highlightSlayers);
this.buttonList.add(goBack);
}
@@ -125,7 +132,12 @@ public class OnlySlayerGui extends GuiScreen {
onlyNumberInt = 4;
} else if (button == five) {
onlyNumberInt = 5;
- }
+ } else if (button == highlightSlayers) {
+ ToggleCommand.highlightSlayers = !ToggleCommand.highlightSlayers;
+ ConfigHandler.writeBooleanConfig("toggles", "HighlightSlayers", ToggleCommand.highlightSlayers);
+ highlightSlayers.displayString = "Highlight Slayer Bosses: " + Utils.getColouredBoolean(ToggleCommand.highlightSlayers);
+ return;
+ }
String onlyNumber;
switch (onlyNumberInt) {
diff --git a/src/main/java/me/Danker/handlers/ConfigHandler.java b/src/main/java/me/Danker/handlers/ConfigHandler.java
index 6b17b3c..89eed6c 100644
--- a/src/main/java/me/Danker/handlers/ConfigHandler.java
+++ b/src/main/java/me/Danker/handlers/ConfigHandler.java
@@ -214,17 +214,24 @@ public class ConfigHandler {
ToggleCommand.goldenToggled = initBoolean("toggles", "Golden", false);
ToggleCommand.slayerCountTotal = initBoolean("toggles", "SlayerCount", true);
ToggleCommand.rngesusAlerts = initBoolean("toggles", "RNGesusAlerts", false);
+ ToggleCommand.ghostDisplay = initBoolean("toggles", "GhostDisplay", true);
+ ToggleCommand.dungeonTimerToggled = initBoolean("toggles", "GhostTimer", false);
ToggleCommand.splitFishing = initBoolean("toggles", "SplitFishing", true);
ToggleCommand.chatMaddoxToggled = initBoolean("toggles", "ChatMaddox", false);
ToggleCommand.spiritBearAlerts = initBoolean("toggles", "SpiritBearAlerts", false);
ToggleCommand.aotdToggled = initBoolean("toggles", "AOTD", false);
ToggleCommand.lividDaggerToggled = initBoolean("toggles", "LividDagger", false);
+ ToggleCommand.shadowFuryToggled = initBoolean("toggles", "Shadow Fury", false);
ToggleCommand.petColoursToggled = initBoolean("toggles", "PetColors", false);
ToggleCommand.golemAlertToggled = initBoolean("toggles", "GolemAlerts", false);
ToggleCommand.expertiseLoreToggled = initBoolean("toggles", "ExpertiseLore", false);
ToggleCommand.skill50DisplayToggled = initBoolean("toggles", "Skill50Display", false);
ToggleCommand.outlineTextToggled = initBoolean("toggles", "OutlineText", false);
ToggleCommand.cakeTimerToggled = initBoolean("toggles", "CakeTimer", false);
+ ToggleCommand.specialHoeRightClick = initBoolean("toggles", "SpecialHoe", false);
+ ToggleCommand.melodyTooltips = initBoolean("toggles", "MelodyTooltips", false);
+ ToggleCommand.highlightSlayers = initBoolean("toggles", "HighlightSlayers", false);
+ ToggleCommand.highlightArachne = initBoolean("toggles", "HighlightArachne", false);
// Chat Messages
ToggleCommand.sceptreMessages = initBoolean("toggles", "SceptreMessages", true);
ToggleCommand.midasStaffMessages = initBoolean("toggles", "MidasStaffMessages", true);
@@ -439,7 +446,15 @@ public class ConfigHandler {
LootTracker.witherBoots = initInt("catacombs", "witherBoot", 0);
LootTracker.f7CoinsSpent = initDouble("catacombs", "floorSevenCoins", 0);
LootTracker.f7TimeSpent = initDouble("catacombs", "floorSevenTime", 0);
-
+
+ // Ghost
+ LootTracker.sorrows = initInt("ghosts", "sorrow", 0);
+ LootTracker.voltas = initInt("ghosts", "volta", 0);
+ LootTracker.plasmas = initInt("ghosts", "plasma", 0);
+ LootTracker.ghostlyBoots = initInt("ghosts", "ghostlyBoots", 0);
+ LootTracker.bagOfCashs = initInt("ghosts", "bagOfCash", 0);
+
+
// Misc
LootDisplay.display = initString("misc", "display", "off");
LootDisplay.auto = initBoolean("misc", "autoDisplay", false);
@@ -498,6 +513,8 @@ public class ConfigHandler {
BonzoMaskTimer.BONZO_COLOR = initString("colors", "bonzoDisplay", EnumChatFormatting.RED.toString());
BlazeSolver.LOWEST_BLAZE_COLOUR = initInt("colors", "blazeLowest", 0xFF0000);
BlazeSolver.HIGHEST_BLAZE_COLOUR = initInt("colors", "blazeHighest", 0x40FF40);
+ SlayerESP.SLAYER_COLOUR = initInt("colors", "slayerColor", 0x0000FF);
+ ArachneESP.ARACHANE_COLOUR = initInt("colors", "arachneColor", 0x00FF00);
PetColours.PET_1_TO_9 = initInt("colors", "pet1To9", 0x999999); // Grey
PetColours.PET_10_TO_19 = initInt("colors", "pet10To19", 0xD62440); // Red
PetColours.PET_20_TO_29 = initInt("colors", "pet20To29", 0xEF5230); // Orange