diff options
Diffstat (limited to 'src')
5 files changed, 117 insertions, 142 deletions
diff --git a/src/main/java/me/Danker/DankersSkyblockMod.java b/src/main/java/me/Danker/DankersSkyblockMod.java index 604f57f..69dc6ee 100644 --- a/src/main/java/me/Danker/DankersSkyblockMod.java +++ b/src/main/java/me/Danker/DankersSkyblockMod.java @@ -421,6 +421,8 @@ public class DankersSkyblockMod { riddleChest = null; foundLivid = false; livid = null; + lowestBlaze = null; + highestBlaze = null; nextBonzoUse = 0; } @@ -577,8 +579,8 @@ public class DankersSkyblockMod { } } timeSinceGained = System.currentTimeMillis() / 1000; - - int limit = section.contains("Farming") || section.contains("Enchanting") ? 60 : 50; + + int limit = section.contains("Farming") || section.contains("Enchanting") || section.contains("Mining") ? 60 : 50; double currentXP = Double.parseDouble(section.substring(section.indexOf("(") + 1, section.indexOf("/")).replace(",", "")); int xpToLevelUp = Integer.parseInt(section.substring(section.indexOf("/") + 1, section.indexOf(")")).replaceAll(",", "")); xpLeft = xpToLevelUp - currentXP; @@ -646,7 +648,7 @@ public class DankersSkyblockMod { double currentXp = Double.parseDouble(section.substring(section.indexOf("(") + 1, section.indexOf("/")).replace(",", "")); int limit; int totalXp; - if (section.contains("Farming") || section.contains("Enchanting")) { + if (section.contains("Farming") || section.contains("Enchanting") || section.contains("Mining")) { limit = 60; totalXp = 111672425; } else { @@ -748,10 +750,10 @@ public class DankersSkyblockMod { Utils.createTitle(EnumChatFormatting.YELLOW + "YELLOW PILLAR!", 2); break; case 5: - Utils.createTitle(EnumChatFormatting.GREEN + "LIME PILLAR!", 2); + Utils.createTitle(EnumChatFormatting.DARK_GREEN + "GREEN PILLAR!", 2); break; case 11: - Utils.createTitle(EnumChatFormatting.BLUE + "BLUE PILLAR!", 2); + Utils.createTitle(EnumChatFormatting.DARK_PURPLE + "PURPLE PILLAR!", 2); break; default: Utils.createTitle(EnumChatFormatting.WHITE + "NECRON STUNNED!", 2); @@ -3185,7 +3187,7 @@ public class DankersSkyblockMod { Utils.drawFilled3DBox(new AxisAlignedBB(riddleChest.getX() - 0.05, riddleChest.getY(), riddleChest.getZ() - 0.05, riddleChest.getX() + 1.05, riddleChest.getY() + 1, riddleChest.getZ() + 1.05), 0x197F19, true, event.partialTicks); } - if (ToggleCommand.blazeToggled) { + if (ToggleCommand.blazeToggled && Utils.inDungeons) { if (lowestBlaze != null) { BlockPos stringPos = new BlockPos(lowestBlaze.posX, lowestBlaze.posY + 1, lowestBlaze.posZ); Utils.draw3DString(stringPos, EnumChatFormatting.BOLD + "Smallest", LOWEST_BLAZE_COLOUR, event.partialTicks); @@ -3768,7 +3770,7 @@ public class DankersSkyblockMod { if (ToggleCommand.startsWithToggled && Utils.inDungeons && displayName.startsWith("What starts with:")) { char letter = displayName.charAt(displayName.indexOf("'") + 1); for (Slot slot : invSlots) { - if (slot.getSlotIndex() > 53) continue; + if (slot.inventory == mc.thePlayer.inventory) continue; ItemStack item = slot.getStack(); if (item == null) continue; if (item.isItemEnchanted()) continue; @@ -3789,7 +3791,7 @@ public class DankersSkyblockMod { terminalColorNeeded = colour; for (Slot slot : invSlots) { - if (slot.getSlotIndex() > 53) continue; + if (slot.inventory == mc.thePlayer.inventory) continue; ItemStack item = slot.getStack(); if (item == null) continue; if (item.isItemEnchanted()) continue; diff --git a/src/main/java/me/Danker/commands/PetsCommand.java b/src/main/java/me/Danker/commands/PetsCommand.java index 7b1b52f..a7824e4 100644 --- a/src/main/java/me/Danker/commands/PetsCommand.java +++ b/src/main/java/me/Danker/commands/PetsCommand.java @@ -16,20 +16,21 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; public class PetsCommand extends CommandBase { static int petXpToLevel(double xp, String rarity) { int[] xpPerLevel = {100, 110, 120, 130, 145, 160, 175, 190, 210, 230, 250, 275, 300, 330, 360, 400, 440, 490, 540, 600, 660, 730, - 800, 880, 960, 1050, 1150, 1260, 1380, 1510, 1650, 1800, 1960, 2130, 2310, 2500, 2700, 2920, 3160, 3420, 3700, - 4000, 4350, 4750, 5200, 5700, 6300, 7000, 7800, 8700, 9700, 10800, 12000, 13300, 14700, 16200, 17800, 19500, - 21300, 23200, 25200, 27400, 29800, 32400, 35200, 38200, 41400, 44800, 48400, 52200, 56200, 60400, 64800, 69400, - 74200, 79200, 84700, 90700, 97200, 104200, 111700, 119700, 128200, 137200, 146700, 156700, 167700, 179700, 192700, - 206700, 221700, 237700, 254700, 272700, 291700, 311700, 333700, 357700, 383700, 411700, 441700, 476700, 516700, - 561700, 611700, 666700, 726700, 791700, 861700, 936700, 1016700, 1101700, 1191700, 1286700, 1386700, 1496700, - 1616700, 1746700, 1886700}; - + 800, 880, 960, 1050, 1150, 1260, 1380, 1510, 1650, 1800, 1960, 2130, 2310, 2500, 2700, 2920, 3160, 3420, 3700, + 4000, 4350, 4750, 5200, 5700, 6300, 7000, 7800, 8700, 9700, 10800, 12000, 13300, 14700, 16200, 17800, 19500, + 21300, 23200, 25200, 27400, 29800, 32400, 35200, 38200, 41400, 44800, 48400, 52200, 56200, 60400, 64800, 69400, + 74200, 79200, 84700, 90700, 97200, 104200, 111700, 119700, 128200, 137200, 146700, 156700, 167700, 179700, 192700, + 206700, 221700, 237700, 254700, 272700, 291700, 311700, 333700, 357700, 383700, 411700, 441700, 476700, 516700, + 561700, 611700, 666700, 726700, 791700, 861700, 936700, 1016700, 1101700, 1191700, 1286700, 1386700, 1496700, + 1616700, 1746700, 1886700}; + int levelOffset = 0; switch (rarity) { case "UNCOMMON": @@ -44,8 +45,11 @@ public class PetsCommand extends CommandBase { case "LEGENDARY": levelOffset = 20; break; + case "MYTHIC": + levelOffset = 20; + break; } - + for (int i = levelOffset, xpAdded = 0; i < levelOffset + 99; i++) { xpAdded += xpPerLevel[i]; if (xp < xpAdded) { @@ -54,7 +58,67 @@ public class PetsCommand extends CommandBase { } return 100; } - + + enum Rarity { + COMMON, + UNCOMMON, + RARE, + EPIC, + LEGENDARY, + MYTHIC; + + public Rarity nextRarity() { + if (this.ordinal() == Rarity.values().length) return this; + return Rarity.values()[this.ordinal() + 1]; + } + + public EnumChatFormatting getChatColor() { + if (this == Rarity.COMMON) return EnumChatFormatting.WHITE; + if (this == Rarity.UNCOMMON) return EnumChatFormatting.GREEN; + if (this == Rarity.RARE) return EnumChatFormatting.BLUE; + if (this == Rarity.EPIC) return EnumChatFormatting.DARK_PURPLE; + if (this == Rarity.LEGENDARY) return EnumChatFormatting.GOLD; + if (this == Rarity.MYTHIC) return EnumChatFormatting.LIGHT_PURPLE; + return null; + } + } + + class Pet { + + public Rarity rarity; + public double xp; + public boolean active; + public boolean rarityBoosted = false; + public String name; + + Pet(JsonObject pet) { + Rarity rarity = Rarity.valueOf(pet.get("tier").getAsString()); + if (!pet.get("heldItem").isJsonNull()) { + String petItemID = pet.get("heldItem").getAsString(); + switch (petItemID) { + case "PET_ITEM_VAMPIRE_FANG": + case "PET_ITEM_TOY_JERRY": + case "PET_ITEM_TIER_BOOST": + rarityBoosted = true; + rarity = rarity.nextRarity(); + } + } + this.active = pet.get("active").getAsBoolean(); + this.name = Utils.capitalizeString(pet.get("type").getAsString());; + this.rarity = rarity; + this.xp = pet.get("exp").getAsDouble(); + } + + public String getStringToAdd() { + int level = petXpToLevel(this.xp, this.rarity.name()); + + String messageToAdd = rarity.getChatColor() + " " + (this.active ? EnumChatFormatting.BOLD + ">>> " : "") + Utils.capitalizeString(this.rarity.name()) + (this.rarityBoosted ? " ⇑" : "") + " " + this.name + " (" + level + ")" + (this.active ? " <<<" : ""); + + return messageToAdd + "\n"; + } + + } + @Override public String getCommandName() { return "petsof"; @@ -64,12 +128,12 @@ public class PetsCommand extends CommandBase { public String getCommandUsage(ICommandSender arg0) { return "/" + getCommandName() + " [name]"; } - + @Override public int getRequiredPermissionLevel() { return 0; } - + @Override public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { if (args.length == 1) { @@ -83,13 +147,13 @@ public class PetsCommand extends CommandBase { // MULTI THREAD DRIFTING new Thread(() -> { EntityPlayer player = (EntityPlayer) arg0; - + // Check key String key = ConfigHandler.getString("api", "APIKey"); if (key.equals("")) { player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "API key not set. Use /setkey.")); } - + // Get UUID for Hypixel API requests String username; String uuid; @@ -102,11 +166,11 @@ public class PetsCommand extends CommandBase { player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Checking pets of " + DankersSkyblockMod.SECONDARY_COLOUR + username)); uuid = APIHandler.getUUID(username); } - + // Find stats of latest profile String latestProfile = APIHandler.getLatestProfileID(uuid, key); if (latestProfile == null) return; - + String profileURL = "https://api.hypixel.net/skyblock/profile?profile=" + latestProfile + "&key=" + key; System.out.println("Fetching profile..."); JsonObject profileResponse = APIHandler.getResponse(profileURL); @@ -115,137 +179,41 @@ public class PetsCommand extends CommandBase { player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Failed with reason: " + reason)); return; } - + System.out.println("Fetching pets..."); JsonArray petsArray = profileResponse.get("profile").getAsJsonObject().get("members").getAsJsonObject().get(uuid).getAsJsonObject().get("pets").getAsJsonArray(); if (petsArray.size() == 0) { player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + username + " has no pets.")); return; } - + System.out.println("Looping through pets..."); // Push each pet into list - List<JsonElement> sortedPets = new ArrayList<>(); + List<Pet> pets = new ArrayList<>(); for (JsonElement petElement : petsArray) { - sortedPets.add(petElement); + pets.add(new Pet(petElement.getAsJsonObject())); } - - // Sort pets by exp - sortedPets.sort((pet1, pet2) -> { - double petXp1 = pet1.getAsJsonObject().get("exp").getAsDouble(); - double petXp2 = pet2.getAsJsonObject().get("exp").getAsDouble(); - return -Double.compare(petXp1, petXp2); + + // Sort pets by exp and rarity + pets.sort((pet1, pet2) -> { + int rarity = pet1.rarity.compareTo(pet2.rarity); + int xp = Double.compare(pet1.xp, pet2.xp); + if (rarity != 0) return -rarity; + return -xp; }); - - // Sort pets into rarities - List<JsonObject> commonPets = new ArrayList<>(); - List<JsonObject> uncommonPets = new ArrayList<>(); - List<JsonObject> rarePets = new ArrayList<>(); - List<JsonObject> epicPets = new ArrayList<>(); - List<JsonObject> legendaryPets = new ArrayList<>(); - - for (JsonElement petElement : sortedPets) { - JsonObject pet = petElement.getAsJsonObject(); - String rarity = pet.get("tier").getAsString(); - - switch (rarity) { - case "COMMON": - commonPets.add(pet); - break; - case "UNCOMMON": - uncommonPets.add(pet); - break; - case "RARE": - rarePets.add(pet); - break; - case "EPIC": - epicPets.add(pet); - break; - case "LEGENDARY": - legendaryPets.add(pet); - break; - } - } - - int totalPets = commonPets.size() + uncommonPets.size() + rarePets.size() + epicPets.size() + legendaryPets.size(); + String finalMessage = DankersSkyblockMod.DELIMITER_COLOUR + "" + EnumChatFormatting.BOLD + "-------------------\n" + - EnumChatFormatting.AQUA + " " + username + "'s Pets (" + totalPets + "):\n"; - - // Loop through pet rarities - for (JsonObject legPet : legendaryPets) { - String petName = Utils.capitalizeString(legPet.get("type").getAsString()); - int level = petXpToLevel(legPet.get("exp").getAsDouble(), "LEGENDARY"); - - String messageToAdd; - if (legPet.get("active").getAsBoolean()) { - messageToAdd = EnumChatFormatting.GOLD + " " + EnumChatFormatting.BOLD + ">>> Legendary " + petName + " (" + level + ") <<<"; - } else { - messageToAdd = EnumChatFormatting.GOLD + " Legendary " + petName + " (" + level + ")"; - } - - finalMessage += messageToAdd + "\n"; - } - - for (JsonObject epicPet: epicPets) { - String petName = Utils.capitalizeString(epicPet.get("type").getAsString()); - int level = petXpToLevel(epicPet.get("exp").getAsDouble(), "EPIC"); - - String messageToAdd; - if (epicPet.get("active").getAsBoolean()) { - messageToAdd = EnumChatFormatting.DARK_PURPLE + " " + EnumChatFormatting.BOLD + ">>> Epic " + petName + " (" + level + ") <<<"; - } else { - messageToAdd = EnumChatFormatting.DARK_PURPLE + " Epic " + petName + " (" + level + ")"; - } - - finalMessage += messageToAdd + "\n"; - } - - for (JsonObject rarePet: rarePets) { - String petName = Utils.capitalizeString(rarePet.get("type").getAsString()); - int level = petXpToLevel(rarePet.get("exp").getAsDouble(), "RARE"); - - String messageToAdd; - if (rarePet.get("active").getAsBoolean()) { - messageToAdd = EnumChatFormatting.BLUE + " " + EnumChatFormatting.BOLD + ">>> Rare " + petName + " (" + level + ") <<<"; - } else { - messageToAdd = EnumChatFormatting.BLUE + " Rare " + petName + " (" + level + ")"; - } - - finalMessage += messageToAdd + "\n"; - } - - for (JsonObject uncommonPet: uncommonPets) { - String petName = Utils.capitalizeString(uncommonPet.get("type").getAsString()); - int level = petXpToLevel(uncommonPet.get("exp").getAsDouble(), "UNCOMMON"); - - String messageToAdd; - if (uncommonPet.get("active").getAsBoolean()) { - messageToAdd = EnumChatFormatting.GREEN + " " + EnumChatFormatting.BOLD + ">>> Uncommon " + petName + " (" + level + ") <<<"; - } else { - messageToAdd = EnumChatFormatting.GREEN + " Uncommon " + petName + " (" + level + ")"; - } - - finalMessage += messageToAdd + "\n"; - } - - for (JsonObject commonPet: commonPets) { - String petName = Utils.capitalizeString(commonPet.get("type").getAsString()); - int level = petXpToLevel(commonPet.get("exp").getAsDouble(), "COMMON"); - - String messageToAdd; - if (commonPet.get("active").getAsBoolean()) { - messageToAdd = EnumChatFormatting.BOLD + ">>> Common " + petName + " (" + level + ") <<<"; - } else { - messageToAdd = " Common " + petName + " (" + level + ")"; - } - - finalMessage += messageToAdd + "\n"; + EnumChatFormatting.AQUA + " " + username + "'s Pets (" + pets.size() + "):\n"; + + // Loop through pets + for(Pet pet : pets) { + finalMessage += pet.getStringToAdd(); } - + finalMessage += DankersSkyblockMod.DELIMITER_COLOUR + " " + EnumChatFormatting.BOLD + "-------------------"; player.addChatMessage(new ChatComponentText(finalMessage)); - + }).start(); } -} +}
\ No newline at end of file diff --git a/src/main/java/me/Danker/commands/ResetLootCommand.java b/src/main/java/me/Danker/commands/ResetLootCommand.java index dc968e8..9b4ecfa 100644 --- a/src/main/java/me/Danker/commands/ResetLootCommand.java +++ b/src/main/java/me/Danker/commands/ResetLootCommand.java @@ -24,7 +24,7 @@ public class ResetLootCommand extends CommandBase { @Override public String getCommandUsage(ICommandSender arg0) { - return "/" + getCommandName() + "<zombie/spider/wolf/fishing/catacombs/confirm/cancel>"; + return "/" + getCommandName() + "<zombie/spider/wolf/fishing/mythological/catacombs/confirm/cancel>"; } @Override diff --git a/src/main/java/me/Danker/commands/SkillsCommand.java b/src/main/java/me/Danker/commands/SkillsCommand.java index 362777f..6edbb4e 100644 --- a/src/main/java/me/Danker/commands/SkillsCommand.java +++ b/src/main/java/me/Danker/commands/SkillsCommand.java @@ -96,7 +96,7 @@ public class SkillsCommand extends CommandBase { farmingLevel = (double) Math.round(farmingLevel * 100) / 100; } if (userObject.has("experience_skill_mining")) { - miningLevel = Utils.xpToSkillLevel(userObject.get("experience_skill_mining").getAsDouble(), 50); + miningLevel = Utils.xpToSkillLevel(userObject.get("experience_skill_mining").getAsDouble(), 60); miningLevel = (double) Math.round(miningLevel * 100) / 100; } if (userObject.has("experience_skill_combat")) { diff --git a/src/main/java/me/Danker/commands/SkyblockPlayersCommand.java b/src/main/java/me/Danker/commands/SkyblockPlayersCommand.java index 9558d7d..c69ae6f 100644 --- a/src/main/java/me/Danker/commands/SkyblockPlayersCommand.java +++ b/src/main/java/me/Danker/commands/SkyblockPlayersCommand.java @@ -70,6 +70,7 @@ public class SkyblockPlayersCommand extends CommandBase { int park = 0; // foraging_1 int goldMine = 0; // mining_1 int deepCaverns = 0; // mining_2 + int dwarvenMines = 0; // mining_3 int spidersDen = 0; // combat_1 int blazingFortress = 0; // combat_2 int end = 0; // combat_3 @@ -101,6 +102,9 @@ public class SkyblockPlayersCommand extends CommandBase { if (skyblockPlayers.has("mining_2")) { deepCaverns = skyblockPlayers.get("mining_2").getAsInt(); } + if (skyblockPlayers.has("mining_3")) { + dwarvenMines = skyblockPlayers.get("mining_3").getAsInt(); + } if (skyblockPlayers.has("combat_1")) { spidersDen = skyblockPlayers.get("combat_1").getAsInt(); } @@ -135,6 +139,7 @@ public class SkyblockPlayersCommand extends CommandBase { DankersSkyblockMod.TYPE_COLOUR + " Park: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(park) + " / " + Utils.getPercentage(park, skyblockTotalPlayers) + "%\n" + DankersSkyblockMod.TYPE_COLOUR + " Gold Mine: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(goldMine) + " / " + Utils.getPercentage(goldMine, skyblockTotalPlayers) + "%\n" + DankersSkyblockMod.TYPE_COLOUR + " Deep Caverns: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(deepCaverns) + " / " + Utils.getPercentage(deepCaverns, skyblockTotalPlayers) + "%\n" + + DankersSkyblockMod.TYPE_COLOUR + " Dwarven Mines: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(dwarvenMines) + " / " + Utils.getPercentage(dwarvenMines, skyblockTotalPlayers) + "%\n" + DankersSkyblockMod.TYPE_COLOUR + " Spider's Den: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(spidersDen) + " / " + Utils.getPercentage(spidersDen, skyblockTotalPlayers) + "%\n" + DankersSkyblockMod.TYPE_COLOUR + " Blazing Fortress: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(blazingFortress) + " / " + Utils.getPercentage(blazingFortress, skyblockTotalPlayers) + "%\n" + DankersSkyblockMod.TYPE_COLOUR + " The End: " + DankersSkyblockMod.VALUE_COLOUR + nf.format(end) + " / " + Utils.getPercentage(end, skyblockTotalPlayers) + "%\n" + |