diff options
Diffstat (limited to 'commands')
-rw-r--r-- | commands/calculate/calcSpeed.js | 47 | ||||
-rw-r--r-- | commands/calculate/calculate.js | 36 | ||||
-rw-r--r-- | commands/calculate/hotmCalc.js | 66 | ||||
-rw-r--r-- | commands/calculate/tick.js | 93 | ||||
-rw-r--r-- | commands/claim.js | 103 | ||||
-rw-r--r-- | commands/credits.js | 7 | ||||
-rw-r--r-- | commands/fetchDiscord.js | 12 | ||||
-rw-r--r-- | commands/help.js | 10 | ||||
-rw-r--r-- | commands/reload.js | 11 | ||||
-rw-r--r-- | commands/spiral.js | 2 | ||||
-rw-r--r-- | commands/throne.js | 2 | ||||
-rw-r--r-- | commands/tick.js | 64 |
12 files changed, 325 insertions, 128 deletions
diff --git a/commands/calculate/calcSpeed.js b/commands/calculate/calcSpeed.js new file mode 100644 index 0000000..1b2eae6 --- /dev/null +++ b/commands/calculate/calcSpeed.js @@ -0,0 +1,47 @@ +import constants from "../../util/constants" +import { parseNotatedInput } from "../../util/helperFunctions" +const PREFIX = constants.PREFIX + + +export function calcSpeed(powder) +{ + let speedLevels = 1, + professionalLevels = 1 + + if(powder == undefined || parseNotatedInput(powder) == "NI") return ChatLib.chat(constants.CALCULATEERRORMESSAGE) + powder = parseNotatedInput(powder) + + while(powder > msPowder(speedLevels) + profPowder(professionalLevels)) + { + if(ms2SpeedPerPowder(speedLevels + 1) > professionalSpeedPerPowder(professionalLevels + 1) && speedLevels < 50) + { + powder -= msPowder(speedLevels++) + } + else if (professionalLevels < 140) + { + powder -= profPowder(professionalLevels++) + } + else break + } + return ChatLib.chat(`&bGet &6&l${speedLevels} &bmining speed levels and &6&l${professionalLevels} &bprofessional levels.`) +} + +function ms2SpeedPerPowder(miningSpeedLevel) // 40 speed per level +{ + return 40/msPowder(miningSpeedLevel) +} + +function professionalSpeedPerPowder(professionalLevel) // 5 speed per level +{ + return 5/profPowder(professionalLevel) +} + +function msPowder(miningSpeedLevel) +{ + return Math.floor(Math.pow(miningSpeedLevel+1, 3.2)) +} + +function profPowder(professionalLevel) +{ + return Math.floor(Math.pow(professionalLevel+1, 2.3)) +}
\ No newline at end of file diff --git a/commands/calculate/calculate.js b/commands/calculate/calculate.js new file mode 100644 index 0000000..3d9d750 --- /dev/null +++ b/commands/calculate/calculate.js @@ -0,0 +1,36 @@ +import constants from "../../util/constants" +import { hotmCalc } from "./hotmCalc" +import { calcSpeed } from "./calcSpeed" +import { tickCommand } from "./tick" +import { helpCommand } from "../help" +const PREFIX = constants.PREFIX + + +export function calculate(args) +{ + switch(args[0].toLowerCase()) + { + case "hotm": + case "hotmcalc": + case "calchotm": + hotmCalc(args[1], args[2], args[3]) + break + case "tick": + tickCommand(args[1], args[2]) + break + case "calcspeed": + case "speed": + calcSpeed(args[1]) + break + case "help": + ChatLib.chat("&b--------------[ &a&l/cw calculate &b]--------------") + helpCommand("calculate tick", "Calculates tick data.", "(mining speed) (('r','jade', etc) || breaking power of block))") + helpCommand("calculate speed", "Calculates the ratio of mining speed 2 to professional with a certain amount of powder.", "(powder)") + helpCommand("calculate hotm", "Calculates powder between two levels of a certain perk.", "(perk) (minlevel) [maxlevel]") + ChatLib.chat("&b------------------------------------------") + return + default: + return ChatLib.chat(constants.CALCULATEERRORMESSAGE) + } +} + diff --git a/commands/calculate/hotmCalc.js b/commands/calculate/hotmCalc.js new file mode 100644 index 0000000..583b2b8 --- /dev/null +++ b/commands/calculate/hotmCalc.js @@ -0,0 +1,66 @@ +import constants from "../../util/constants" +import { addCommas } from "../../util/helperFunctions" +const PREFIX = constants.PREFIX + + +export function hotmCalc(hotmName, minLevel, maxLevel) +{ + if(hotmName == undefined) + { + let hotmData = JSON.parse(FileLib.read("Coleweight", "data/hotm.json")).data + + ChatLib.chat(`/cw calc hotm (hotmName listed below) (minLevel) [maxLevel]`) + for(let i = 0; i < hotmData.length; i++) + { + ChatLib.chat(hotmData[i].names[0]) + } + return + } + if(maxLevel == undefined) + { + maxLevel = minLevel + minLevel = 1 + } + + if(minLevel != parseInt(minLevel) || maxLevel != parseInt(maxLevel)) return ChatLib.chat(constants.CALCULATEERRORMESSAGE) + + minLevel = parseInt(minLevel) + maxLevel = parseInt(maxLevel) + let hotmObjectToFind = findHotmObject(hotmName) + if(hotmObjectToFind == undefined) return ChatLib.chat(`${PREFIX}&cDid not find HOTM perk with name '${hotmName}'!`) + + maxLevel = (maxLevel < hotmObjectToFind.maxLevel ? maxLevel : hotmObjectToFind.maxLevel) + + let powderSum = findCost(hotmObjectToFind.costFormula, minLevel, maxLevel), + reward = findReward(hotmObjectToFind.rewardFormula, minLevel, maxLevel) + + ChatLib.chat("") + ChatLib.chat(`&6${hotmObjectToFind.nameStringed} ${minLevel} - ${maxLevel} &bwill cost &6&l${addCommas(Math.round(powderSum))} &6${hotmObjectToFind.powderType[0].toUpperCase() + hotmObjectToFind.powderType.slice(1)} &bpowder.`) + ChatLib.chat(`&6${hotmObjectToFind.nameStringed} ${minLevel} - ${maxLevel} &bwill give &6&l${addCommas(Math.round(reward * 100) / 100)} &bof whatever reward is listed.`) + ChatLib.chat("") +} + +export function findHotmObject(hotmName) +{ + let hotmData = JSON.parse(FileLib.read("Coleweight", "data/hotm.json")).data + + for(let i = 0; i < hotmData.length; i++) + { + if(hotmData[i].names.includes(hotmName)) + return hotmData[i] + } +} + +export function findCost(costFormula, minLevel, maxLevel) +{ + let powderSum = 0 + + for(let currentLevel = minLevel; currentLevel < maxLevel; currentLevel++) // finds cost + powderSum += eval(costFormula.replace("currentLevel", currentLevel)) + return powderSum +} + +export function findReward(rewardFormula, minLevel, maxLevel) +{ + return eval(rewardFormula.replace("Level", 1+maxLevel-minLevel)) +}
\ No newline at end of file diff --git a/commands/calculate/tick.js b/commands/calculate/tick.js new file mode 100644 index 0000000..f8b2433 --- /dev/null +++ b/commands/calculate/tick.js @@ -0,0 +1,93 @@ +import constants from "../../util/constants" +const PREFIX = constants.PREFIX + +export function tickCommand(speed, block) +{ + if(speed == undefined || parseInt(speed) != speed) + return ChatLib.chat(`${PREFIX}&cMining speed must be an integer!`) + if(block == undefined) + return ChatLib.chat(constants.CALCULATEERRORMESSAGE) + const ticks = findTick(speed, block) + if(ticks.err) return ChatLib.chat(`${PREFIX}&cBlock must be a gemstone or positive breaking power! (or starting letter of gemstone)`) + + + ChatLib.chat(`\n&bCurrently mining blocks in &6&l${Math.round(ticks.currentBlockTick)} ticks` + + `\n&bCurrently mining shards in &6&l${Math.round(ticks.currentShardTick)} ticks` + + `\n&bNext block tick will be at: &6&l${Math.round(ticks.nextBlockSpeed)} mining speed` + + `\n&bNext shard tick will be at: &6&l${Math.round(ticks.nextShardSpeed)} mining speed` + + `\n&bYou need &6&l${Math.round(ticks.nextBlockSpeed - speed)} mining speed&b to get the next block tick.` + + `\n&bYou need &6&l${Math.round(ticks.nextShardSpeed - speed)} mining speed&b to get the next shard tick.\n`) +} + + +export function findTick(speed, block) +{ + let ticks = {err: false}, + strength = findStrength(block) + + ticks.currentBlockTick = strength*30/speed + ticks.currentShardTick = (strength-200)*30/speed + + if(strength < 1) return ticks.err = true + + + if(ticks.currentBlockTick < Math.floor(ticks.currentBlockTick) + 0.5) + ticks.nextBlockSpeed = strength*30/(Math.floor(ticks.currentBlockTick)-0.5) + else + ticks.nextBlockSpeed = strength*30/(Math.floor(ticks.currentBlockTick)+0.5) + + if(ticks.currentShardTick < Math.floor(ticks.currentShardTick) + 0.5) + ticks.nextShardSpeed = strength*30/(Math.floor(ticks.currentShardTick)-0.5) + else + ticks.nextShardSpeed = strength*30/(Math.floor(ticks.currentShardTick)+0.5) + + return ticks +} + +function findStrength(block) +{ + let strength = -1 + + if(block == parseInt(block) && block > 5) // change if add block to tick speed blocks in settings + strength = block + else + { + switch(block.toString().toLowerCase()) + { + case "0": + case "green_mithril": + strength = 800 + break + case "1": + case "blue_mithril": + strength = 1500 + break + case "2": + case "ruby": + case "r": + strength = 2500 + break + case "3": + case "j": + case "jade": + case "a": + case "amber": + case "amethyst": + case "s": + case "sapphire": + strength = 3200 + break + case "4": + case "t": + case "topaz": + case "o": + case "opal": + strength = 4000 + case "5": + case "jasper": + strength = 5000 + } + } + + return strength +} diff --git a/commands/claim.js b/commands/claim.js index ae20924..ef40b99 100644 --- a/commands/claim.js +++ b/commands/claim.js @@ -2,7 +2,10 @@ import axios from "../../axios" import settings from "../settings" import constants from "../util/constants" const PREFIX = constants.PREFIX +const path = `https://ninjune.dev` const serverId = java.util.UUID.randomUUID().toString().replace("-", "") +let claimedServers = [] + export function claim(structure) { @@ -24,71 +27,91 @@ export function claim(structure) return } - axios.get(`https://ninjune.dev/api/claim?type=${structure}&lobby=${constants.serverData.server}&username=${Player.getName()}&serverID=${serverId}`) + axios.get(`${path}/api/claim?type=${structure}&lobby=${constants.serverData.server}&username=${Player.getName()}&serverID=${serverId}`) .then(res => { if(res.data.success) + { ChatLib.chat(`${PREFIX}&aSuccessfully claimed ${constants.serverData.server} as your server!`) + claimedServers.push({player: Player.getName(), server: constants.serverData.server, structure: structure}) + return + } else { - ChatLib.chat(`${PREFIX}&cError: ${res.data.reason}.`) + if(res.data.code == 501) { ChatLib.chat(`${PREFIX}&cError: Not logged into the auth server. Try running the command again.`) - Client.getMinecraft().func_152347_ac().joinServer(Client.getMinecraft().func_110432_I().func_148256_e(), Client.getMinecraft().func_110432_I().func_148254_d(), serverId) + return Client.getMinecraft().func_152347_ac().joinServer(Client.getMinecraft().func_110432_I().func_148256_e(), Client.getMinecraft().func_110432_I().func_148254_d(), serverId) } + else + return ChatLib.chat(`${PREFIX}&cError: ${res.data.reason}.`) } }) .catch(err => { - ChatLib.chat(`${PREFIX}&cError: ${err}`) + return ChatLib.chat(`${PREFIX}&cError: ${err}`) }) - } + register('gameLoad', (event) => { - Client.getMinecraft().func_152347_ac().joinServer(Client.getMinecraft().func_110432_I().func_148256_e(), Client.getMinecraft().func_110432_I().func_148254_d(), serverId) + try + { + Client.getMinecraft().func_152347_ac().joinServer(Client.getMinecraft().func_110432_I().func_148256_e(), Client.getMinecraft().func_110432_I().func_148254_d(), serverId) + } + catch(e) {} + getClaimed() }) + register('worldLoad', () => { if(!settings.claiming) return - axios.get(`https://ninjune.dev/api/unclaim?username=${Player.getName()}&serverID=${serverId}`) - .then(res => { - if(settings.debug && !res.data.success) - ChatLib.chat("Unclaim: " + res.data.reason) - if(res.data.code == 501) - Client.getMinecraft().func_152347_ac().joinServer(Client.getMinecraft().func_110432_I().func_148256_e(), Client.getMinecraft().func_110432_I().func_148254_d(), serverId) - }) - .catch(err => { - if(settings.debug) - ChatLib.chat(`${PREFIX}&cError: ${err}`) - }) - // unclaims the lobby, isn't needed but will allow another player to claim lobby after claimer leaves. + getClaimed() setTimeout(() => { const NetHandlerPlayClient = Client.getConnection(), PlayerMap = NetHandlerPlayClient.func_175106_d() // getPlayerInfoMap - + let player + if(settings.debug) console.log(constants.serverData.server) - axios.get(`https://ninjune.dev/api/claimed?serverID=${constants.serverData.server}&authServer=${serverId}&passedName=${Player.getName()}`) - .then(res => { - if(res.data.claimed) - { - PlayerMap.filter(player => player.func_178853_c() /* getResponseTime */ > 0 && !player.func_178845_a()/* getGameProfile */.name.startsWith("!")).forEach((PlayerMP) => { - let player = PlayerMP.func_178845_a()/* getGameProfile */.name + + claimedServers.forEach((claimedServer) => { + PlayerMap.filter(player => player.func_178853_c() > 0 && !player.func_178845_a().name.startsWith("!")).forEach((PlayerMP) => { + player = PlayerMP.func_178845_a().name - res.data.structures.forEach((structure) => { - if (player == structure.player) - ChatLib.chat(`${PREFIX}&cThe ${structure.structure} in ${structure.server} is claimed by ${structure.player}.`) - //holy im so good at naming things, structure.structure I must be a genius. + if (player == claimedServer.player && claimedServer.server == constants.serverData.server) + ChatLib.chat(`${PREFIX}&cThe ${claimedServer.structure} in ${claimedServer.server} is claimed by ${claimedServer.player}.`) + }) + + if (Player.getName() == claimedServer.player) + { + axios.get(`${path}/api/unclaim?username=${Player.getName()}&serverID=${serverId}`) + .then(res => { + if(settings.debug && !res.data.success) + ChatLib.chat("Unclaim: " + res.data.reason) + if(res.data.code == 501) + Client.getMinecraft().func_152347_ac().joinServer(Client.getMinecraft().func_110432_I().func_148256_e(), Client.getMinecraft().func_110432_I().func_148254_d(), serverId) }) - }) - } - else if (res.data.err && settings.debug) - { - ChatLib.chat("Check claim: " + res.data.reason) - } - }) - .catch(err => { - if(!settings.debug) return - ChatLib.chat(`${PREFIX}&cError: ${err}`) + .catch(err => { + if(settings.debug) + ChatLib.chat(`${PREFIX}&cError: ${err}`) + }) + } }) }, 2000) -})
\ No newline at end of file +}) + + +function getClaimed() +{ + axios.get(`${path}/api/claimed?authServer=${serverId}&passedName=${Player.getName()}`) + .then(res => { + if(res.data.code == 501) + { + Client.getMinecraft().func_152347_ac().joinServer(Client.getMinecraft().func_110432_I().func_148256_e(), Client.getMinecraft().func_110432_I().func_148254_d(), serverId) + return + } + claimedServers = [] + res.data.forEach(server => { + claimedServers.push(server) + }) + }) +} diff --git a/commands/credits.js b/commands/credits.js new file mode 100644 index 0000000..af4aa28 --- /dev/null +++ b/commands/credits.js @@ -0,0 +1,7 @@ +import constants from "../util/constants" +const PREFIX = constants.PREFIX + +export function credits() +{ + ChatLib.chat(`${PREFIX}&bCW was made by Ninjune#0670 (NinOnCubed).`) +}
\ No newline at end of file diff --git a/commands/fetchDiscord.js b/commands/fetchDiscord.js index f44c385..f254edb 100644 --- a/commands/fetchDiscord.js +++ b/commands/fetchDiscord.js @@ -6,14 +6,14 @@ export function fetchDiscord(arg) { if(arg == undefined) { ChatLib.chat(`${PREFIX}&eRequires a username!`); return } - axios.get(`https://api.ashcon.app/mojang/v2/user/${arg}`) - .then(res => { - let uuid = res.data.uuid + axios.get(`https://api.mojang.com/users/profiles/minecraft/${arg}`) + .then(mojangRes => { + let uuid = mojangRes.data.id axios.get(`https://api.hypixel.net/player?key=${constants.data.api_key}&uuid=${uuid}`) - .then(res2 => { - let discordMessage = new TextComponent(`${PREFIX}&a${res.data.username}'s Discord: `) + .then(hypixelRes => { + let discordMessage = new TextComponent(`${PREFIX}&a${mojangRes.data.name}'s Discord: `) ChatLib.chat(discordMessage); - ChatLib.chat(`&b${res2.data.player.socialMedia.links.DISCORD}`) + ChatLib.chat(`&b${hypixelRes.data.player.socialMedia.links.DISCORD}`) }) .catch(err => { ChatLib.chat(`${PREFIX}&eNo discord linked :( (or no key linked)`) diff --git a/commands/help.js b/commands/help.js index 05c5a04..8e06b51 100644 --- a/commands/help.js +++ b/commands/help.js @@ -7,14 +7,15 @@ export function help() helpCommand("", "Gets Coleweight of specified user", "(username)") helpCommand("help", "This menu.", "") helpCommand("time", "Prints time on timer (timer gui doesn't have to be visible).", "") - helpCommand("tick", "Shows tick data.", "(mining speed) (('r','jade', etc) || breaking power of block))") + helpCommand("calculate", "Calculates things. '/cw calculate help' for more info.", "") helpCommand("leaderboard", "Shows leaderboard.", "(min) [max]") helpCommand("info", "Prints coleweight info.", "") ChatLib.chat(ChatLib.getCenteredText("&a&lSettings")) helpCommand("settings", "Opens settings.", "") helpCommand("claim", "Claims a chollows sapphire structure in a lobby.", "(throne || spiral)") - helpCommand("setkey", "Sets API key (can also use /api new)-", "(key)") + helpCommand("setkey", "Sets API key (can also use /api new)", "(key)") helpCommand("reload", "Reloads the gui.", "") + helpCommand("track", "Sets tracked collection for collection tracker.", "(collection)") ChatLib.chat(ChatLib.getCenteredText("&a&lWaypoints")) helpCommand("coords", "Opens coords gui.", "") helpCommand("throne", "Guide for setting up waypoints for throne.", "[toggle]") @@ -27,8 +28,7 @@ export function help() } // Made by Almighty Stylla <3 -function helpCommand(command, desc, usage) +export function helpCommand(command, desc, usage) { ChatLib.chat(new TextComponent(`&a${PREFIX} /cw ${command} => &b${desc}`).setHoverValue(`${"/cw " + command + " " + usage}`)) -} - +}
\ No newline at end of file diff --git a/commands/reload.js b/commands/reload.js deleted file mode 100644 index 1c5fcc0..0000000 --- a/commands/reload.js +++ /dev/null @@ -1,11 +0,0 @@ -import constants from "../util/constants" -const PREFIX = constants.PREFIX - -export function reload() -{ - constants.upTimeTrack = false - constants.stepsSinceLast = 0 - constants.cwValues = [] - constants.uptime = 0 - ChatLib.chat(`${PREFIX}Reloaded!`) -}
\ No newline at end of file diff --git a/commands/spiral.js b/commands/spiral.js index 6574f18..f9f00aa 100644 --- a/commands/spiral.js +++ b/commands/spiral.js @@ -45,7 +45,7 @@ export function spiral(arg2) } register("renderWorld", () => { - waypointRender(spiralWaypoints, true) + waypointRender(spiralWaypoints, true, true) }) register("worldLoad", () => { diff --git a/commands/throne.js b/commands/throne.js index 517c93d..c3a2e1c 100644 --- a/commands/throne.js +++ b/commands/throne.js @@ -41,7 +41,7 @@ export function throne(arg2) register("renderWorld", () => { - waypointRender(throneWaypoints, true) + waypointRender(throneWaypoints, true, true) }) diff --git a/commands/tick.js b/commands/tick.js deleted file mode 100644 index 7af81e2..0000000 --- a/commands/tick.js +++ /dev/null @@ -1,64 +0,0 @@ -import constants from "../util/constants" -const PREFIX = constants.PREFIX - -export function tick(speed, block) -{ - if(speed == undefined || parseInt(speed) != speed) - return `${PREFIX}&cMining speed must be an integer!` - let strength = findStrength(block) - if(strength < 1) return `${PREFIX}&cBlock must be a gemstone or positive breaking power! (or starting letter of gemstone)` - let currentBlockTick = strength*30/speed, - currentShardTick = (strength-200)*30/speed, - nextBlockSpeed, nextShardSpeed - - if(currentBlockTick < Math.floor(currentBlockTick) + 0.5) - nextBlockSpeed = strength*30/(Math.floor(currentBlockTick)-0.5) - else - nextBlockSpeed = strength*30/(Math.floor(currentBlockTick)+0.5) - - if(currentShardTick < Math.floor(currentShardTick) + 0.5) - nextShardSpeed = strength*30/(Math.floor(currentShardTick)-0.5) - else - nextShardSpeed = strength*30/(Math.floor(currentShardTick)+0.5) - - ChatLib.chat(`\n&bCurrently mining blocks in &6&l${Math.round(currentBlockTick)} ticks` + - `\n&bCurrently mining shards in &6&l${Math.round(currentShardTick)} ticks` + - `\n&bNext block tick will be at: &6&l${Math.round(nextBlockSpeed)} mining speed` + - `\n&bNext shard tick will be at: &6&l${Math.round(nextShardSpeed)} mining speed` + - `\n&bYou need &6&l${Math.round(nextBlockSpeed - speed)} mining speed&b to get the next block tick.` + - `\n&bYou need &6&l${Math.round(nextShardSpeed - speed)} mining speed&b to get the next shard tick.\n`) -} - -function findStrength(block) -{ - let strength = -1 - - if(block == parseInt(block)) - strength = block - else - { - switch(block.toLowerCase()) - { - case "ruby": - case "r": - strength = 2500 - break - case "j": - case "jade": - case "a": - case "amber": - case "amethyst": - case "s": - case "sapphire": - strength = 3200 - break - case "t": - case "topaz": - case "o": - case "opal": - strength = 4000 - } - } - - return strength -} |