aboutsummaryrefslogtreecommitdiff
path: root/render/cwGui.js
diff options
context:
space:
mode:
Diffstat (limited to 'render/cwGui.js')
-rw-r--r--render/cwGui.js159
1 files changed, 146 insertions, 13 deletions
diff --git a/render/cwGui.js b/render/cwGui.js
index 96c0bf6..4e0f660 100644
--- a/render/cwGui.js
+++ b/render/cwGui.js
@@ -1,9 +1,19 @@
import settings from "../settings";
import constants from "../util/constants";
-
+import axios from "../../axios"
const cwGui = new Gui()
let txt = "Please set your api key with /cw setkey (key)!"
+let cwValues = [],
+ calcCwPerHr = false,
+ upTimeTrack = false,
+ uptime = 0,
+ baseColeweight = 0,
+ stepsSinceLast = 0,
+ coleweightHr = 0,
+ cwValuesSum = 0
+
+
export function openCwGui()
{
cwGui.open()
@@ -30,25 +40,148 @@ register("renderOverlay", () => {
if(!settings.cwToggle || constants.data.api_key == undefined) return
let coleweight = constants.data.coleweight || 0,
coleweightMessage = "",
- uptimeHr = Math.floor(constants.uptime/60/60)
+ uptimeHr = Math.floor(uptime/60/60)
coleweight > 1000 ?coleweightMessage = `&b${coleweight.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}`: coleweightMessage = `&b${coleweight.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}`
- if(constants.cwValues[0] != undefined && constants.upTimeTrack && constants.calcCwPerHr)
+ if(cwValues[0] != undefined && upTimeTrack && calcCwPerHr)
{
- constants.cwValuesSum = 0
- for(let i = 0; i < constants.cwValues.length; i++)
+ cwValuesSum = 0
+ for(let i = 0; i < cwValues.length; i++)
{
- constants.cwValuesSum += constants.cwValues[i]
+ cwValuesSum += cwValues[i]
}
- let eq = Math.ceil((constants.cwValuesSum*(3600/constants.uptime)) * 100) / 100
- eq != Infinity ? constants.coleweightHr = eq : constants.coleweightHr = "Calculating..."
- constants.calcCwPerHr = false
+ let eq = Math.ceil((cwValuesSum*(3600/uptime)) * 100) / 100
+ eq != Infinity ? coleweightHr = eq : coleweightHr = "Calculating..."
+ calcCwPerHr = false
}
- if (cwGui.isOpen() || !constants.upTimeTrack) return
+ if (cwGui.isOpen() || !upTimeTrack) return
if(uptimeHr >= 1)
- Renderer.drawStringWithShadow(`&aCW: &b${coleweightMessage}\n&aCW/hr: &b${constants.coleweightHr}\n&aUptime: &b${uptimeHr}h ${Math.floor(constants.uptime/60) - uptimeHr*60}m\n&aColeweight Gained: &b${Math.ceil(constants.cwValuesSum*100) / 100}`, constants.data.x, constants.data.y)
+ Renderer.drawStringWithShadow(`&aCW: &b${coleweightMessage}\n&aCW/hr: &b${coleweightHr}\n&aUptime: &b${uptimeHr}h ${Math.floor(uptime/60) - uptimeHr*60}m\n&aColeweight Gained: &b${Math.ceil(cwValuesSum*100) / 100}`, data.x, data.y)
else
- Renderer.drawStringWithShadow(`&aCW: &b${coleweightMessage}\n&aCW/hr: &b${constants.coleweightHr}\n&aUptime: &b${Math.floor(constants.uptime/60)}m ${Math.floor(constants.uptime%60)}s\n&aColeweight Gained: &b${Math.ceil(constants.cwValuesSum*100) / 100}`, constants.data.x, constants.data.y)
-}) \ No newline at end of file
+ Renderer.drawStringWithShadow(`&aCW: &b${coleweightMessage}\n&aCW/hr: &b${coleweightHr}\n&aUptime: &b${Math.floor(uptime/60)}m ${Math.floor(uptime%60)}s\n&aColeweight Gained: &b${Math.ceil(cwValuesSum*100) / 100}`, data.x, data.y)
+})
+
+
+
+register("step", () => {
+ // updates coleweight for gui
+ let date_ob = new Date(),
+ seconds = date_ob.getSeconds()
+
+ if(upTimeTrack == true)
+ uptime += 1
+ if(seconds == 0 || seconds == 15 || seconds == 30 || seconds == 45)
+ {
+ try
+ {
+ let tempUuid = Player.getUUID(),
+ profileData = "",
+ coleweight = 0,
+ uuid = ""
+
+ for(let i = 0; i < tempUuid.length; i++)
+ {
+ if(tempUuid[i] != "-")
+ {
+ uuid = uuid + tempUuid[i]
+ }
+ }
+ axios.get(`https://ninjune.dev/api/cwinfo`)
+ .then(cwInfoRes => {
+ axios.get(`https://api.hypixel.net/skyblock/profiles?key=${constants.data.api_key}&uuid=${uuid}`)
+ .then(res => {
+ let eq = 0,
+ cwInfo = cwInfoRes.data
+
+ for(let i=0; i < res.data.profiles.length; i+=1)
+ {
+ if(res.data.profiles[i].selected == true)
+ profileData = res.data.profiles[i]
+ }
+
+ coleweight += Math.ceil((profileData.members[uuid][cwInfo.experience.name]/cwInfo.experience.req)*100) / 100
+
+ for(let i = 0; i < cwInfo.powder.length; i++)
+ {
+ let sourceToSearch = cwInfo.powder[i].name,
+ source = profileData.members[uuid].mining_core[sourceToSearch]
+
+ if(source != undefined)
+ {
+ eq = Math.ceil(source/cwInfo.powder[i].req*100) / 100
+
+ if(i == 0)
+ {
+ let powder2 = profileData.members[uuid].mining_core['powder_spent_mithril']
+
+ if(powder2 != undefined)
+ eq = Math.ceil((source+powder2)/cwInfo.powder[i].req*100) / 100
+ }
+ else
+ {
+ let powder2 = profileData.members[uuid].mining_core['powder_spent_gemstone']
+
+ if(powder2 != undefined)
+ eq = Math.ceil((source+powder2)/cwInfo.powder[i].req*100) / 100
+ }
+ coleweight += eq
+ }
+ }
+
+ for(let i = 0; i < cwInfo.collection.length; i++)
+ {
+ let sourceToSearch = cwInfo.collection[i].name,
+ source = profileData.members[uuid].collection[sourceToSearch]
+
+ if(source != undefined)
+ {
+ eq = Math.ceil(source/cwInfo.collection[i].req*100) / 100
+ coleweight += eq
+ }
+ }
+ for(let i = 0; i < cwInfo.miscellaneous.length; i++)
+ {
+ let sourceToSearch = cwInfo.miscellaneous[i].name
+ if(i == 0 || i == 1)
+ source = profileData.members[uuid].bestiary[sourceToSearch]
+ else
+ source = profileData.members[uuid].mining_core.crystals.jade_crystal[sourceToSearch]
+ if (source != undefined)
+ {
+ eq = Math.ceil(source/cwInfo.miscellaneous[i].req*100) / 100
+ coleweight += eq
+ }
+ }
+ if(baseColeweight == 0)
+ {
+ baseColeweight = coleweight
+ }
+ else if((coleweight - baseColeweight) > 0)
+ {
+ cwValues.push(coleweight - baseColeweight)
+ calcCwPerHr = true
+ upTimeTrack = true
+ stepsSinceLast = 0
+ baseColeweight = coleweight
+ }
+ else if(stepsSinceLast > 20)
+ {
+ upTimeTrack = false
+ stepsSinceLast = 0
+ cwValues = []
+ }
+ else
+ {
+ stepsSinceLast += 1
+ }
+
+ data.coleweight = Math.ceil(coleweight*100)/100
+ data.save()
+ })
+ })
+ }
+ catch(e) {}
+ }
+}).setFps(1) \ No newline at end of file