aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md58
-rw-r--r--build.gradle2
-rwxr-xr-x[-rw-r--r--]gradlew0
-rw-r--r--src/main/java/me/Danker/DankersSkyblockMod.java106
-rw-r--r--src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java50
-rw-r--r--src/main/java/me/Danker/commands/CustomMusicCommand.java94
-rw-r--r--src/main/java/me/Danker/commands/DHelpCommand.java4
-rw-r--r--src/main/java/me/Danker/commands/DankerGuiCommand.java24
-rw-r--r--src/main/java/me/Danker/commands/DisplayCommand.java11
-rw-r--r--src/main/java/me/Danker/commands/DungeonsCommand.java63
-rw-r--r--src/main/java/me/Danker/commands/FarmLengthCommand.java50
-rw-r--r--src/main/java/me/Danker/commands/LootCommand.java92
-rw-r--r--src/main/java/me/Danker/commands/MoveCommand.java22
-rw-r--r--src/main/java/me/Danker/commands/PlayerCommand.java258
-rw-r--r--src/main/java/me/Danker/commands/ReloadRepoCommand.java42
-rw-r--r--src/main/java/me/Danker/commands/ResetLootCommand.java36
-rw-r--r--src/main/java/me/Danker/commands/ScaleCommand.java18
-rw-r--r--src/main/java/me/Danker/commands/SkillsCommand.java2
-rw-r--r--src/main/java/me/Danker/commands/SkyblockPlayersCommand.java5
-rw-r--r--src/main/java/me/Danker/commands/SlayerCommand.java10
-rw-r--r--src/main/java/me/Danker/commands/ToggleCommand.java218
-rw-r--r--src/main/java/me/Danker/commands/WeightCommand.java105
-rw-r--r--src/main/java/me/Danker/features/ArachneESP.java11
-rw-r--r--src/main/java/me/Danker/features/AutoAcceptReparty.java33
-rw-r--r--src/main/java/me/Danker/features/AutoDisplay.java14
-rw-r--r--src/main/java/me/Danker/features/ColouredNames.java119
-rw-r--r--src/main/java/me/Danker/features/CrystalHollowWaypoints.java193
-rw-r--r--src/main/java/me/Danker/features/CustomMusic.java193
-rw-r--r--src/main/java/me/Danker/features/EndOfFarmAlert.java40
-rw-r--r--src/main/java/me/Danker/features/GemstonesLore.java77
-rw-r--r--src/main/java/me/Danker/features/GiantHPDisplay.java73
-rw-r--r--src/main/java/me/Danker/features/HidePetCandy.java26
-rw-r--r--src/main/java/me/Danker/features/HighlightSkeletonMasters.java42
-rw-r--r--src/main/java/me/Danker/features/Skill50Display.java56
-rw-r--r--src/main/java/me/Danker/features/SkillTracker.java179
-rw-r--r--src/main/java/me/Danker/features/SlayerESP.java14
-rw-r--r--src/main/java/me/Danker/features/TetherDisplay.java60
-rw-r--r--src/main/java/me/Danker/features/loot/LootDisplay.java124
-rw-r--r--src/main/java/me/Danker/features/loot/LootTracker.java217
-rw-r--r--src/main/java/me/Danker/features/puzzlesolvers/BlazeSolver.java76
-rw-r--r--src/main/java/me/Danker/features/puzzlesolvers/CreeperSolver.java8
-rw-r--r--src/main/java/me/Danker/features/puzzlesolvers/LividSolver.java14
-rw-r--r--src/main/java/me/Danker/features/puzzlesolvers/ThreeManSolver.java71
-rw-r--r--src/main/java/me/Danker/features/puzzlesolvers/TriviaSolver.java99
-rw-r--r--src/main/java/me/Danker/gui/CrystalHollowWaypointActionGui.java87
-rw-r--r--src/main/java/me/Danker/gui/CrystalHollowWaypointsGui.java139
-rw-r--r--src/main/java/me/Danker/gui/CustomMusicGui.java130
-rw-r--r--src/main/java/me/Danker/gui/DankerGui.java140
-rw-r--r--src/main/java/me/Danker/gui/DisplayGui.java11
-rw-r--r--src/main/java/me/Danker/gui/EditLocationsGui.java58
-rw-r--r--src/main/java/me/Danker/gui/PuzzleSolversGui.java25
-rw-r--r--src/main/java/me/Danker/gui/buttons/FeatureButton.java17
-rw-r--r--src/main/java/me/Danker/gui/buttons/LocationButton.java36
-rw-r--r--src/main/java/me/Danker/handlers/APIHandler.java3
-rw-r--r--src/main/java/me/Danker/handlers/ConfigHandler.java101
-rw-r--r--src/main/java/me/Danker/utils/Utils.java264
56 files changed, 3584 insertions, 436 deletions
diff --git a/README.md b/README.md
index f5f9786..ea7b8b3 100644
--- a/README.md
+++ b/README.md
@@ -29,12 +29,14 @@ Discord Server: https://discord.gg/QsEkNQS
- Slayer slain alert
- Fishing, jerry fishing, fishing festival, spooky fishing trackers
- Expertise kills in fishing rod lore
+- Gemstones applied in item lore
- Catacombs trackers
- Dungeons puzzle solver (Riddle, trivia, blaze, creeper, water, tic tac toe, boulder, silverfish, ice walk)
- Dungeons timer (watcher, boss, deaths, and puzzle fails)
- Watcher ready message
- Catacombs F7 Stage 3 solvers (Starts with letter, select all colour)
- Find correct Livid (with graphic display of HP)
+- Catacombs F6 and F7 Giant HP display
- Use custom music in supported locations
- Experimentation solvers (Ultrasequencer, Chronomatron, Superpairs)
- Hide tooltips in experiment addons
@@ -49,23 +51,28 @@ Discord Server: https://discord.gg/QsEkNQS
- API commands
- Update checker
- Reparty command
+- Auto accept reparty
- Highlight Slayer Bosses
- Highlight Arachne
-
+- Highlight Skeleton Masters
+- Show teammates in 30 block radius
+- Hide pet candy in pet tooltip
+- Custom name colors
+- Crystal Hollows waypoints (with SkyblockExtras support)
## Commands
- /dhelp - Returns this message in-game.
- /dsm - Opens the GUI for Danker's Skyblock Mod.
-- /toggle <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/ghostdisplay/chatmaddox/spiritbearalert/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/icewalkpuzzle/watchermessage/startswithterminal/selectallterminal/clickinorderterminal/ultrasequencer/chronomatron/superpairs/hidetooltipsinaddons/pickblock/melodytooltips/highlightslayers/highlightarachne/dungeonbossmusic/bloodroommusic/dungeonmusic/list> - Toggles features. /toggle list returns values of every toggle.
+- /toggle <too many to list> - Toggles features. /toggle list returns values of every toggle.
- /setkey <key> - Sets API key.
- /getkey - Returns key set with /setkey and copies it to your clipboard.
-- /loot <zombie/spider/wolf/fishing/catacombs/mythological/> [winter/festival/spooky/f(1-7)/session] - Returns loot received from slayer quests or fishing stats. /loot fishing winter returns winter sea creatures instead.
-- /display <zombie/spider/wolf/fishing/catacombs/mythological/ghosts/auto/off> [winter/festival/spooky/f(1-7)/session] - 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.
-- /resetloot <zombie/spider/wolf/fishing/catacombs/mythological/confirm/cancel> - - Resets loot for trackers. /resetloot confirm confirms the reset.
-- /move <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer/bonzotimer/golemtimer> <x> <y> - Moves text display to specified X and Y coordinates.
-- /scale <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer/bonzotimer/golemtimer> <scale (0.1 - 10)> - Scales text display to a specified multipler between 0.1x and 10x.
+- /loot <zombie/spider/wolf/enderman/fishing/catacombs/mythological/> [winter/festival/spooky/f(1-7)/session] - Returns loot received from slayer quests or fishing stats. /loot fishing winter returns winter sea creatures instead.
+- /display <zombie/spider/wolf/enderman/fishing/catacombs/mythological/ghosts/auto/off> [winter/festival/spooky/f(1-7)/session] - 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.
+- /resetloot <zombie/spider/wolf/enderman/fishing/catacombs/mythological/confirm/cancel> - - Resets loot for trackers. /resetloot confirm confirms the reset.
+- /move <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer/bonzotimer/golemtimer/teammatesinradius/gianthp> <x> <y> - Moves text display to specified X and Y coordinates.
+- /scale <coords/display/dungeontimer/skill50/lividhp/caketimer/skilltracker/wateranswer/bonzotimer/golemtimer/teammatesinradius/gianthp> <scale (0.1 - 10)> - Scales text display to a specified multipler between 0.1x and 10x.
- /slayer [player] - Uses API to get slayer xp of a person. If no name is provided, it checks yours.
-- /skills [player] - Uses API to get skill levels of a person. If no name is provided, it checks yours.
+- /skill [player] - Uses API to get skill levels of a person. If no name is provided, it checks yours.
- /lobbyskills - Uses API to find the average skills of the lobby, as well the three players with the highest skill average.
- /guildof [player] - Uses API to get guild name and guild master of a person. If no name is provided, it checks yours.
- /petsof [player] - Uses API to get pets of a person. If no name is provided, it checks yours.
@@ -78,7 +85,11 @@ Discord Server: https://discord.gg/QsEkNQS
- /reparty - Disbands and reparties all members in the party
- /fairysouls - Check the fairysouls of a player
- /lobbybank - 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).
-- /dsmmusic <stop/reload/volume> [dungeonboss/bloodroom/dungeon] [1-100] - Stops, reloads or changes the volume of custom music.
+- /dsmmusic <stop/reload/volume> [dungeonboss/bloodroom/dungeon/hub/island/dungeonhub/farmingislands/goldmine/deepcaverns/dwarvenmines/crystalhollows/spidersden/blazingfortress/end/park] [1-100] - Stops, reloads or changes the volume of custom music.
+- /player [player] - Uses API to find skills, slayers, coins and weight of a player.
+- /reloadconfig - Reloads Danker's Skyblock Mod config.
+- /reloaddsmrepo - Reloads Danker's Skyblock Mod repository.
+- /dsmfarmlength <min coords> <max coords> - Sets coords to be used for end of farm alert.
## Keybinds
- Open Maddox menu - M by default.
@@ -86,14 +97,33 @@ Discord Server: https://discord.gg/QsEkNQS
- Start/Stop Skill Tracker - Numpad 5 by default.
## Custom Music
-1. Place a music file with the given name in the `.mincraft/config/dsmmusic` folder:
- - Dungeon music: `dungeon.wav`
- - Blood room music: `bloodroom.wav`
- - Dungeon boss music: `dungeonboss.wav`
+1. Place a music file with the given name in the `.minecraft/config/dsmmusic` folder:
+ - Dungeon: `dungeon.wav`
+ - Blood room: `bloodroom.wav`
+ - Dungeon boss: `dungeonboss.wav`
+ - Dungeon hub: `dungeonhub.wav`
+ - Hub: `hub.wav`
+ - Private Island: `island.wav`
+ - Farming Islands: `farmingislands.wav`
+ - Gold Mine: `goldmine.wav`
+ - Deep Caverns: `deepcaverns.wav`
+ - Dwarven Mines: `dwarvenmines.wav`
+ - Crystal Hollows: `crystalhollows.wav`
+ - Spider's Den: `spidersden.wav`
+ - Blazing Fortress: `blazingfortress.wav`
+ - The End: `end.wav`
+ - The Park: `park.wav`
2. Either run `/dsmmusic reload` or restart your game.
3. Enable the custom music in `/dsm`.
4. (Optional) Change the volume of the music with `/dsmmusic volume`.
+#### Shuffling
+By adding numbers to the end of the file, you can have multiple music files for the same area. One of them will be randomly selected (the same song could play twice in a row). For example:
+- dungeon.wav
+- dungeon1.wav
+- dungeon2.wav
+- dungeon99.wav
+
### Notes
- Slayer tracker for token drops and 20% chance drops uses a 12x12x12 bounding box centered on the player to detect the drops. If you are out of the range of the item drop, it will not count on the tracker.
- API commands may take a while depending on your internet connection. The API may also go down.
@@ -108,3 +138,5 @@ Software | License
[SkyblockAddons](https://github.com/BiscuitDevelopment/SkyblockAddons/) | [MIT License](https://github.com/BiscuitDevelopment/SkyblockAddons/blob/master/LICENSE)
[Zealot Counter](https://github.com/symt/zealot-counter/) | [Apache License](https://github.com/symt/zealot-counter/blob/master/LICENSE.md)
[NotEnoughUpdates](https://github.com/Moulberry/NotEnoughUpdates/) | [Creative Commons Public License](https://github.com/Moulberry/NotEnoughUpdates/blob/master/LICENSE)
+[HyChat](https://github.com/Moulberry/Hychat) | [Creative Commons Public License](https://github.com/Moulberry/Hychat/blob/master/LICENSE)
+[SkyblockCatia](https://github.com/SteveKunG/SkyBlockcatia) | [MIT License](https://github.com/SteveKunG/SkyBlockcatia/blob/1.8.9/LICENSE.md)
diff --git a/build.gradle b/build.gradle
index 59f72e9..05a7231 100644
--- a/build.gradle
+++ b/build.gradle
@@ -20,7 +20,7 @@ plugins {
id "net.minecraftforge.gradle.forge" version "2.0.2"
}
*/
-version = "1.8.6"
+version = "1.8.7-beta4"
group= "me.Danker.DankersSkyblockMod" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "Danker's Skyblock Mod"
diff --git a/gradlew b/gradlew
index 91a7e26..91a7e26 100644..100755
--- a/gradlew
+++ b/gradlew
diff --git a/src/main/java/me/Danker/DankersSkyblockMod.java b/src/main/java/me/Danker/DankersSkyblockMod.java
index ee24b84..100db96 100644
--- a/src/main/java/me/Danker/DankersSkyblockMod.java
+++ b/src/main/java/me/Danker/DankersSkyblockMod.java
@@ -1,5 +1,6 @@
package me.Danker;
+import com.google.gson.JsonObject;
import me.Danker.commands.*;
import me.Danker.events.ChestSlotClickedEvent;
import me.Danker.events.GuiChestBackgroundDrawnEvent;
@@ -57,16 +58,18 @@ import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import java.io.IOException;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
@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.6";
+ public static final String VERSION = "1.8.7-beta4";
public static int titleTimer = -1;
public static boolean showTitle = false;
public static String titleText = "";
public static int tickAmount = 1;
+ public static int repoTickAmount = 1;
public static KeyBinding[] keyBindings = new KeyBinding[3];
public static boolean usingLabymod = false;
public static boolean usingOAM = false;
@@ -74,6 +77,16 @@ public class DankersSkyblockMod {
public static String guiToOpen = null;
public static boolean firstLaunch = false;
public static String configDirectory;
+ public static JsonObject data = null;
+
+ public static int farmingLevel;
+ public static int miningLevel;
+ public static int combatLevel;
+ public static int foragingLevel;
+ public static int fishingLevel;
+ public static int enchantingLevel;
+ public static int alchemyLevel;
+ public static int carpentryLevel;
public static String MAIN_COLOUR;
public static String SECONDARY_COLOUR;
@@ -88,6 +101,7 @@ public class DankersSkyblockMod {
public void init(FMLInitializationEvent event) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
MinecraftForge.EVENT_BUS.register(this);
MinecraftForge.EVENT_BUS.register(new ArachneESP());
+ MinecraftForge.EVENT_BUS.register(new AutoAcceptReparty());
MinecraftForge.EVENT_BUS.register(new AutoDisplay());
MinecraftForge.EVENT_BUS.register(new AutoSwapToPickBlock());
MinecraftForge.EVENT_BUS.register(new BlazeSolver());
@@ -96,15 +110,22 @@ public class DankersSkyblockMod {
MinecraftForge.EVENT_BUS.register(new CakeTimer());
MinecraftForge.EVENT_BUS.register(new ChronomatronSolver());
MinecraftForge.EVENT_BUS.register(new ClickInOrderSolver());
+ MinecraftForge.EVENT_BUS.register(new ColouredNames());
MinecraftForge.EVENT_BUS.register(new CreeperSolver());
+ MinecraftForge.EVENT_BUS.register(new CrystalHollowWaypoints());
MinecraftForge.EVENT_BUS.register(new CustomMusic());
MinecraftForge.EVENT_BUS.register(new DungeonTimer());
+ MinecraftForge.EVENT_BUS.register(new EndOfFarmAlert());
MinecraftForge.EVENT_BUS.register(new ExpertiseLore());
MinecraftForge.EVENT_BUS.register(new FasterMaddoxCalling());
+ MinecraftForge.EVENT_BUS.register(new GemstonesLore());
+ MinecraftForge.EVENT_BUS.register(new GiantHPDisplay());
MinecraftForge.EVENT_BUS.register(new GoldenEnchants());
MinecraftForge.EVENT_BUS.register(new GolemSpawningAlert());
MinecraftForge.EVENT_BUS.register(new GpartyNotifications());
+ MinecraftForge.EVENT_BUS.register(new HidePetCandy());
MinecraftForge.EVENT_BUS.register(new HideTooltipsInExperiments());
+ MinecraftForge.EVENT_BUS.register(new HighlightSkeletonMasters());
MinecraftForge.EVENT_BUS.register(new IceWalkSolver());
MinecraftForge.EVENT_BUS.register(new LividSolver());
MinecraftForge.EVENT_BUS.register(new LootDisplay());
@@ -125,6 +146,7 @@ public class DankersSkyblockMod {
MinecraftForge.EVENT_BUS.register(new StartsWithSolver());
MinecraftForge.EVENT_BUS.register(new StopSalvagingStarredItems());
MinecraftForge.EVENT_BUS.register(new SuperpairsSolver());
+ MinecraftForge.EVENT_BUS.register(new TetherDisplay());
MinecraftForge.EVENT_BUS.register(new ThreeManSolver());
MinecraftForge.EVENT_BUS.register(new TicTacToeSolver());
MinecraftForge.EVENT_BUS.register(new TriviaSolver());
@@ -137,6 +159,7 @@ public class DankersSkyblockMod {
GoldenEnchants.init();
TriviaSolver.init();
CustomMusic.init(configDirectory);
+ GemstonesLore.init();
keyBindings[0] = new KeyBinding("Open Maddox Menu", Keyboard.KEY_M, "Danker's Skyblock Mod");
keyBindings[1] = new KeyBinding("Regular Ability", Keyboard.KEY_NUMPAD4, "Danker's Skyblock Mod");
@@ -145,6 +168,8 @@ public class DankersSkyblockMod {
for (KeyBinding keyBinding : keyBindings) {
ClientRegistry.registerKeyBinding(keyBinding);
}
+
+ new Thread(Utils::refreshRepo).start();
}
@EventHandler
@@ -152,11 +177,13 @@ public class DankersSkyblockMod {
ClientCommandHandler.instance.registerCommand(new ArmourCommand());
ClientCommandHandler.instance.registerCommand(new BankCommand());
ClientCommandHandler.instance.registerCommand(new CustomMusicCommand());
+ ClientCommandHandler.instance.registerCommand(new CrystalHollowWaypointCommand());
ClientCommandHandler.instance.registerCommand(new DHelpCommand());
ClientCommandHandler.instance.registerCommand(new DankerGuiCommand());
ClientCommandHandler.instance.registerCommand(new DisplayCommand());
ClientCommandHandler.instance.registerCommand(new DungeonsCommand());
ClientCommandHandler.instance.registerCommand(new FairySoulsCommand());
+ ClientCommandHandler.instance.registerCommand(new FarmLengthCommand());
ClientCommandHandler.instance.registerCommand(new GetkeyCommand());
ClientCommandHandler.instance.registerCommand(new GuildOfCommand());
ClientCommandHandler.instance.registerCommand(new ImportFishingCommand());
@@ -165,7 +192,9 @@ public class DankersSkyblockMod {
ClientCommandHandler.instance.registerCommand(new LootCommand());
ClientCommandHandler.instance.registerCommand(new MoveCommand());
ClientCommandHandler.instance.registerCommand(new PetsCommand());
+ ClientCommandHandler.instance.registerCommand(new PlayerCommand());
ClientCommandHandler.instance.registerCommand(new ReloadConfigCommand());
+ ClientCommandHandler.instance.registerCommand(new ReloadRepoCommand());
ClientCommandHandler.instance.registerCommand(new ResetLootCommand());
ClientCommandHandler.instance.registerCommand(new ScaleCommand());
ClientCommandHandler.instance.registerCommand(new SetkeyCommand());
@@ -174,6 +203,7 @@ public class DankersSkyblockMod {
ClientCommandHandler.instance.registerCommand(new SkyblockPlayersCommand());
ClientCommandHandler.instance.registerCommand(new SlayerCommand());
ClientCommandHandler.instance.registerCommand(new ToggleCommand());
+ ClientCommandHandler.instance.registerCommand(new WeightCommand());
configDirectory = event.getModConfigurationDirectory().toString();
}
@@ -248,12 +278,47 @@ public class DankersSkyblockMod {
@SubscribeEvent
public void onChat(ClientChatReceivedEvent event) {
- String message = StringUtils.stripControlCodes(event.message.getUnformattedText());
+ String message = StringUtils.stripControlCodes(event.message.getUnformattedText());
if (message.startsWith("Your new API key is ") && Utils.isOnHypixel()) {
String apiKey = event.message.getSiblings().get(0).getChatStyle().getChatClickEvent().getValue();
ConfigHandler.writeStringConfig("api", "APIKey", apiKey);
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Set API key to " + DankersSkyblockMod.SECONDARY_COLOUR + apiKey));
+ } else if (Utils.inSkyblock && !message.contains(":") && message.contains(" SKILL LEVEL UP ")) {
+ // Handle skill level ups
+ String skill = message.substring(message.indexOf("UP") + 3, message.lastIndexOf(" "));
+ int level = Utils.getIntFromString(message.substring(message.indexOf("➜") + 1), true);
+
+ switch (skill) {
+ case "Farming":
+ DankersSkyblockMod.farmingLevel = level;
+ break;
+ case "Mining":
+ DankersSkyblockMod.miningLevel = level;
+ break;
+ case "Combat":
+ DankersSkyblockMod.combatLevel = level;
+ break;
+ case "Foraging":
+ DankersSkyblockMod.foragingLevel = level;
+ break;
+ case "Fishing":
+ DankersSkyblockMod.fishingLevel = level;
+ break;
+ case "Enchanting":
+ DankersSkyblockMod.enchantingLevel = level;
+ break;
+ case "Alchemy":
+ DankersSkyblockMod.alchemyLevel = level;
+ break;
+ case "Carpentry":
+ DankersSkyblockMod.carpentryLevel = level;
+ break;
+ default:
+ System.err.println("Unknown skill leveled up.");
+ }
+
+ ConfigHandler.writeIntConfig("skills", skill.toLowerCase(Locale.US), level);
}
}
@@ -286,24 +351,54 @@ public class DankersSkyblockMod {
public void onTick(TickEvent.ClientTickEvent event) {
if (event.phase != Phase.START) return;
- EntityPlayerSP player = Minecraft.getMinecraft().thePlayer;
+ Minecraft mc = Minecraft.getMinecraft();
+ EntityPlayerSP player = mc.thePlayer;
tickAmount++;
if (tickAmount % 20 == 0) {
+ repoTickAmount++;
if (player != null) {
Utils.checkForSkyblock();
Utils.checkForDungeons();
+ Utils.checkTabLocation();
}
tickAmount = 0;
}
+ if (repoTickAmount % 3601 == 0) {
+ // I didn't want to change everything so I just made a new tick variable
+ new Thread(Utils::refreshRepo).start();
+ repoTickAmount = 1;
+ }
+
if (titleTimer >= 0) {
if (titleTimer == 0) {
showTitle = false;
}
titleTimer--;
}
+
+ // New skill level detection
+ if (mc.currentScreen instanceof GuiChest && tickAmount % 5 == 0 && player != null) {
+ ContainerChest chest = (ContainerChest) player.openContainer;
+ String chestName = chest.getLowerChestInventory().getDisplayName().getUnformattedText().trim();
+
+ if (chestName.equals("Your Skills")) {
+ List<Slot> invSlots = ((GuiChest) mc.currentScreen).inventorySlots.inventorySlots;
+
+ farmingLevel = Utils.initializeSkill(invSlots.get(19).getStack(), "farming");
+ miningLevel = Utils.initializeSkill(invSlots.get(20).getStack(), "mining");
+ combatLevel = Utils.initializeSkill(invSlots.get(21).getStack(), "combat");
+ foragingLevel = Utils.initializeSkill(invSlots.get(22).getStack(), "foraging");
+ fishingLevel = Utils.initializeSkill(invSlots.get(23).getStack(), "fishing");
+ enchantingLevel = Utils.initializeSkill(invSlots.get(24).getStack(), "enchanting");
+ alchemyLevel = Utils.initializeSkill(invSlots.get(25).getStack(), "alchemy");
+ carpentryLevel = Utils.initializeSkill(invSlots.get(29).getStack(), "carpentry");
+
+ System.out.println("Updated skill levels.");
+ }
+ }
}
// Delay GUI by 1 tick
@@ -332,7 +427,10 @@ public class DankersSkyblockMod {
mc.displayGuiScreen(new SkillTrackerGui());
break;
case "custommusic":
- mc.displayGuiScreen(new CustomMusicGui());
+ mc.displayGuiScreen(new CustomMusicGui(1));
+ break;
+ case "crystalwaypoints":
+ mc.displayGuiScreen(new CrystalHollowWaypointsGui(1));
break;
}
}