aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/me/Danker/DankersSkyblockMod.java174
-rw-r--r--src/main/java/me/Danker/commands/DHelpCommand.java6
-rw-r--r--src/main/java/me/Danker/commands/DankerGuiCommand.java76
-rw-r--r--src/main/java/me/Danker/commands/MoveCommand.java12
-rw-r--r--src/main/java/me/Danker/commands/ScaleCommand.java11
-rw-r--r--src/main/java/me/Danker/commands/ToggleCommand.java33
-rw-r--r--src/main/java/me/Danker/gui/DankerGui.java19
-rw-r--r--src/main/java/me/Danker/gui/EditLocationsGui.java24
-rw-r--r--src/main/java/me/Danker/gui/ExperimentsGui.java15
-rw-r--r--src/main/java/me/Danker/handlers/ConfigHandler.java40
-rw-r--r--src/main/java/me/Danker/utils/Utils.java27
11 files changed, 341 insertions, 96 deletions
diff --git a/src/main/java/me/Danker/DankersSkyblockMod.java b/src/main/java/me/Danker/DankersSkyblockMod.java
index 7c82986..64a1f5b 100644
--- a/src/main/java/me/Danker/DankersSkyblockMod.java
+++ b/src/main/java/me/Danker/DankersSkyblockMod.java
@@ -7,7 +7,6 @@ import me.Danker.handlers.*;
import me.Danker.utils.TicTacToeUtils;
import me.Danker.utils.Utils;
import net.minecraft.block.Block;
-import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.gui.Gui;
@@ -68,18 +67,20 @@ import java.awt.*;
import java.text.NumberFormat;
import java.util.List;
import java.util.*;
+import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Mod(modid = DankersSkyblockMod.MODID, version = DankersSkyblockMod.VERSION, clientSideOnly = true)
public class DankersSkyblockMod
{
public static final String MODID = "Danker's Skyblock Mod";
- public static final String VERSION = "1.8.3";
+ public static final String VERSION = "1.8.5-beta3";
static double checkItemsNow = 0;
static double itemsChecked = 0;
public static Map<String, String> t6Enchants = new HashMap<>();
- public static Pattern pattern = Pattern.compile("");
+ public static Pattern t6EnchantPattern = Pattern.compile("");
+ static Pattern petPattern = Pattern.compile("\\[Lvl [\\d]{1,3}]");
static boolean updateChecked = false;
public static int titleTimer = -1;
public static boolean showTitle = false;
@@ -114,7 +115,9 @@ public class DankersSkyblockMod
static List<Vec3[]> creeperLines = new ArrayList<>();
static boolean prevInWaterRoom = false;
static boolean inWaterRoom = false;
+ static String waterAnswers = null;
static AxisAlignedBB correctTicTacToeButton = null;
+ static Pattern startsWithTerminalPattern = Pattern.compile("[A-Z]{2,}");
static Slot[] clickInOrderSlots = new Slot[36];
static int lastChronomatronRound = 0;
static List<String> chronomatronPattern = new ArrayList<>();
@@ -166,6 +169,17 @@ public class DankersSkyblockMod
public static String TRIVIA_WRONG_ANSWER_COLOUR;
public static int LOWEST_BLAZE_COLOUR;
public static int HIGHEST_BLAZE_COLOUR;
+ public static int PET_1_TO_9;
+ public static int PET_10_TO_19;
+ public static int PET_20_TO_29;
+ public static int PET_30_TO_39;
+ public static int PET_40_TO_49;
+ public static int PET_50_TO_59;
+ public static int PET_60_TO_69;
+ public static int PET_70_TO_79;
+ public static int PET_80_TO_89;
+ public static int PET_90_TO_99;
+ public static int PET_100;
@EventHandler
public void init(FMLInitializationEvent event) {
@@ -246,7 +260,7 @@ public class DankersSkyblockMod
"Booger Dragon", "Older Dragon", "Elder Dragon", "Stable Dragon", "Professor Dragon"});
String patternString = "(" + String.join("|", t6Enchants.keySet()) + ")";
- pattern = Pattern.compile(patternString);
+ t6EnchantPattern = Pattern.compile(patternString);
keyBindings[0] = new KeyBinding("Open Maddox Menu", Keyboard.KEY_M, "Danker's Skyblock Mod");
keyBindings[1] = new KeyBinding("Start/Stop Skill Tracker", Keyboard.KEY_NUMPAD5, "Danker's Skyblock Mod");
@@ -442,7 +456,10 @@ public class DankersSkyblockMod
if (message.contains("[BOSS] The Watcher: You have proven yourself. You may pass.")) {
watcherClearTime = System.currentTimeMillis() / 1000;
- }
+ }
+ if (message.contains("[BOSS] The Watcher: That will be enough for now.")) {
+ if (ToggleCommand.watcherReadyToggled) Utils.createTitle(EnumChatFormatting.RED + "WATCHER READY", 2);
+ }
if (message.contains("PUZZLE FAIL! ") || message.contains("chose the wrong answer! I shall never forget this moment")) {
puzzleFails++;
}
@@ -464,7 +481,7 @@ public class DankersSkyblockMod
event.setCanceled(true);
return;
}
-
+ // Implosion
if (!ToggleCommand.implosionMessages) {
if (message.contains("Your Implosion hit ") || message.contains("There are blocks in the way")) {
event.setCanceled(true);
@@ -1281,7 +1298,11 @@ public class DankersSkyblockMod
new TextRenderer(mc, skillTrackerText, MoveCommand.skillTrackerXY[0], MoveCommand.skillTrackerXY[1], ScaleCommand.skillTrackerScale);
}
-
+
+ if (ToggleCommand.waterToggled && Utils.inDungeons && waterAnswers != null) {
+ new TextRenderer(mc, waterAnswers, MoveCommand.waterAnswerXY[0], MoveCommand.waterAnswerXY[1], ScaleCommand.waterAnswerScale);
+ }
+
if (!DisplayCommand.display.equals("off")) {
String dropsText = "";
String countText = "";
@@ -2249,12 +2270,13 @@ public class DankersSkyblockMod
}
}
}
- }
+ }
if (mc.currentScreen instanceof GuiChest) {
ContainerChest chest = (ContainerChest) player.openContainer;
IInventory inv = chest.getLowerChestInventory();
String chestName = inv.getDisplayName().getUnformattedText();
+
if (ToggleCommand.superpairsToggled && chestName.contains("Superpairs (")) {
if (Item.getIdFromItem(item.getItem()) != 95) return;
if (item.getDisplayName().contains("Click any button") || item.getDisplayName().contains("Click a second button") || item.getDisplayName().contains("Next button is instantly rewarded") || item.getDisplayName().contains("Stained Glass")) {
@@ -2274,10 +2296,28 @@ public class DankersSkyblockMod
}
}
- }
-
+ }
}
+ @SubscribeEvent(priority = EventPriority.LOW)
+ public void onTooltipLow(ItemTooltipEvent event) {
+ if (!Utils.inSkyblock) return;
+ if (event.toolTip == null) return;
+
+ Minecraft mc = Minecraft.getMinecraft();
+ EntityPlayerSP player = mc.thePlayer;
+
+ if (mc.currentScreen instanceof GuiChest) {
+ ContainerChest chest = (ContainerChest) player.openContainer;
+ IInventory inv = chest.getLowerChestInventory();
+ String chestName = inv.getDisplayName().getUnformattedText();
+
+ if (ToggleCommand.hideTooltipsInExperimentAddonsToggled && (chestName.startsWith("Ultrasequencer (") || chestName.startsWith("Chronomatron ("))) {
+ event.toolTip.clear();
+ }
+ }
+ }
+
@SubscribeEvent
public void onTick(TickEvent.ClientTickEvent event) {
if (event.phase != Phase.START) return;
@@ -2476,14 +2516,12 @@ public class DankersSkyblockMod
purple = orange = blue = green = red = ERROR_COLOUR + "Error detecting water puzzle variant.";
break;
}
- player.addChatMessage(new ChatComponentText(DELIMITER_COLOUR + EnumChatFormatting.BOLD + "-------------------\n" +
- MAIN_COLOUR + " The following levers must be down:\n " +
- EnumChatFormatting.DARK_PURPLE + "Purple: " + purple + "\n " +
- EnumChatFormatting.GOLD + "Orange: " + orange + "\n " +
- EnumChatFormatting.BLUE + "Blue: " + blue + "\n " +
- EnumChatFormatting.GREEN + "Green: " + green + "\n " +
- EnumChatFormatting.RED + "Red: " + red + "\n" +
- DELIMITER_COLOUR + EnumChatFormatting.BOLD + " -------------------"));
+ waterAnswers = MAIN_COLOUR + "The following levers must be down:\n" +
+ EnumChatFormatting.DARK_PURPLE + "Purple: " + purple + "\n" +
+ EnumChatFormatting.GOLD + "Orange: " + orange + "\n" +
+ EnumChatFormatting.BLUE + "Blue: " + blue + "\n" +
+ EnumChatFormatting.GREEN + "Green: " + green + "\n" +
+ EnumChatFormatting.RED + "Red: " + red;
done = true;
break;
}
@@ -2491,7 +2529,9 @@ public class DankersSkyblockMod
}
if (done) break;
}
- }
+ } else {
+ waterAnswers = null;
+ }
}).start();
}
@@ -2648,7 +2688,8 @@ public class DankersSkyblockMod
List<String> scoreboard = ScoreboardHandler.getSidebarLines();
for (String score : scoreboard) {
if (score.endsWith("❤") && score.matches(".*§c\\d.*")) {
- Utils.createTitle(EnumChatFormatting.RED + "LOW HEALTH!", 1);
+ String name = score.substring(score.indexOf(" ") + 1);
+ Utils.createTitle(EnumChatFormatting.RED + "LOW HEALTH!\n" + name, 1);
break;
}
}
@@ -2783,9 +2824,8 @@ public class DankersSkyblockMod
}
}
- if(event.action == PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK) {
- IBlockState blockState = Minecraft.getMinecraft().theWorld.getBlockState(event.pos);
- Block block = blockState.getBlock();
+ if (event.action == PlayerInteractEvent.Action.RIGHT_CLICK_BLOCK) {
+ Block block = Minecraft.getMinecraft().theWorld.getBlockState(event.pos).getBlock();
ArrayList<Block> interactables = new ArrayList<>(Arrays.asList(
Blocks.acacia_door,
Blocks.anvil,
@@ -2821,11 +2861,11 @@ public class DankersSkyblockMod
Blocks.oak_door,
Blocks.skull
));
- if(Utils.inDungeons) {
+ if (Utils.inDungeons) {
interactables.add(Blocks.coal_block);
interactables.add(Blocks.stained_hardened_clay);
}
- if(!interactables.contains(block)) {
+ if (!interactables.contains(block)) {
if (ToggleCommand.aotdToggled && item.getDisplayName().contains("Aspect of the Dragons")) {
event.setCanceled(true);
}
@@ -2877,8 +2917,8 @@ public class DankersSkyblockMod
@SubscribeEvent
public void onGuiMouseInputPre(GuiScreenEvent.MouseInputEvent.Pre event) {
if (!Utils.inSkyblock) return;
- if (Mouse.getEventButton() != 0 && Mouse.getEventButton() != 1 && Mouse.getEventButton() != 2) return; // Left click or right click
- if (!Mouse.isButtonDown(0) && !Mouse.isButtonDown(1) && !Mouse.isButtonDown(2)) return;
+ if (Mouse.getEventButton() != 0 && Mouse.getEventButton() != 1 && Mouse.getEventButton() != 2) return; // Left click, middle click or right click
+ if (!Mouse.getEventButtonState()) return;
if (event.gui instanceof GuiChest) {
Container containerChest = ((GuiChest) event.gui).inventorySlots;
@@ -2891,12 +2931,12 @@ public class DankersSkyblockMod
ItemStack item = mouseSlot.getStack();
String inventoryName = inventory.getDisplayName().getUnformattedText();
- if(ToggleCommand.stopSalvageStarredToggled && inventoryName.startsWith("Salvage")) {
- if(item == null) return;
+ if (ToggleCommand.stopSalvageStarredToggled && inventoryName.startsWith("Salvage")) {
+ if (item == null) return;
boolean inSalvageGui = false;
- if(item.getDisplayName().contains("Salvage") || item.getDisplayName().contains("Essence")) {
+ if (item.getDisplayName().contains("Salvage") || item.getDisplayName().contains("Essence")) {
ItemStack salvageItem = inventory.getStackInSlot(13);
- if(salvageItem == null) return;
+ if (salvageItem == null) return;
item = salvageItem;
inSalvageGui = true;
}
@@ -3037,15 +3077,15 @@ public class DankersSkyblockMod
GuiChest chest = (GuiChest) event.gui;
IInventory inventory = ((ContainerChest) containerChest).getLowerChestInventory();
String inventoryName = inventory.getDisplayName().getUnformattedText();
- if(ToggleCommand.swapToPickBlockInExperimentsToggled) {
- if(inventoryName.startsWith("Chronomatron (") || inventoryName.startsWith("Superpairs (") || inventoryName.startsWith("Ultrasequencer (")) {
- if(!pickBlockBindSwapped) {
+ if (ToggleCommand.swapToPickBlockToggled) {
+ if (inventoryName.startsWith("Chronomatron (") || inventoryName.startsWith("Superpairs (") || inventoryName.startsWith("Ultrasequencer (") || inventoryName.startsWith("What starts with:") || inventoryName.startsWith("Select all the") || inventoryName.startsWith("Harp -")) {
+ if (!pickBlockBindSwapped) {
pickBlockBind = gameSettings.keyBindPickBlock.getKeyCode();
gameSettings.keyBindPickBlock.setKeyCode(-100);
pickBlockBindSwapped = true;
}
} else {
- if(pickBlockBindSwapped) {
+ if (pickBlockBindSwapped) {
gameSettings.keyBindPickBlock.setKeyCode(pickBlockBind);
pickBlockBindSwapped = false;
}
@@ -3077,7 +3117,6 @@ public class DankersSkyblockMod
int chestSize = inventory.inventorySlots.inventorySlots.size();
if (ToggleCommand.petColoursToggled) {
- Pattern petPattern = Pattern.compile("\\[Lvl [\\d]{1,3}]");
for (Slot slot : invSlots) {
ItemStack item = slot.getStack();
if (item == null) continue;
@@ -3087,29 +3126,29 @@ public class DankersSkyblockMod
int colour;
int petLevel = Integer.parseInt(item.getDisplayName().substring(item.getDisplayName().indexOf(" ") + 1, item.getDisplayName().indexOf("]")));
if (petLevel == 100) {
- colour = 0xBFF2D249; // Gold
+ colour = PET_100;
} else if (petLevel >= 90) {
- colour = 0xBF9E794E; // Brown
+ colour = PET_90_TO_99;
} else if (petLevel >= 80) {
- colour = 0xBF5C1F35; // idk weird magenta
+ colour = PET_80_TO_89;
} else if (petLevel >= 70) {
- colour = 0xBFD64FC8; // Pink
+ colour = PET_70_TO_79;
} else if (petLevel >= 60) {
- colour = 0xBF7E4FC6; // Purple
+ colour = PET_60_TO_69;
} else if (petLevel >= 50) {
- colour = 0xBF008AD8; // Light Blue
+ colour = PET_50_TO_59;
} else if (petLevel >= 40) {
- colour = 0xBF0EAC35; // Green
+ colour = PET_40_TO_49;
} else if (petLevel >= 30) {
- colour = 0xBFFFC400; // Yellow
+ colour = PET_30_TO_39;
} else if (petLevel >= 20) {
- colour = 0xBFEF5230; // Orange
+ colour = PET_20_TO_29;
} else if (petLevel >= 10) {
- colour = 0xBFD62440; // Red
+ colour = PET_10_TO_19;
} else {
- colour = 0xBF999999; // Gray
+ colour = PET_1_TO_9;
}
- Utils.drawOnSlot(chestSize, slot.xDisplayPosition, slot.yDisplayPosition, colour);
+ Utils.drawOnSlot(chestSize, slot.xDisplayPosition, slot.yDisplayPosition, colour + 0xBF000000);
}
}
}
@@ -3126,14 +3165,22 @@ public class DankersSkyblockMod
}
if (ToggleCommand.selectAllToggled && Utils.inDungeons && displayName.startsWith("Select all the")) {
- String colour = displayName.split(" ")[3];
+ String colour;
+ List<String> colourParts = new ArrayList<>();
+ Matcher colourMatcher = startsWithTerminalPattern.matcher(displayName);
+ while (colourMatcher.find()) {
+ colourParts.add(colourMatcher.group());
+ }
+ colour = String.join(" ", colourParts);
+
for (Slot slot : invSlots) {
ItemStack item = slot.getStack();
if (item == null) continue;
- if (item.getDisplayName().toUpperCase().contains(colour)) {
+ String itemName = StringUtils.stripControlCodes(item.getDisplayName()).toUpperCase();
+ if (itemName.contains(colour) || (colour.equals("SILVER") && itemName.contains("LIGHT GRAY")) || (colour.equals("WHITE") && itemName.equals("WOOL"))) {
Utils.drawOnSlot(chestSize, slot.xDisplayPosition, slot.yDisplayPosition, 0xBF40FF40);
- }
- }
+ }
+ }
}
if (ToggleCommand.ultrasequencerToggled && displayName.startsWith("Ultrasequencer (")) {
@@ -3152,6 +3199,12 @@ public class DankersSkyblockMod
Slot nextSlot = clickInOrderSlots[lastUltraSequencerClicked];
Utils.drawOnSlot(chestSize, nextSlot.xDisplayPosition, nextSlot.yDisplayPosition, 0xE540FF40);
}
+ if (lastUltraSequencerClicked + 1 < clickInOrderSlots.length) {
+ if (clickInOrderSlots[lastUltraSequencerClicked + 1] != null) {
+ Slot nextSlot = clickInOrderSlots[lastUltraSequencerClicked + 1];
+ Utils.drawOnSlot(chestSize, nextSlot.xDisplayPosition, nextSlot.yDisplayPosition, 0xD740DAE6);
+ }
+ }
}
}
}
@@ -3176,8 +3229,23 @@ public class DankersSkyblockMod
for (int i = 10; i <= 43; i++) {
ItemStack glass = invSlots.get(i).getStack();
if (glass == null) continue;
+
Slot glassSlot = invSlots.get(i);
- if (glass.getDisplayName().equals(chronomatronPattern.get(chronomatronMouseClicks))) {
+
+ if (chronomatronMouseClicks + 1 < chronomatronPattern.size()) {
+ if (chronomatronPattern.get(chronomatronMouseClicks).equals(chronomatronPattern.get(chronomatronMouseClicks + 1))) {
+ if (glass.getDisplayName().equals(chronomatronPattern.get(chronomatronMouseClicks))) {
+ Utils.drawOnSlot(chestSize, glassSlot.xDisplayPosition, glassSlot.yDisplayPosition, 0xE540FF40);
+ }
+ }
+ else if (glass.getDisplayName().equals(chronomatronPattern.get(chronomatronMouseClicks))) {
+ Utils.drawOnSlot(chestSize, glassSlot.xDisplayPosition, glassSlot.yDisplayPosition, 0xE540FF40);
+ }
+ else if (glass.getDisplayName().equals(chronomatronPattern.get(chronomatronMouseClicks + 1))) {
+ Utils.drawOnSlot(chestSize, glassSlot.xDisplayPosition, glassSlot.yDisplayPosition, 0xBE40DAE6);
+ }
+ }
+ else if (glass.getDisplayName().equals(chronomatronPattern.get(chronomatronMouseClicks))) {
Utils.drawOnSlot(chestSize, glassSlot.xDisplayPosition, glassSlot.yDisplayPosition, 0xE540FF40);
}
}
diff --git a/src/main/java/me/Danker/commands/DHelpCommand.java b/src/main/java/me/Danker/commands/DHelpCommand.java
index 1628c0c..395f40d 100644
--- a/src/main/java/me/Danker/commands/DHelpCommand.java
+++ b/src/main/java/me/Danker/commands/DHelpCommand.java
@@ -34,14 +34,14 @@ public class DHelpCommand extends CommandBase {
EnumChatFormatting.GOLD + " Commands, " + EnumChatFormatting.GREEN + " Keybinds.\n" +
EnumChatFormatting.GOLD + " /dhelp" + EnumChatFormatting.AQUA + " - Returns this message.\n" +
EnumChatFormatting.GOLD + " /dsm" + EnumChatFormatting.AQUA + " - Opens the GUI for Danker's Skyblock Mod.\n" +
- EnumChatFormatting.GOLD + " /toggle <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/chatmaddox/spiritbearalerts/aotd/lividdagger/sceptremessages/midasstaffmessages/implosionmessages/healmessages/petcolors/dungeontimer/golemalerts/expertiselore/skill50display/outlinetext/caketimer/lowhealthnotify/lividsolver/threemanpuzzle/oruopuzzle/blazepuzzle/creeperpuzzle/waterpuzzle/tictactoepuzzle/startswithterminal/selectallterminal/itemframeonsealanterns/ultrasequencer/chronomatron/superpairs/list>" + EnumChatFormatting.AQUA + " - Toggles features. /toggle list returns values of every toggle.\n" +
+ EnumChatFormatting.GOLD + " /toggle <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/chatmaddox/spiritbearalerts/aotd/lividdagger/sceptremessages/midasstaffmessages/implosionmessages/healmessages/petcolors/dungeontimer/golemalerts/expertiselore/skill50display/outlinetext/caketimer/lowhealthnotify/lividsolver/threemanpuzzle/oruopuzzle/blazepuzzle/creeperpuzzle/waterpuzzle/tictactoepuzzle/watchermessage/startswithterminal/selectallterminal/itemframeonsealanterns/ultrasequencer/chronomatron/superpairs/hidetooltipsinaddons/pickblock/list>" + EnumChatFormatting.AQUA + " - Toggles features. /toggle list returns values of every toggle.\n" +
EnumChatFormatting.GOLD + " /setkey <key>" + EnumChatFormatting.AQUA + " - Sets API key.\n" +
EnumChatFormatting.GOLD + " /getkey" + EnumChatFormatting.AQUA + " - Returns key set with /setkey and copies it to your clipboard.\n" +
EnumChatFormatting.GOLD + " /loot <zombie/spider/wolf/fishing/catacombs/mythological/> [winter/festival/spooky/f(1-7)/session]" + EnumChatFormatting.AQUA + " - Returns loot received from slayer quests or fishing stats. /loot fishing winter returns winter sea creatures instead.\n" +
EnumChatFormatting.GOLD + " /display <zombie/spider/wolf/fishing/catacombs/mythological/auto/off> [winter/festival/spooky/f(1-7)/session]" + EnumChatFormatting.AQUA + " - Text display for trackers. /display fishing winter displays winter sea creatures instead. /display auto automatically displays the loot for the slayer quest you have active.\n" +
EnumChatFormatting.GOLD + " /resetloot <zombie/spider/wolf/fishing/catacombs/mythological/confirm/cancel>" + EnumChatFormatting.AQUA + " - Resets loot for trackers. /resetloot confirm confirms the reset.\n" +
- EnumChatFormatting.GOLD + " /move <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker> <x> <y>" + EnumChatFormatting.AQUA + " - Moves text display to specified X and Y coordinates.\n" +
- EnumChatFormatting.GOLD + " /scale <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker> <scale (0.1 - 10)>" + EnumChatFormatting.AQUA + " - Scales text display to a specified multipler between 0.1x and 10x.\n" +
+ EnumChatFormatting.GOLD + " /move <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer> <x> <y>" + EnumChatFormatting.AQUA + " - Moves text display to specified X and Y coordinates.\n" +
+ EnumChatFormatting.GOLD + " /scale <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer> <scale (0.1 - 10)>" + EnumChatFormatting.AQUA + " - Scales text display to a specified multipler between 0.1x and 10x.\n" +
EnumChatFormatting.GOLD + " /slayer [player]" + EnumChatFormatting.AQUA + " - Uses API to get slayer xp of a person. If no name is provided, it checks yours.\n" +
EnumChatFormatting.GOLD + " /skills [player]" + EnumChatFormatting.AQUA + " - Uses API to get skill levels of a person. If no name is provided, it checks yours.\n" +
EnumChatFormatting.GOLD + " /lobbyskills" + EnumChatFormatting.AQUA + " - Uses API to find the average skills of the lobby, as well the three players with the highest skill average.\n" +
diff --git a/src/main/java/me/Danker/commands/DankerGuiCommand.java b/src/main/java/me/Danker/commands/DankerGuiCommand.java
index 18230e6..b10980f 100644
--- a/src/main/java/me/Danker/commands/DankerGuiCommand.java
+++ b/src/main/java/me/Danker/commands/DankerGuiCommand.java
@@ -1,9 +1,15 @@
package me.Danker.commands;
import me.Danker.DankersSkyblockMod;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.resources.ResourcePackRepository;
import net.minecraft.command.CommandBase;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
+import net.minecraft.util.ChatComponentText;
+
+import java.awt.*;
+import java.awt.datatransfer.StringSelection;
public class DankerGuiCommand extends CommandBase {
@@ -24,6 +30,76 @@ public class DankerGuiCommand extends CommandBase {
@Override
public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException {
+ if (arg1.length > 0 && arg1[0].equalsIgnoreCase("debug")) {
+ StringBuilder debug = new StringBuilder();
+ debug.append("```md\n");
+ debug.append("# Toggles\n");
+ debug.append("[gparty][").append(ToggleCommand.gpartyToggled).append("]\n");
+ debug.append("[coords][").append(ToggleCommand.coordsToggled).append("]\n");
+ debug.append("[golden][").append(ToggleCommand.goldenToggled).append("]\n");
+ debug.append("[slayercount][").append(ToggleCommand.slayerCountTotal).append("]\n");
+ debug.append("[rngesusalerts][").append(ToggleCommand.rngesusAlerts).append("]\n");
+ debug.append("[splitfishing][").append(ToggleCommand.splitFishing).append("]\n");
+ debug.append("[chatmaddox][").append(ToggleCommand.chatMaddoxToggled).append("]\n");
+ debug.append("[spiritbearalerts][").append(ToggleCommand.spiritBearAlerts).append("]\n");
+ debug.append("[aotd][").append(ToggleCommand.aotdToggled).append("]\n");
+ debug.append("[lividdagger][").append(ToggleCommand.lividDaggerToggled).append("]\n");
+ debug.append("[sceptremessages][").append(ToggleCommand.sceptreMessages).append("]\n");
+ debug.append("[petcolors][").append(ToggleCommand.petColoursToggled).append("]\n");
+ debug.append("[dungeontimer][").append(ToggleCommand.dungeonTimerToggled).append("]\n");
+ debug.append("[golemalerts][").append(ToggleCommand.golemAlertToggled).append("]\n");
+ debug.append("[expertiselore][").append(ToggleCommand.expertiseLoreToggled).append("]\n");
+ debug.append("[skill50display][").append(ToggleCommand.skill50DisplayToggled).append("]\n");
+ debug.append("[outlinetext][").append(ToggleCommand.outlineTextToggled).append("]\n");
+ debug.append("[midasstaffmessages][").append(ToggleCommand.midasStaffMessages).append("]\n");
+ debug.append("[implosionmessages][").append(ToggleCommand.implosionMessages).append("]\n");
+ debug.append("[healmessages][").append(ToggleCommand.healMessages).append("]\n");
+ debug.append("[caketimer][").append(ToggleCommand.cakeTimerToggled).append("]\n");
+ debug.append("[lowhealthnotify][").append(ToggleCommand.lowHealthNotifyToggled).append("]\n");
+ debug.append("[lividsolver][").append(ToggleCommand.lividSolverToggled).append("]\n");
+ debug.append("[stopsalvagestarred][").append(ToggleCommand.stopSalvageStarredToggled).append("]\n");
+ debug.append("[threemanpuzzle][").append(ToggleCommand.threeManToggled).append("]\n");
+ 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("[waterpuzzle][").append(ToggleCommand.waterToggled).append("]\n");
+ debug.append("[tictactoepuzzle][").append(ToggleCommand.ticTacToeToggled).append("]\n");
+ debug.append("[startswithterminal][").append(ToggleCommand.startsWithToggled).append("]\n");
+ debug.append("[selectallterminal][").append(ToggleCommand.selectAllToggled).append("]\n");
+ debug.append("[itemframeonsealanterns][").append(ToggleCommand.itemFrameOnSeaLanternsToggled).append("]\n");
+ debug.append("[ultrasequencer][").append(ToggleCommand.ultrasequencerToggled).append("]\n");
+ debug.append("[chronomatron][").append(ToggleCommand.chronomatronToggled).append("]\n");
+ debug.append("[superpairs][").append(ToggleCommand.superpairsToggled).append("]\n");
+ debug.append("[pickblock][").append(ToggleCommand.swapToPickBlockToggled).append("]\n");
+ debug.append("[watchermessage][").append(ToggleCommand.watcherReadyToggled).append("]\n");
+ debug.append("# Locations\n");
+ debug.append("[coords][").append(MoveCommand.coordsXY[0]).append(", ").append(MoveCommand.coordsXY[1]).append("]\n");
+ debug.append("[display][").append(MoveCommand.displayXY[0]).append(", ").append(MoveCommand.displayXY[1]).append("]\n");
+ debug.append("[dungeontimer][").append(MoveCommand.dungeonTimerXY[0]).append(", ").append(MoveCommand.dungeonTimerXY[1]).append("]\n");
+ debug.append("[skill50][").append(MoveCommand.skill50XY[0]).append(", ").append(MoveCommand.skill50XY[1]).append("]\n");
+ debug.append("[lividhp][").append(MoveCommand.lividHpXY[0]).append(", ").append(MoveCommand.lividHpXY[1]).append("]\n");
+ debug.append("[caketimer][").append(MoveCommand.cakeTimerXY[0]).append(", ").append(MoveCommand.cakeTimerXY[1]).append("]\n");
+ debug.append("[skilltracker][").append(MoveCommand.skillTrackerXY[0]).append(", ").append(MoveCommand.skillTrackerXY[1]).append("]\n");
+ debug.append("[wateranswer][").append(MoveCommand.waterAnswerXY[0]).append(", ").append(MoveCommand.waterAnswerXY[1]).append("]\n");
+ debug.append("# Other Settings\n");
+ debug.append("[Current Display][").append(DisplayCommand.display).append("]\n");
+ debug.append("[Auto Display][").append(DisplayCommand.auto).append("]\n");
+ debug.append("[Skill Tracker Visible][").append(DankersSkyblockMod.showSkillTracker).append("]\n");
+ debug.append("# Resource Packs\n");
+ if (Minecraft.getMinecraft().getResourcePackRepository().getRepositoryEntries().size() == 0) {
+ debug.append("<None>\n");
+ } else {
+ for (ResourcePackRepository.Entry resource : Minecraft.getMinecraft().getResourcePackRepository().getRepositoryEntries()) {
+ debug.append("< ").append(resource.getResourcePackName()).append(" >\n");
+ }
+ }
+ debug.append("```");
+ StringSelection clipboard = new StringSelection(debug.toString());
+ Toolkit.getDefaultToolkit().getSystemClipboard().setContents(clipboard, clipboard);
+ Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Debug stats copied to clipboard."));
+ return;
+ }
+
DankersSkyblockMod.guiToOpen = "dankergui1";
}
diff --git a/src/main/java/me/Danker/commands/MoveCommand.java b/src/main/java/me/Danker/commands/MoveCommand.java
index de5d98f..e9bfe61 100644
--- a/src/main/java/me/Danker/commands/MoveCommand.java
+++ b/src/main/java/me/Danker/commands/MoveCommand.java
@@ -20,6 +20,7 @@ public class MoveCommand extends CommandBase {
public static int[] lividHpXY = {0, 0};
public static int[] cakeTimerXY = {0, 0};
public static int[] skillTrackerXY = {0, 0};
+ public static int[] waterAnswerXY = {0, 0};
@Override
public String getCommandName() {
@@ -28,7 +29,7 @@ public class MoveCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + " <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker> <x> <y>";
+ return "/" + getCommandName() + " <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer> <x> <y>";
}
@Override
@@ -39,7 +40,7 @@ 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");
+ return getListOfStringsMatchingLastWord(args, "coords", "display", "dungeontimer", "skill50", "lividhp", "caketimer", "skilltracker", "wateranswer");
}
return null;
}
@@ -103,6 +104,13 @@ public class MoveCommand extends CommandBase {
ConfigHandler.writeIntConfig("locations", "skillTrackerY", skillTrackerXY[1]);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Skill tracker has been moved to " + DankersSkyblockMod.SECONDARY_COLOUR + arg1[1] + ", " + arg1[2]));
break;
+ case "wateranswer":
+ waterAnswerXY[0] = Integer.parseInt(arg1[1]);
+ waterAnswerXY[1] = Integer.parseInt(arg1[2]);
+ ConfigHandler.writeIntConfig("locations", "waterAnswerX", waterAnswerXY[0]);
+ ConfigHandler.writeIntConfig("locations", "waterAnswerY", waterAnswerXY[1]);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Water solver answer 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/ScaleCommand.java b/src/main/java/me/Danker/commands/ScaleCommand.java
index c194fcb..85d0d5c 100644
--- a/src/main/java/me/Danker/commands/ScaleCommand.java
+++ b/src/main/java/me/Danker/commands/ScaleCommand.java
@@ -8,6 +8,7 @@ import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.BlockPos;
import net.minecraft.util.ChatComponentText;
+import sun.security.krb5.Config;
import java.util.List;
@@ -20,6 +21,7 @@ public class ScaleCommand extends CommandBase {
public static double lividHpScale;
public static double cakeTimerScale;
public static double skillTrackerScale;
+ public static double waterAnswerScale;
@Override
public String getCommandName() {
@@ -28,7 +30,7 @@ public class ScaleCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + " <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker> <size (0.1 - 10)>";
+ return "/" + getCommandName() + " <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer> <size (0.1 - 10)>";
}
@Override
@@ -39,7 +41,7 @@ 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");
+ return getListOfStringsMatchingLastWord(args, "coords", "display", "dungeontimer", "skill50", "lividhp", "caketimer", "skilltracker", "wateranswer");
}
return null;
}
@@ -95,6 +97,11 @@ public class ScaleCommand extends CommandBase {
ConfigHandler.writeDoubleConfig("scales", "skillTrackerScale", skillTrackerScale);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Skill tracker has been scaled to " + DankersSkyblockMod.SECONDARY_COLOUR + skillTrackerScale + "x"));
break;
+ case "wateranswer":
+ waterAnswerScale = scaleAmount;
+ ConfigHandler.writeDoubleConfig("scales", "waterAnswerScale", waterAnswerScale);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Water solver answer has been scaled to " + DankersSkyblockMod.SECONDARY_COLOUR + waterAnswerScale + "x"));
+ break;
default:
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0)));
}
diff --git a/src/main/java/me/Danker/commands/ToggleCommand.java b/src/main/java/me/Danker/commands/ToggleCommand.java
index 5c473e5..172411c 100644
--- a/src/main/java/me/Danker/commands/ToggleCommand.java
+++ b/src/main/java/me/Danker/commands/ToggleCommand.java
@@ -37,6 +37,8 @@ public class ToggleCommand extends CommandBase implements ICommand {
public static boolean lowHealthNotifyToggled;
public static boolean lividSolverToggled;
public static boolean stopSalvageStarredToggled;
+ public static boolean watcherReadyToggled;
+ public static boolean swapToPickBlockToggled;
// Puzzle Solvers
public static boolean threeManToggled;
public static boolean oruoToggled;
@@ -52,7 +54,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
public static boolean ultrasequencerToggled;
public static boolean chronomatronToggled;
public static boolean superpairsToggled;
- public static boolean swapToPickBlockInExperimentsToggled;
+ public static boolean hideTooltipsInExperimentAddonsToggled;
@Override
public String getCommandName() {
@@ -65,7 +67,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
"aotd/lividdagger/sceptremessages/petcolors/dungeontimer/golemalerts/expertiselore/skill50display/" +
"outlinetext/midasstaffmessages/implosionmessages/healmessages/caketimer/lowhealthnotify/" +
"lividsolver/stopsalvagestarred/threemanpuzzle/oruopuzzle/blazepuzzle/creeperpuzzle/waterpuzzle/tictactoepuzzle/" +
- "startswithterminal/selectallterminal/itemframeonsealanterns/ultrasequencer/chronomatron/superpairs/pickblockinexperiments/list>";
+ "watchermessage/startswithterminal/selectallterminal/itemframeonsealanterns/ultrasequencer/chronomatron/superpairs/hidetooltipsinaddons/pickblock/list>";
}
@Override
@@ -82,9 +84,9 @@ public class ToggleCommand extends CommandBase implements ICommand {
"expertiselore", "skill50display", "outlinetext", "midasstaffmessages",
"implosionmessages", "healmessages", "caketimer", "lowhealthnotify",
"lividsolver", "stopsalvagestarred", "threemanpuzzle", "oruopuzzle", "blazepuzzle",
- "creeperpuzzle", "waterpuzzle", "tictactoepuzzle", "startswithterminal",
+ "creeperpuzzle", "waterpuzzle", "tictactoepuzzle", "watchermessage", "startswithterminal",
"selectallterminal", "itemframeonsealanterns", "ultrasequencer",
- "chronomatron", "superpairs", "pickblockinexperiments", "list");
+ "chronomatron", "superpairs", "hidetooltipsinaddons", "pickblock", "list");
}
return null;
}
@@ -250,6 +252,11 @@ public class ToggleCommand extends CommandBase implements ICommand {
ConfigHandler.writeBooleanConfig("toggles", "TicTacToePuzzle", ticTacToeToggled);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Tic tac toe puzzle solver has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + ticTacToeToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
break;
+ case "watchermessage":
+ watcherReadyToggled = !watcherReadyToggled;
+ ConfigHandler.writeBooleanConfig("toggles", "WatcherReadyMessage", watcherReadyToggled);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Display Watcher ready message has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + watcherReadyToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
case "startswithterminal":
startsWithToggled = !startsWithToggled;
ConfigHandler.writeBooleanConfig("toggles", "StartsWithTerminal", startsWithToggled);
@@ -280,10 +287,15 @@ public class ToggleCommand extends CommandBase implements ICommand {
ConfigHandler.writeBooleanConfig("toggles", "Superpairs", superpairsToggled);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Superpairs solver has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + superpairsToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
break;
- case "pickblockinexperiments":
- swapToPickBlockInExperimentsToggled = !swapToPickBlockInExperimentsToggled;
- ConfigHandler.writeBooleanConfig("toggles", "PickBlockInExperiments", superpairsToggled);
- player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Auto-swap to pick block in experiments has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + swapToPickBlockInExperimentsToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
+ case "hidetooltipsinaddons":
+ hideTooltipsInExperimentAddonsToggled = !hideTooltipsInExperimentAddonsToggled;
+ ConfigHandler.writeBooleanConfig("toggles", "HideTooltipsInExperimentAddons", hideTooltipsInExperimentAddonsToggled);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Hide tooltips in ultrasequencer and chronomatron has been set to "