aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/me/Danker/TheMod.java133
-rw-r--r--src/main/java/me/Danker/commands/DHelpCommand.java6
-rw-r--r--src/main/java/me/Danker/commands/MoveCommand.java15
-rw-r--r--src/main/java/me/Danker/commands/ScaleCommand.java13
-rw-r--r--src/main/java/me/Danker/commands/ToggleCommand.java16
-rw-r--r--src/main/java/me/Danker/handlers/ConfigHandler.java8
6 files changed, 138 insertions, 53 deletions
diff --git a/src/main/java/me/Danker/TheMod.java b/src/main/java/me/Danker/TheMod.java
index b24f48e..ac3de48 100644
--- a/src/main/java/me/Danker/TheMod.java
+++ b/src/main/java/me/Danker/TheMod.java
@@ -52,6 +52,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IChatComponent;
+import net.minecraft.util.StringUtils;
import net.minecraftforge.client.ClientCommandHandler;
import net.minecraftforge.client.event.ClientChatReceivedEvent;
import net.minecraftforge.client.event.GuiScreenEvent;
@@ -92,6 +93,14 @@ public class TheMod
static KeyBinding[] keyBindings = new KeyBinding[1];
static int lastMouse = -1;
+ static double dungeonStartTime = 0;
+ static double bloodOpenTime = 0;
+ static double watcherClearTime = 0;
+ static double bossClearTime = 0;
+ static int witherDoors = 0;
+ static int dungeonDeaths = 0;
+ static int puzzleFails = 0;
+
@EventHandler
public void init(FMLInitializationEvent event)
{
@@ -216,6 +225,14 @@ public class TheMod
}
}
+ // Dungeon chat spoken by an NPC, containing :
+ if (message.contains("[BOSS] The Watcher: You have proven yourself. You may pass.")) {
+ watcherClearTime = System.currentTimeMillis() / 1000;
+ }
+ if (message.contains(" PUZZLE FAIL! ") || message.contains("chose the wrong answer! I shall never forget this moment")) {
+ dungeonDeaths++;
+ }
+
if (message.contains(":")) return;
if (tc.gpartyToggled) {
@@ -684,6 +701,62 @@ public class TheMod
}
// Catacombs Dungeons
+ // Timers
+ if (message.contains("Dungeon starts in 1 second.")) {
+ dungeonStartTime = System.currentTimeMillis() / 1000;
+ bloodOpenTime = dungeonStartTime;
+ watcherClearTime = dungeonStartTime;
+ bossClearTime = dungeonStartTime;
+ witherDoors = 0;
+ dungeonDeaths = 0;
+ puzzleFails = 0;
+ }
+ if (message.contains("The BLOOD DOOR has been opened!")) {
+ bloodOpenTime = System.currentTimeMillis() / 1000;
+ }
+ if (message.contains(" opened a WITHER door!")) {
+ witherDoors++;
+ }
+ if (message.contains(" and became a ghost.")) {
+ dungeonDeaths++;
+ }
+
+ // Trackers
+ if (message.contains(" Defeated ") && message.contains(" in ")) {
+ bossClearTime = System.currentTimeMillis() / 1000;
+ List<String> scoreboard = ScoreboardHandler.getSidebarLines();
+ int timeToAdd = 0;
+ for (String s : scoreboard) {
+ String sCleaned = ScoreboardHandler.cleanSB(s);
+ System.out.println(sCleaned);
+ if (sCleaned.contains("The Catacombs (")) {
+ // Add time to floor
+ if (sCleaned.contains("F1")) {
+ lc.f1TimeSpent = Math.floor(lc.f1TimeSpent + timeToAdd);
+ lc.f1TimeSpentSession = Math.floor(lc.f1TimeSpentSession + timeToAdd);
+ cf.writeDoubleConfig("catacombs", "floorOneTime", lc.f1TimeSpent);
+ } else if (sCleaned.contains("F2")) {
+ lc.f2TimeSpent = Math.floor(lc.f2TimeSpent + timeToAdd);
+ lc.f2TimeSpentSession = Math.floor(lc.f2TimeSpentSession + timeToAdd);
+ cf.writeDoubleConfig("catacombs", "floorTwoTime", lc.f1TimeSpent);
+ } else if (sCleaned.contains("F3")) {
+ lc.f3TimeSpent = Math.floor(lc.f3TimeSpent + timeToAdd);
+ lc.f3TimeSpentSession = Math.floor(lc.f3TimeSpentSession + timeToAdd);
+ cf.writeDoubleConfig("catacombs", "floorThreeTime", lc.f1TimeSpent);
+ } else if (sCleaned.contains("F4")) {
+ lc.f4TimeSpent = Math.floor(lc.f4TimeSpent + timeToAdd);
+ lc.f4TimeSpentSession = Math.floor(lc.f4TimeSpentSession + timeToAdd);
+ cf.writeDoubleConfig("catacombs", "floorFourTime", lc.f1TimeSpent);
+ }
+ } else if (sCleaned.contains("Time Elapsed:")) {
+ // Get floor time
+ String time = sCleaned.substring(sCleaned.indexOf(":") + 2);
+ int minutes = Integer.parseInt(time.substring(0, time.indexOf("m")));
+ int seconds = Integer.parseInt(time.substring(time.indexOf("m") + 1, time.indexOf("s")));
+ timeToAdd = (minutes * 60) + seconds;
+ }
+ }
+ }
if (message.contains(" RARE REWARD! Recombobulator 3000")) {
lc.recombobulators++;
lc.recombobulatorsSession++;
@@ -700,28 +773,12 @@ public class TheMod
lc.bonzoStaffsSession++;
cf.writeIntConfig("catacombs", "bonzoStaff", lc.bonzoStaffs);
}
- if (message.contains("Defeated Bonzo in ")) {
- String time = message.substring(message.lastIndexOf(" ") + 1, message.length());
- int minutes = Integer.parseInt(message.substring(message.indexOf("m")));
- int seconds = Integer.parseInt(message.substring(message.indexOf("m") + 1, message.indexOf("s")));
- // Prevent rounding off errors
- lc.f1TimeSpent = Math.floor(lc.f1TimeSpent + (minutes * 60) + seconds);
- lc.f1TimeSpentSession = Math.floor(lc.f1TimeSpentSession + (minutes * 60) + seconds);
- }
// F2
if (message.contains(" RARE REWARD! Scarf's Studies")) {
lc.scarfStudies++;
lc.scarfStudiesSession++;
cf.writeIntConfig("catacombs", "scarfStudies", lc.scarfStudies);
}
- if (message.contains("Defeated Scarf in ")) {
- String time = message.substring(message.lastIndexOf(" ") + 1, message.length());
- int minutes = Integer.parseInt(message.substring(message.indexOf("m")));
- int seconds = Integer.parseInt(message.substring(message.indexOf("m") + 1, message.indexOf("s")));
- // Prevent rounding off errors
- lc.f2TimeSpent = Math.floor(lc.f2TimeSpent + (minutes * 60) + seconds);
- lc.f2TimeSpentSession = Math.floor(lc.f2TimeSpentSession + (minutes * 60) + seconds);
- }
// F3
if (message.contains(" RARE REWARD! Adaptive Helmet")) {
lc.adaptiveHelms++;
@@ -748,14 +805,6 @@ public class TheMod
lc.adaptiveSwordsSession++;
cf.writeIntConfig("catacombs", "adaptiveSword", lc.adaptiveSwords);
}
- if (message.contains("Defeated The Professor in ")) {
- String time = message.substring(message.lastIndexOf(" ") + 1, message.length());
- int minutes = Integer.parseInt(message.substring(message.indexOf("m")));
- int seconds = Integer.parseInt(message.substring(message.indexOf("m") + 1, message.indexOf("s")));
- // Prevent rounding off errors
- lc.f3TimeSpent = Math.floor(lc.f3TimeSpent + (minutes * 60) + seconds);
- lc.f3TimeSpentSession = Math.floor(lc.f3TimeSpentSession + (minutes * 60) + seconds);
- }
// F4
if (message.contains(" Spirit Wing")) {
lc.spiritWings++;
@@ -797,14 +846,6 @@ public class TheMod
lc.spiritBowsSession++;
cf.writeIntConfig("catacombs", "spiritBow", lc.spiritBows);
}
- if (message.contains("Defeated Thorn in ")) {
- String time = message.substring(message.lastIndexOf(" ") + 1, message.length());
- int minutes = Integer.parseInt(message.substring(message.indexOf("m")));
- int seconds = Integer.parseInt(message.substring(message.indexOf("m") + 1, message.indexOf("s")));
- // Prevent rounding off errors
- lc.f4TimeSpent = Math.floor(lc.f4TimeSpent + (minutes * 60) + seconds);
- lc.f4TimeSpentSession = Math.floor(lc.f4TimeSpentSession + (minutes * 60) + seconds);
- }
// Chat Maddox
if (message.contains("[OPEN MENU]")) {
@@ -847,6 +888,23 @@ public class TheMod
new TextRenderer(Minecraft.getMinecraft(), coordText, moc.coordsXY[0], moc.coordsXY[1], ScaleCommand.coordsScale);
}
+ if (tc.dungeonTimerToggled) {
+ String dungeonTimerText = EnumChatFormatting.GRAY + "Wither Doors:\n" +
+ EnumChatFormatting.DARK_RED + "Blood Open:\n" +
+ EnumChatFormatting.RED + "Watcher Clear:\n" +
+ EnumChatFormatting.BLUE + "Boss Clear:\n" +
+ EnumChatFormatting.YELLOW + "Deaths:\n" +
+ EnumChatFormatting.YELLOW + "Puzzle Fails:";
+ String dungeonTimers = EnumChatFormatting.GRAY + "" + witherDoors + "\n" +
+ EnumChatFormatting.DARK_RED + Utils.getTimeBetween(dungeonStartTime, bloodOpenTime) + "\n" +
+ EnumChatFormatting.RED + Utils.getTimeBetween(dungeonStartTime, watcherClearTime) + "\n" +
+ EnumChatFormatting.BLUE + Utils.getTimeBetween(dungeonStartTime, bossClearTime) + "\n" +
+ EnumChatFormatting.YELLOW + dungeonDeaths + "\n" +
+ EnumChatFormatting.YELLOW + puzzleFails;
+ new TextRenderer(Minecraft.getMinecraft(), dungeonTimerText, moc.dungeonTimerXY[0], moc.dungeonTimerXY[1], ScaleCommand.dungeonTimerScale);
+ new TextRenderer(Minecraft.getMinecraft(), dungeonTimers, (int) (moc.dungeonTimerXY[0] + (80 * ScaleCommand.dungeonTimerScale)), moc.dungeonTimerXY[1], ScaleCommand.dungeonTimerScale);
+ }
+
if (!ds.display.equals("off")) {
final LootCommand lc = new LootCommand();
String dropsText = "";
@@ -1332,7 +1390,7 @@ public class TheMod
EnumChatFormatting.DARK_PURPLE + "Adaptive Chestplates:\n" +
EnumChatFormatting.DARK_PURPLE + "Adaptive Leggings:\n" +
EnumChatFormatting.DARK_PURPLE + "Adaptive Boots:\n" +
- EnumChatFormatting.DARK_PURPLE + "Adaptive Blades\n:" +
+ EnumChatFormatting.DARK_PURPLE + "Adaptive Blades:\n" +
EnumChatFormatting.AQUA + "Coins Spent:\n" +
EnumChatFormatting.AQUA + "Time Spent:\n";
countText = EnumChatFormatting.GOLD + nf.format(lc.recombobulators) + "\n" +
@@ -1351,7 +1409,7 @@ public class TheMod
EnumChatFormatting.DARK_PURPLE + "Adaptive Chestplates:\n" +
EnumChatFormatting.DARK_PURPLE + "Adaptive Leggings:\n" +
EnumChatFormatting.DARK_PURPLE + "Adaptive Boots:\n" +
- EnumChatFormatting.DARK_PURPLE + "Adaptive Blades\n:" +
+ EnumChatFormatting.DARK_PURPLE + "Adaptive Blades:\n" +
EnumChatFormatting.AQUA + "Coins Spent:\n" +
EnumChatFormatting.AQUA + "Time Spent:\n";
countText = EnumChatFormatting.GOLD + nf.format(lc.recombobulatorsSession) + "\n" +
@@ -1533,9 +1591,9 @@ public class TheMod
@SubscribeEvent
public void onGuiMouseInput(GuiScreenEvent.MouseInputEvent.Pre event) {
if (!Utils.inSkyblock) return;
- if (Mouse.getEventButton() != 0 && Mouse.getEventButton() != 1) return; // Left click or right click
if (Mouse.getEventButton() == lastMouse) return;
lastMouse = Mouse.getEventButton();
+ if (Mouse.getEventButton() != 0 && Mouse.getEventButton() != 1) return; // Left click or right click
if (event.gui instanceof GuiChest) {
LootCommand lc = new LootCommand();
@@ -1547,7 +1605,8 @@ public class TheMod
if (item.getDisplayName().contains("Open Reward Chest")) {
List<String> tooltip = item.getTooltip(Minecraft.getMinecraft().thePlayer, Minecraft.getMinecraft().gameSettings.advancedItemTooltips);
- for (String line : tooltip) {
+ for (String lineUnclean : tooltip) {
+ String line = StringUtils.stripControlCodes(lineUnclean);
if (line.contains("FREE")) {
break;
} else if (line.contains(" Coins")) {
@@ -1576,8 +1635,8 @@ public class TheMod
}
break;
}
- break;
}
+ break;
}
}
}
diff --git a/src/main/java/me/Danker/commands/DHelpCommand.java b/src/main/java/me/Danker/commands/DHelpCommand.java
index 4b92137..52db06b 100644
--- a/src/main/java/me/Danker/commands/DHelpCommand.java
+++ b/src/main/java/me/Danker/commands/DHelpCommand.java
@@ -33,14 +33,14 @@ public class DHelpCommand extends CommandBase {
EnumChatFormatting.AQUA + " <> = Mandatory parameter. [] = Optional parameter.\n" +
EnumChatFormatting.GOLD + " Commands, " + EnumChatFormatting.GREEN + " Keybinds.\n" +
EnumChatFormatting.GOLD + " /dhelp" + EnumChatFormatting.AQUA + " - Returns this message.\n" +
- EnumChatFormatting.GOLD + " /toggle <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/chatmaddox/spiritbearalerts/aotd/sceptremessages/petcolors/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/sceptremessages/petcolors/dungeontimer/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> [winter/f(1-4)/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/off> [winter/f(1-4)/session]" + EnumChatFormatting.AQUA + " - Text display for trackers. /display fishing winter displays winter sea creatures instead.\n" +
EnumChatFormatting.GOLD + " /resetloot <zombie/spider/wolf/fishing/catacombs/confirm/cancel>" + EnumChatFormatting.AQUA + " - Resets loot for trackers. /resetloot confirm confirms the reset.\n" +
- EnumChatFormatting.GOLD + " /move <coords/display> <x> <y>" + EnumChatFormatting.AQUA + " - Moves text display to specified X and Y coordinates.\n" +
- EnumChatFormatting.GOLD + " /scale <coords/display> <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> <x> <y>" + EnumChatFormatting.AQUA + " - Moves text display to specified X and Y coordinates.\n" +
+ EnumChatFormatting.GOLD + " /scale <coords/display/dungeontimer> <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 + " /guildof [player]" + EnumChatFormatting.AQUA + " - Uses API to get guild name and guild master of a person. If no name is provided, it checks yours.\n" +
diff --git a/src/main/java/me/Danker/commands/MoveCommand.java b/src/main/java/me/Danker/commands/MoveCommand.java
index 1232e18..24396ff 100644
--- a/src/main/java/me/Danker/commands/MoveCommand.java
+++ b/src/main/java/me/Danker/commands/MoveCommand.java
@@ -15,6 +15,7 @@ public class MoveCommand extends CommandBase {
public static int[] coordsXY = {0, 0};
public static int[] displayXY = {0, 0};
+ public static int[] dungeonTimerXY = {0, 0};
@Override
public String getCommandName() {
@@ -23,7 +24,7 @@ public class MoveCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return getCommandName() + " <coords/display> <x> <y>";
+ return getCommandName() + " <coords/display/dungeontimer> <x> <y>";
}
@Override
@@ -34,7 +35,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");
+ return getListOfStringsMatchingLastWord(args, "coords", "display", "dungeontimer");
}
return null;
}
@@ -45,7 +46,7 @@ public class MoveCommand extends CommandBase {
final ConfigHandler cf = new ConfigHandler();
if (arg1.length < 2) {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /move <coords/display> <x> <y>"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /move <coords/display/dungeontimer> <x> <y>"));
return;
}
@@ -61,8 +62,14 @@ public class MoveCommand extends CommandBase {
cf.writeIntConfig("locations", "displayX", displayXY[0]);
cf.writeIntConfig("locations", "displayY", displayXY[1]);
player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Tracker display has been moved to " + EnumChatFormatting.DARK_GREEN + arg1[1] + ", " + arg1[2]));
+ } else if (arg1[0].equalsIgnoreCase("dungeontimer")) {
+ dungeonTimerXY[0] = Integer.parseInt(arg1[1]);
+ dungeonTimerXY[1] = Integer.parseInt(arg1[2]);
+ cf.writeIntConfig("locations", "dungeonTimerX", dungeonTimerXY[0]);
+ cf.writeIntConfig("locations", "dungeonTimerY", dungeonTimerXY[1]);
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Dungeon timer has been moved to " + EnumChatFormatting.DARK_GREEN + arg1[1] + ", " + arg1[2]));
} else {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /move <coords/display> <x> <y>"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /move <coords/display/dungeontimer> <x> <y>"));
}
}
diff --git a/src/main/java/me/Danker/commands/ScaleCommand.java b/src/main/java/me/Danker/commands/ScaleCommand.java
index f8c73c9..03c0793 100644
--- a/src/main/java/me/Danker/commands/ScaleCommand.java
+++ b/src/main/java/me/Danker/commands/ScaleCommand.java
@@ -15,6 +15,7 @@ public class ScaleCommand extends CommandBase {
public static double coordsScale;
public static double displayScale;
+ public static double dungeonTimerScale;
@Override
public String getCommandName() {
@@ -23,7 +24,7 @@ public class ScaleCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return getCommandName() + " <coords/display> <size (0.1 - 10)>";
+ return getCommandName() + " <coords/display/dungeontimer> <size (0.1 - 10)>";
}
@Override
@@ -34,7 +35,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");
+ return getListOfStringsMatchingLastWord(args, "coords", "display", "dungeontimer");
}
return null;
}
@@ -44,7 +45,7 @@ public class ScaleCommand extends CommandBase {
final EntityPlayer player = (EntityPlayer) arg0;
if (arg1.length < 2) {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /scale <coords/display> <size (0.1 - 10)>"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /scale <coords/display/dungeontimer> <size (0.1 - 10)>"));
return;
}
@@ -62,8 +63,12 @@ public class ScaleCommand extends CommandBase {
displayScale = scaleAmount;
ConfigHandler.writeDoubleConfig("scales", "displayScale", displayScale);
player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Display has been scaled to " + EnumChatFormatting.DARK_GREEN + displayScale + "x"));
+ } else if (arg1[0].equalsIgnoreCase("dungeontimer")) {
+ dungeonTimerScale = scaleAmount;
+ ConfigHandler.writeDoubleConfig("scales", "dungeonTimerScale", dungeonTimerScale);
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Dungeon timer has been scaled to " + EnumChatFormatting.DARK_GREEN + dungeonTimerScale + "x"));
} else {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /scale <coords/display> <size (0.1 - 10)>"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /scale <coords/display/dungeontimer> <size (0.1 - 10)>"));
}
}
diff --git a/src/main/java/me/Danker/commands/ToggleCommand.java b/src/main/java/me/Danker/commands/ToggleCommand.java
index 5c37b83..b1e5270 100644
--- a/src/main/java/me/Danker/commands/ToggleCommand.java
+++ b/src/main/java/me/Danker/commands/ToggleCommand.java
@@ -24,6 +24,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
public static boolean aotdToggled;
public static boolean sceptreMessages;
public static boolean petColoursToggled;
+ public static boolean dungeonTimerToggled;
@Override
public String getCommandName() {
@@ -32,7 +33,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return getCommandName() + " <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/chatmaddox/spiritbearalert/aotd/sceptremessages/petcolors/list>";
+ return getCommandName() + " <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/chatmaddox/spiritbearalert/aotd/sceptremessages/petcolors/dungeontimer/list>";
}
@Override
@@ -43,7 +44,7 @@ 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", "sceptremessages", "petcolors", "list");
+ return getListOfStringsMatchingLastWord(args, "gparty", "coords", "golden", "slayercount", "rngesusalerts", "splitfishing", "chatmaddox", "spiritbearalerts", "aotd", "sceptremessages", "petcolors", "dungeontimer", "list");
}
return null;
}
@@ -54,7 +55,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
final ConfigHandler cf = new ConfigHandler();
if (arg1.length == 0) {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /toggle <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/chatmaddox/spiritbearalerts/aotd/sceptremessages/petcolors/list>"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /toggle <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/chatmaddox/spiritbearalerts/aotd/sceptremessages/petcolors/dungeontimer/list>"));
return;
}
@@ -102,6 +103,10 @@ public class ToggleCommand extends CommandBase implements ICommand {
petColoursToggled = !petColoursToggled;
cf.writeBooleanConfig("toggles", "PetColors", petColoursToggled);
player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Pet colours have been set to " + EnumChatFormatting.DARK_GREEN + petColoursToggled + EnumChatFormatting.GREEN + "."));
+ } else if (arg1[0].equalsIgnoreCase("dungeontimer")) {
+ dungeonTimerToggled = !dungeonTimerToggled;
+ cf.writeBooleanConfig("toggles", "DungeonTimer", dungeonTimerToggled);
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Dungeon timer has been set to " + EnumChatFormatting.DARK_GREEN + dungeonTimerToggled + EnumChatFormatting.GREEN + "."));
} else if (arg1[0].equalsIgnoreCase("list")) {
player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Guild party notifications: " + EnumChatFormatting.DARK_GREEN + gpartyToggled + "\n" +
EnumChatFormatting.GREEN + " Coord/Angle display: " + EnumChatFormatting.DARK_GREEN + coordsToggled + "\n" +
@@ -113,9 +118,10 @@ public class ToggleCommand extends CommandBase implements ICommand {
EnumChatFormatting.GREEN + " Spirit Bear alerts: " + EnumChatFormatting.DARK_GREEN + spiritBearAlerts + "\n" +
EnumChatFormatting.GREEN + " Block AOTD ability: " + EnumChatFormatting.DARK_GREEN + aotdToggled + "\n" +
EnumChatFormatting.GREEN + " Spirit Sceptre messages: " + EnumChatFormatting.DARK_GREEN + sceptreMessages + "\n" +
- EnumChatFormatting.GREEN + " Pet colours: " + EnumChatFormatting.DARK_GREEN + petColoursToggled));
+ EnumChatFormatting.GREEN + " Pet colours: " + EnumChatFormatting.DARK_GREEN + petColoursToggled + "\n" +
+ EnumChatFormatting.GREEN + " Dungeon timer: " + EnumChatFormatting.DARK_GREEN + dungeonTimerToggled));
} else {
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /toggle <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/chatmaddox/spiritbearalerts/aotd/sceptremessages/petcolors/list>"));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /toggle <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/chatmaddox/spiritbearalerts/aotd/sceptremessages/petcolors/dungeontimer/list>"));
}
}
}
diff --git a/src/main/java/me/Danker/handlers/ConfigHandler.java b/src/main/java/me/Danker/handlers/ConfigHandler.java
index 1955b3d..34aaffe 100644
--- a/src/main/java/me/Danker/handlers/ConfigHandler.java
+++ b/src/main/java/me/Danker/handlers/ConfigHandler.java
@@ -180,6 +180,7 @@ public class ConfigHandler {
if (!hasKey("toggles", "AOTD")) writeBooleanConfig("toggles", "AOTD", false);
if (!hasKey("toggles", "SceptreMessages")) writeBooleanConfig("toggles", "SceptreMessages", true);
if (!hasKey("toggles", "PetColors")) writeBooleanConfig("toggles", "PetColors", false);
+ if (!hasKey("toggles", "DungeonTimer")) writeBooleanConfig("toggles", "DungeonTimer", false);
if (!hasKey("api", "APIKey")) writeStringConfig("api", "APIKey", "");
@@ -291,8 +292,11 @@ public class ConfigHandler {
if (!hasKey("locations", "coordsY")) writeIntConfig("locations", "coordsY", height - 25);
if (!hasKey("locations", "displayX")) writeIntConfig("locations", "displayX", 80);
if (!hasKey("locations", "displayY")) writeIntConfig("locations", "displayY", 5);
+ if (!hasKey("locations", "dungeonTimerX")) writeIntConfig("locations", "dungeonTimerX", 5);
+ if (!hasKey("locations", "dungeonTimerY")) writeIntConfig("locations", "dungeonTimerY", 5);
if (!hasKey("scales", "coordsScale")) writeDoubleConfig("scales", "coordsScale", 1);
if (!hasKey("scales", "displayScale")) writeDoubleConfig("scales", "displayScale", 1);
+ if (!hasKey("scales", "dungeonTimerScale")) writeDoubleConfig("scales", "dungeonTimerScale", 1);
final ToggleCommand tf = new ToggleCommand();
tf.gpartyToggled = getBoolean("toggles", "GParty");
@@ -306,6 +310,7 @@ public class ConfigHandler {
tf.aotdToggled = getBoolean("toggles", "AOTD");
tf.sceptreMessages = getBoolean("toggles", "SceptreMessages");
tf.petColoursToggled = getBoolean("toggles", "PetColors");
+ tf.dungeonTimerToggled = getBoolean("toggles", "DungeonTimer");
final LootCommand lc = new LootCommand();
// Wolf
@@ -416,10 +421,13 @@ public class ConfigHandler {
moc.coordsXY[1] = getInt("locations", "coordsY");
moc.displayXY[0] = getInt("locations", "displayX");
moc.displayXY[1] = getInt("locations", "displayY");
+ moc.dungeonTimerXY[0] = getInt("locations", "dungeonTimerX");
+ moc.dungeonTimerXY[1] = getInt("locations", "dungeonTimerY");
final ScaleCommand sc = new ScaleCommand();
sc.coordsScale = getDouble("scales", "coordsScale");
sc.displayScale = getDouble("scales", "displayScale");
+ sc.dungeonTimerScale = getDouble("scales", "dungeonTimerScale");
}
}