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.java1
-rw-r--r--src/main/java/me/Danker/commands/LobbyBankCommand.java139
-rw-r--r--src/main/java/me/Danker/commands/ToggleCommand.java34
-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/gui/DankerGui.java23
-rw-r--r--src/main/java/me/Danker/handlers/ConfigHandler.java3
7 files changed, 208 insertions, 7 deletions
diff --git a/src/main/java/me/Danker/DankersSkyblockMod.java b/src/main/java/me/Danker/DankersSkyblockMod.java
index dbb79dc..b5c1cff 100644
--- a/src/main/java/me/Danker/DankersSkyblockMod.java
+++ b/src/main/java/me/Danker/DankersSkyblockMod.java
@@ -169,6 +169,7 @@ public class DankersSkyblockMod {
ClientCommandHandler.instance.registerCommand(new DankerGuiCommand());
ClientCommandHandler.instance.registerCommand(new SkillTrackerCommand());
ClientCommandHandler.instance.registerCommand(new FairySoulsCommand());
+ ClientCommandHandler.instance.registerCommand(new LobbyBankCommand());
}
@EventHandler
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 294cf1a..e44f8ce 100644
--- a/src/main/java/me/Danker/commands/ToggleCommand.java
+++ b/src/main/java/me/Danker/commands/ToggleCommand.java
@@ -23,6 +23,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
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 golemAlertToggled;
@@ -69,7 +70,9 @@ 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;
+
@Override
public String getCommandName() {
return "toggle";
@@ -79,13 +82,14 @@ public class ToggleCommand extends CommandBase implements ICommand {
public String getCommandUsage(ICommandSender arg0) {
return "/" + getCommandName() + " <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/chatmaddox/spiritbearalert/" +
- "aotd/lividdagger/flowerweapons/sceptremessages/petcolors/dungeontimer/golemalerts/expertiselore/" +
+ "aotd/lividdagger/shadowfury/flowerweapons/sceptremessages/petcolors/dungeontimer/golemalerts/expertiselore/" +
"skill50display/outlinetext/midasstaffmessages/implosionmessages/healmessages/cooldownmessages/" +
"manamessages/killcombomessages/caketimer/lowhealthnotify/lividsolver/stopsalvagestarred/" +
"notifyslayerslain/necronnotifications/bonzotimer/threemanpuzzle/oruopuzzle/blazepuzzle/" +
"creeperpuzzle/waterpuzzle/tictactoepuzzle/boulderpuzzle/silverfishpuzzle/watchermessage/" +
"startswithterminal/selectallterminal/clickinorderterminal/blockwrongterminalclicks/" +
- "itemframeonsealanterns/ultrasequencer/chronomatron/superpairs/hidetooltipsinaddons/pickblock/list>";
+ "itemframeonsealanterns/ultrasequencer/chronomatron/superpairs/hidetooltipsinaddons/pickblock/ " +
+ "/specialhoe/melodytooltips/list>";
}
@Override
@@ -97,7 +101,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
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",
+ "splitfishing", "chatmaddox", "spiritbearalerts", "aotd", "lividdagger", "shadowfury",
"flowerweapons", "sceptremessages", "petcolors", "dungeontimer", "golemalerts",
"expertiselore", "skill50display", "outlinetext", "midasstaffmessages",
"implosionmessages", "healmessages", "cooldownmessages", "manamessages",
@@ -108,7 +112,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
"silverfishpuzzle", "watchermessage", "startswithterminal",
"selectallterminal", "clickinorderterminal", "blockwrongterminalclicks",
"itemframeonsealanterns", "ultrasequencer", "chronomatron", "superpairs",
- "hidetooltipsinaddons", "pickblock", "list");
+ "hidetooltipsinaddons", "pickblock", "specialhoe", "melodytooltips", "list");
}
return null;
}
@@ -171,6 +175,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":
@@ -379,6 +388,16 @@ 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 "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" +
@@ -397,7 +416,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" +
@@ -424,7 +442,9 @@ 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
+ 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
));
break;
default:
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/gui/DankerGui.java b/src/main/java/me/Danker/gui/DankerGui.java
index a6d2bb1..32aab9c 100644
--- a/src/main/java/me/Danker/gui/DankerGui.java
+++ b/src/main/java/me/Danker/gui/DankerGui.java
@@ -46,6 +46,9 @@ public class DankerGui extends GuiScreen {
private GuiButton skill50Display;
private GuiButton outlineText;
private GuiButton cakeTimer;
+ private GuiButton shadowFury;
+ private GuiButton specialHoe;
+ private GuiButton melodyTooltips;
// Chat Messages
private GuiButton lividDagger;
private GuiButton sceptreMessages;
@@ -138,6 +141,9 @@ public class DankerGui extends GuiScreen {
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));
+ shadowFury = new GuiButton(0, width / 2 - 100, (int) (height * 0.5), "Block Shadow Fury ability: " + Utils.getColouredBoolean(ToggleCommand.shadowFuryToggled));
+ specialHoe = new GuiButton(0, width / 2 - 100, (int) (height * 0.6), "Block Special Hoe right click: " + Utils.getColouredBoolean(ToggleCommand.specialHoeRightClick));
+ melodyTooltips = new GuiButton(0, width / 2 - 100, (int) (height * 0.7), "Hide tooltips in Melody's Harp: " + Utils.getColouredBoolean(ToggleCommand.melodyTooltips));
switch (page) {
case 1:
@@ -180,6 +186,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;
@@ -191,6 +198,7 @@ public class DankerGui extends GuiScreen {
this.buttonList.add(stopSalvageStarred);
this.buttonList.add(watcherReadyMessage);
this.buttonList.add(flowerWeapons);
+ this.buttonList.add(notifySlayerSlain);
this.buttonList.add(nextPage);
this.buttonList.add(backPage);
break;
@@ -199,6 +207,9 @@ public class DankerGui extends GuiScreen {
this.buttonList.add(necronNotifications);
this.buttonList.add(bonzoTimer);
this.buttonList.add(autoSkillTracker);
+ this.buttonList.add(shadowFury);
+ this.buttonList.add(specialHoe);
+ this.buttonList.add(melodyTooltips);
this.buttonList.add(backPage);
break;
}
@@ -382,6 +393,18 @@ 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);
diff --git a/src/main/java/me/Danker/handlers/ConfigHandler.java b/src/main/java/me/Danker/handlers/ConfigHandler.java
index 52b1883..892f231 100644
--- a/src/main/java/me/Danker/handlers/ConfigHandler.java
+++ b/src/main/java/me/Danker/handlers/ConfigHandler.java
@@ -219,12 +219,15 @@ public class ConfigHandler {
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);
// Chat Messages
ToggleCommand.sceptreMessages = initBoolean("toggles", "SceptreMessages", true);
ToggleCommand.midasStaffMessages = initBoolean("toggles", "MidasStaffMessages", true);