diff options
Diffstat (limited to 'render/gemstoneMiningStats.js')
-rw-r--r-- | render/gemstoneMiningStats.js | 125 |
1 files changed, 90 insertions, 35 deletions
diff --git a/render/gemstoneMiningStats.js b/render/gemstoneMiningStats.js index a44937c..b0bf4b8 100644 --- a/render/gemstoneMiningStats.js +++ b/render/gemstoneMiningStats.js @@ -1,52 +1,85 @@ import settings from "../settings" import constants from "../util/constants" +import { findTick } from "../commands/calculate/tick" +import { addCommas, getSelectedProfile } from "../util/helperFunctions" +import axios from "../../axios" +import { findCost, findHotmObject } from "../commands/calculate/hotmCalc" const NBTTagString = Java.type("net.minecraft.nbt.NBTTagString") register("itemTooltip", (lore, item) => { // this is so bad 💀 - if(item.getLore()[0] != "§o§aYour SkyBlock Profile§r" || !settings.gemstoneMiningStats) return - const list = new NBTTagList(item.getNBT().getCompoundTag("tag").getCompoundTag("display").getTagMap().get("Lore")) - - for(let index = 0; index < list.getTagCount(); index++) - { - let element = list.getStringTagAt(index) - if(element !== ` §6⸕ Mining Speed §f${element.replace(" §6⸕ Mining Speed §f", "").replace("§", "")}` || constants.data.professional == 0) - continue - let miningSpeed = element.replace(" §6⸕ Mining Speed §f", "").replace("§", ""), - professionalSpeed = parseInt(miningSpeed.toString().replace(",", "")) + Math.floor(50+(constants.data.professional*5)), - miningSpeedText = `${element} §6(§b${professionalSpeed}§6)` + if(!item.getLore()[0].startsWith("§o§aYour SkyBlock Profile") || !settings.gemstoneMiningStats) return + const list = new NBTTagList(item.getNBT().getCompoundTag("tag").getCompoundTag("display").getTagMap().get("Lore")), + tempList = [] - list.set(index, new NBTTagString(miningSpeedText)) + for(let elementIndex = 0; elementIndex < list.getTagCount(); elementIndex++) + { + tempList.push(list.getStringTagAt(elementIndex)) } - - for(let i = 0; i < list.getTagCount(); i++) + + for(let elementIndex = 0; elementIndex < list.getTagCount(); elementIndex++) { - let element = list.getStringTagAt(i) - if(element !== ` §6☘ Mining Fortune §f${element.replace(" §6☘ Mining Fortune §f", "").replace("§", "")}` || constants.data.jungle_amulet == false) + let element = list.getStringTagAt(elementIndex) + if(element !== ` §6⸕ Mining Speed §f${element.replace(" §6⸕ Mining Speed §f", "").replace("§", "")}` || constants.data.professional == 0) + { + if(element !== ` §6☘ Mining Fortune §f${element.replace(" §6☘ Mining Fortune §f", "").replace("§", "")}` || (constants.data.jungle_amulet == false && constants.data.fortunate == 0)) + continue + let miningFortune = element.replace(" §6☘ Mining Fortune §f", "").replace("§", ""), + replacedFortune + + if(constants.data.jungle_amulet && constants.data.fortunate > 0) + replacedFortune = parseInt(miningFortune.toString().replace(",", "")) + 10 + 5*constants.data.fortunate + else if(constants.data.jungle_amulet) + replacedFortune = parseInt(miningFortune.toString().replace(",", "")) + 10 + else + replacedFortune = parseInt(miningFortune.toString().replace(",", "")) + 5*constants.data.fortunate + + let miningFortuneText = `${element} §6(§b${addCommas(replacedFortune)}§6)` + + list.set(elementIndex, new NBTTagString(miningFortuneText)) continue - let miningFortune = element.replace(" §6☘ Mining Fortune §f", "").replace("§", ""), - replacedFortune = parseInt(miningFortune.toString().replace(",", "")) + 10, - miningFortuneText = `${element} §6(§b${replacedFortune}§6)` - - list.set(i, new NBTTagString(miningFortuneText)) + } + let miningSpeed = parseInt(element.replace(" §6⸕ Mining Speed §f", "").replace("§", "").replace(",", "")), + professionalSpeed = miningSpeed + Math.floor(50+(constants.data.professional*5)), + miningSpeedText = `${element} §6(§b${addCommas(professionalSpeed)}§6)`, + tick + + if(professionalSpeed > 50 && settings.tickSpeedBlock > 1) // may need to change if add tick blocks (good programming real) + tick = findTick(professionalSpeed, settings.tickSpeedBlock).currentBlockTick + else + tick = findTick(miningSpeed, settings.tickSpeedBlock).currentBlockTick + + list.set(elementIndex, new NBTTagString(miningSpeedText)) + list.set(elementIndex + 1, new NBTTagString(` §6⸕ Block Tick §f${Math.round(tick)}`)) // 1 new added + for(let i = elementIndex + 2; i < list.getTagCount(); i++) + { + list.set(i, new NBTTagString(tempList[i - 1])) + } } }) -register("itemTooltip", (lore, item) => { - if(item.getLore()[0] != "§o§aProfessional§r") return - constants.data.professional = parseInt(item.getLore()[1].replace("§5§o§7Level ", "")) - constants.data.save() +register("gameLoad", () => { + axios.get(`https://api.hypixel.net/skyblock/profiles?key=${constants.data.api_key}&uuid=${Player.getUUID()}`) + .then(res => { + let professional = getSelectedProfile(res)?.members[Player.getUUID().replace(/-/g, "")]?.mining_core?.nodes?.professional, + fortunate = getSelectedProfile(res)?.members[Player.getUUID().replace(/-/g, "")]?.mining_core?.nodes?.fortunate + + if(professional != undefined) + constants.data.professional = professional + if(fortunate != undefined) + constants.data.fortunate = fortunate + constants.data.save() + }) }) - register('step', () => { let inventoryName = Player?.getOpenedInventory()?.getName()?.toString() if(inventoryName == undefined) return - if(inventoryName.includes("Acessory Bag ")) { - for (i = 0; i < Player.getOpenedInventory().size; i++) { + if(inventoryName.includes("Accessory Bag ")) { + for (i = 0; i < Player.getOpenedInventory().getSize(); i++) { let extraAttributes = Player.getOpenedInventory().getStackInSlot(i)?.getNBT()?.getCompoundTag("tag")?.getCompoundTag("ExtraAttributes") - if (extraAttributes.getString('id') == "JUNGLE_AMULET") + if (extraAttributes?.getString('id') === "JUNGLE_AMULET") { constants.data.jungle_amulet = true constants.data.save() @@ -56,11 +89,33 @@ register('step', () => { }).setFps(2) -/* -let checked = false register("itemTooltip", (lore, item) => { - if(!settings.debug || checked) return - console.log(item.getLore()) - checked = true + if(item.getLore()[0].startsWith("§o§aFortunate§r")) + constants.data.fortunate = parseInt(item.getLore()[1].replace("§5§o§7Level ", "")) + else if (item.getLore()[0].startsWith("§o§aProfessional§r")) + constants.data.professional = parseInt(item.getLore()[1].replace("§5§o§7Level ", "")) + else return + constants.data.save() }) -*/
\ No newline at end of file + +register("itemTooltip", (lore, item) => { // powder put into each perk + if(!settings.showPowderSum || !item.getLore()[1]?.startsWith("§5§o§7Level ") || item?.getLore()[1]?.includes("💀")) return + new Thread(() => { + if(item.getLore()[1].includes("💀")) return + const list = new NBTTagList(item.getNBT().getCompoundTag("tag").getCompoundTag("display").getTagMap().get("Lore")) + let perk = item.getLore()[0].replace(/§.|\(.+\)/g, "").replace(/ /g, "") + let level = /Level (\d+)/g.exec(item.getLore()[1])[1] + let hotmObjectToFind = findHotmObject(perk) + if(hotmObjectToFind == undefined) return + + let powderSum + + if(perk == "Fortunate") + powderSum = findCost(undefined, 1, parseInt(level), true) + else + powderSum = findCost(hotmObjectToFind.costFormula, 1, parseInt(level)) + + if(item.getLore()[1].includes("💀")) return + list.set(0, new NBTTagString(item.getLore()[1] + ` §7(§b${addCommas(Math.round(powderSum))}§7)💀`)) // this is a perfect solution no cap + }).start() +})
\ No newline at end of file |