aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chat/apiNew.js4
-rw-r--r--chat/grieferTrack.js12
-rw-r--r--chat/message.js38
-rw-r--r--commandManager.js110
-rw-r--r--commands/calculate/calculate.js7
-rw-r--r--commands/calculate/hotmCalc.js63
-rw-r--r--commands/calculate/tick.js80
-rw-r--r--commands/claim.js5
-rw-r--r--commands/coords/automatons.js53
-rw-r--r--commands/coords/divans.js (renamed from commands/divans.js)4
-rw-r--r--commands/coords/spiral.js (renamed from commands/spiral.js)4
-rw-r--r--commands/coords/throne.js (renamed from commands/throne.js)4
-rw-r--r--commands/coords/yog.js (renamed from commands/yog.js)4
-rw-r--r--commands/drawLine.js42
-rw-r--r--commands/findColeweight.js4
-rw-r--r--commands/help.js5
-rw-r--r--commands/info.js29
-rw-r--r--commands/setkey.js2
-rw-r--r--data/automatons.txt32
-rw-r--r--data/hotm.json9
-rw-r--r--data/naturalCoords.json26947
-rw-r--r--index.js3
-rw-r--r--metadata.json2
-rw-r--r--render/cwGui.js201
-rw-r--r--render/dwarvenNotifier.js36
-rw-r--r--render/gemstoneMiningStats.js125
-rw-r--r--render/guis/collectionGui.js (renamed from render/collectionGui.js)6
-rw-r--r--render/guis/coordsGui.js (renamed from render/coordsGui.js)14
-rw-r--r--render/guis/cwGui.js152
-rw-r--r--render/guis/downtimeGui.js (renamed from render/downtimeGui.js)20
-rw-r--r--render/guis/powertrackerGui.js (renamed from render/powertrackerGui.js)4
-rw-r--r--render/guis/timerGui.js (renamed from render/timerGui.js)4
-rw-r--r--render/miningAbilities.js95
-rw-r--r--render/naturals.js10
-rw-r--r--render/textGuiCreator.js20
-rw-r--r--render/treecapTimer.js39
-rw-r--r--settings.js146
-rw-r--r--util/constants.js29
-rw-r--r--util/helperFunctions.js148
-rw-r--r--util/renderUtil.js15
40 files changed, 28024 insertions, 503 deletions
diff --git a/chat/apiNew.js b/chat/apiNew.js
index eaab375..76a2418 100644
--- a/chat/apiNew.js
+++ b/chat/apiNew.js
@@ -16,9 +16,9 @@ register("chat", (key) => {
ChatLib.chat(`${PREFIX}&eKey is not valid!`)
})
.catch(err => {
- ChatLib.chat(`${PREFIX}&eKey is not valid!`)
+ ChatLib.chat(`${PREFIX}&eKey is not valid! if this is a mistake report: ${err}`)
})
- ChatLib.chat(ChatLib.getCenteredText(`${PREFIX}&aApi Key Successfully Set!`))
+ ChatLib.chat(`${PREFIX}&aApi Key Successfully Set!`)
}).setCriteria(/Your new API key is (.+)/)
export default "" \ No newline at end of file
diff --git a/chat/grieferTrack.js b/chat/grieferTrack.js
index f4ae0e4..a939b45 100644
--- a/chat/grieferTrack.js
+++ b/chat/grieferTrack.js
@@ -1,6 +1,5 @@
import axios from "../../axios"
import settings from "../settings"
-import Settings from "../settings"
import constants from "../util/constants"
const PREFIX = constants.PREFIX
let checkedPlayers = [],
@@ -26,7 +25,7 @@ register("worldLoad", () => {
function checkMMiners()
{
- if (!Settings.trackGriefers) return
+ if (!settings.trackGriefers) return
try
{
const NetHandlerPlayClient = Client.getConnection(),
@@ -37,8 +36,13 @@ function checkMMiners()
if(!checkedPlayers.includes(player))
{
- if(griefers.includes(player))
- ChatLib.chat(`${PREFIX}&e'${player}' is a griefer!`)
+ griefers.forEach(griefer => {
+ let dateObj = new Date(0)
+ dateObj.setUTCMilliseconds(griefer.timestamp)
+
+ if(griefer.name == player)
+ ChatLib.chat(`${PREFIX}&e'${player}' has griefed &e&l${griefer.offences} &etime(s). Their last grief was on ${dateObj.toString().slice(4, 15)}.`)
+ })
checkedPlayers.push(player)
}
})
diff --git a/chat/message.js b/chat/message.js
index 60245de..f55ecba 100644
--- a/chat/message.js
+++ b/chat/message.js
@@ -50,43 +50,6 @@ register("gameLoad", () => {
})
})
-
-register("messageSent", (origMessage, event) => { // emotes! this was fun to make :)
- let commandState = 0,
- command = "",
- colonIndex1 = -1,
- message = ""
-
- for(let charIndex = 0; charIndex < origMessage.length; charIndex++)
- {
- if(origMessage[charIndex] == ":" && commandState == 0)
- {
- colonIndex1 = charIndex
- commandState = 1
- }
- else if (origMessage[charIndex] == ":" && commandState == 1)
- {
- commandState = 2
- command = origMessage.slice(colonIndex1 + 1, charIndex).toLowerCase()
- }
- }
- if(command == "shrug")
- {
- cancel(event)
- emote = "¯\\_(ツ)_/¯"
- }
- else if (command == "lenny")
- {
- cancel(event)
- emote = "( ͡° ͜ʖ ͡°)"
- }
- else
- return
- message = origMessage.slice(0, colonIndex1) + emote + origMessage.slice(colonIndex1 + 2 + command.length, origMessage.length)
- ChatLib.say(`${message}`)
-})
-
-
// first time check
register("step", () => {
if (constants.data.first_time)
@@ -102,4 +65,5 @@ register("step", () => {
if (constants.data.api_key == undefined || constants.data.api_key == "") return
}).setFps(1);
+
export default "" \ No newline at end of file
diff --git a/commandManager.js b/commandManager.js
index c6c3e55..f1b6dee 100644
--- a/commandManager.js
+++ b/commandManager.js
@@ -1,14 +1,11 @@
-import { openTimerGui } from "./render/timerGui.js"
-import { openPowderGui } from "./render/powertrackerGui"
-import { openCoordsGui } from "./render/coordsGui.js"
-import { openDowntimeGui } from "./render/downtimeGui.js"
-import { openCwGui, reloadColeweight } from "./render/cwGui"
-import { openCollectionGui, reloadCollection, trackCollection } from "./render/collectionGui"
+import { openTimerGui } from "./render/guis/timerGui.js"
+import { openPowderGui } from "./render/guis/powertrackerGui"
+import { openCoordsGui } from "./render/guis/coordsGui.js"
+import { openDowntimeGui } from "./render/guis/downtimeGui.js"
+import { openCwGui, reloadColeweight } from "./render/guis/cwGui"
+import { openCollectionGui, reloadCollection, trackCollection } from "./render/guis/collectionGui"
import { help } from "./commands/help"
import { setkey } from "./commands/setkey"
-import { spiral } from "./commands/spiral"
-import { throne } from "./commands/throne"
-import { yog } from "./commands/yog"
import { leaderboard } from "./commands/leaderboard"
import { update } from "./commands/update"
import { fetchDiscord } from "./commands/fetchDiscord"
@@ -20,12 +17,18 @@ import { credits } from "./commands/credits"
import Settings from "./settings"
import constants from "./util/constants"
import { clearLobbies } from "./commands/markingLobbies"
-import { divans } from "./commands/divans.js"
import { calculate } from "./commands/calculate/calculate.js"
+import { openMiningAbilitiesGui } from "./render/miningAbilities.js"
+import { spiral } from "./commands/coords/spiral"
+import { throne } from "./commands/coords/throne"
+import { divans } from "./commands/coords/divans"
+import { yog } from "./commands/coords/yog"
+import { automatons } from "./commands/coords/automatons"
+import { drawLine } from "./commands/drawline.js"
+
register("command", (...args) => {
- console.log(args[0])
- if (args[0] == undefined) {findColeweight(args[0]); return}
+ if (args[0] == undefined) {Settings.openGUI(); return}
switch(args[0].toString().toLowerCase())
{
case "setkey":
@@ -54,6 +57,9 @@ register("command", (...args) => {
case "collection":
openCollectionGui()
break
+ case "miningabilities":
+ openMiningAbilitiesGui()
+ break
default:
ChatLib.chat(`${constants.PREFIX}&cNo such gui as '${arg2}'.`)
}
@@ -65,6 +71,8 @@ register("command", (...args) => {
spiral(args[1])
break
case "reload":
+ if(args[1] == undefined)
+ return ChatLib.chat(`${constants.PREFIX}&cMust specify a gui. Hit tab on '/cw reload ' for options.`)
switch(args[1].toLowerCase())
{
case "coleweight":
@@ -77,6 +85,8 @@ register("command", (...args) => {
ChatLib.chat(`${constants.PREFIX}&cNo such gui as '${args[1]}'.`)
}
break
+ case "lb":
+ case "top":
case "leaderboard":
leaderboard(args[1], args[2])
break
@@ -109,6 +119,10 @@ register("command", (...args) => {
case "divan":
divans(args[1])
break
+ case "automaton":
+ case "automatons":
+ automatons(args[1])
+ break
case "coord":
case "coords":
openCoordsGui()
@@ -123,52 +137,34 @@ register("command", (...args) => {
case "calculate":
calculate(args.slice(1))
break
+ case "drawline":
+ drawLine(args)
+ break
default:
findColeweight(args[0])
}
}).setTabCompletions((args) => {
let output = [],
- calculateOptions = ["tick", "ms2toprofessional", "hotmcalc", "calchotm"],
+ reloadOptions = ["coleweight", "collection"],
+ calculateOptions = ["tick", "ms2toprofessional", "hotm", "calchotm"],
commands = ["setkey", "help", "move", "toggle", "throne", "spiral", "reload", "leaderboard",
- "settings", "claim", "time", "info", "clearlobbies", "yog", "divan", "coords", "credits", "track", "calculate"]
+ "settings", "claim", "time", "info", "clearlobbies", "yog", "divan", "automatons", "coords", "credits", "track", "calculate", "drawline"]
if(args[0].length == 0 || args[0] == undefined)
return output = commands
- if(args[0] == "calc" || args[0] == "calculate")
+ switch(args[0])
{
- if(args[1] == undefined) output = calculateOptions
-
- else
- {
- calculateOptions.forEach(calculateOption => {
- for(let char = 0; char < args[1].length; char++)
- {
- if(calculateOption[char] != args[1][char])
- break
- else if(char == args[1].length - 1)
- output.push(calculateOption)
- }
- })
- }
- }
- else
- {
-
- if(args[0] == undefined) output = commands
-
- else
- {
- commands.forEach(command => {
- for(let char = 0; char < args[0].length; char++)
- {
- if(command[char] != args[0][char])
- break
- else if(char == args[0].length - 1)
- output.push(command)
- }
- })
- }
+ case "reload":
+ output = findTabOutput(args[1], reloadOptions)
+ break
+ case "calculate":
+ case "calc":
+ output = findTabOutput(args[1], calculateOptions)
+ break
+ default:
+ output = findTabOutput(args[0], commands)
+ break
}
return output
}).setName("cw").setAliases(["coleweight"])
@@ -183,4 +179,22 @@ register("command", (arg) => {
.sort()
return players
-}).setName("fetchdiscord").setAliases(["fdiscord"]); \ No newline at end of file
+}).setName("fetchdiscord").setAliases(["fdiscord"]);
+
+function findTabOutput(input, options)
+{
+ let output = []
+
+ if(input == undefined || input == "") return options
+ options.forEach(option => {
+ for(let char = 0; char < input.length; char++)
+ {
+ if(option[char] != input[char])
+ break
+ else if(char == input.length - 1)
+ output.push(option)
+ }
+ })
+
+ return output
+} \ No newline at end of file
diff --git a/commands/calculate/calculate.js b/commands/calculate/calculate.js
index cc4a006..8ed05bf 100644
--- a/commands/calculate/calculate.js
+++ b/commands/calculate/calculate.js
@@ -1,7 +1,7 @@
import constants from "../../util/constants"
import { hotmCalc } from "./hotmCalc"
import { calcSpeed } from "./calcSpeed"
-import { tick } from "./tick"
+import { tickCommand } from "./tick"
import { helpCommand } from "../help"
const PREFIX = constants.PREFIX
@@ -16,14 +16,15 @@ export function calculate(args)
hotmCalc(args[1], args[2], args[3])
break
case "tick":
- tick(args[1], args[2])
+ tickCommand(args[1], args[2])
break
case "calcspeed":
case "speed":
calcSpeed(args[1])
break
case "help":
- ChatLib.chat("&b--------------[ &a&l/cw calculate &b]--------------")
+ ChatLib.chat("&b--------------[ &a&l/cw calculate &b]------------")
+ ChatLib.chat("&7(Hover over command to see usage.)")
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]")
diff --git a/commands/calculate/hotmCalc.js b/commands/calculate/hotmCalc.js
index 415e7f4..7fa947c 100644
--- a/commands/calculate/hotmCalc.js
+++ b/commands/calculate/hotmCalc.js
@@ -5,28 +5,46 @@ const PREFIX = constants.PREFIX
export function hotmCalc(hotmName, minLevel, maxLevel)
{
- if(maxLevel == undefined)
+ if(hotmName == undefined)
{
- maxLevel = minLevel
- minLevel = 1
+ 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
}
+ new Thread(() => {
+ if(maxLevel == undefined)
+ {
+ maxLevel = minLevel
+ minLevel = 1
+ }
+
+ if(minLevel != parseInt(minLevel) || maxLevel != parseInt(maxLevel)) return ChatLib.chat(constants.CALCULATEERRORMESSAGE)
- 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}'!`)
- 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,
+ reward = findReward(hotmObjectToFind.rewardFormula, minLevel, maxLevel)
- maxLevel = (maxLevel < hotmObjectToFind.maxLevel ? maxLevel : hotmObjectToFind.maxLevel)
+ if(hotmObjectToFind.names[0] == "fortunate")
+ powderSum = findCost(undefined, minLevel, maxLevel, true)
+ else
+ powderSum = findCost(hotmObjectToFind.costFormula, minLevel, 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("")
+
+ 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("")
+ }).start()
}
export function findHotmObject(hotmName)
@@ -35,17 +53,22 @@ export function findHotmObject(hotmName)
for(let i = 0; i < hotmData.length; i++)
{
- if(hotmData[i].names.includes(hotmName))
+ if(hotmData[i].names.includes(hotmName.toLowerCase()))
return hotmData[i]
}
}
-export function findCost(costFormula, minLevel, maxLevel)
+export function findCost(costFormula, minLevel, maxLevel, fortunate = false)
{
let powderSum = 0
- for(let currentLevel = minLevel; currentLevel < maxLevel; currentLevel++) // finds cost
- powderSum += eval(costFormula.replace("currentLevel", currentLevel))
+ if(fortunate)
+ powderSum = Math.pow(maxLevel+1, 3.05)
+ else
+ {
+ for(let currentLevel = minLevel; currentLevel <= maxLevel; currentLevel++) // finds cost
+ powderSum += eval(costFormula.replace("currentLevel", currentLevel))
+ }
return powderSum
}
diff --git a/commands/calculate/tick.js b/commands/calculate/tick.js
index 5969710..674aa91 100644
--- a/commands/calculate/tick.js
+++ b/commands/calculate/tick.js
@@ -1,50 +1,86 @@
import constants from "../../util/constants"
const PREFIX = constants.PREFIX
-export function tick(speed, block)
+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)
- let strength = findStrength(block)
- if(strength < 1) return ChatLib.chat(`${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
+ 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)`)
+
- if(currentBlockTick < Math.floor(currentBlockTick) + 0.5)
- nextBlockSpeed = strength*30/(Math.floor(currentBlockTick)-0.5)
+ 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),
+ tickStrength = strength-200
+
+ ticks.currentBlockTick = strength*30/speed
+ ticks.currentShardTick = tickStrength*30/speed
+
+ if(ticks.currentBlockTick < 4.5)
+ {
+ if(ticks.currentBlockTick > 0.5)
+ ticks.currentBlockTick = 4
+ }
+
+ if(ticks.currentShardTick < 4.5)
+ {
+ if(ticks.currentShardTick > 0.5)
+ ticks.currentShardTick = 4
+ }
+
+ 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
- nextBlockSpeed = strength*30/(Math.floor(currentBlockTick)+0.5)
+ ticks.nextBlockSpeed = strength*30/(Math.floor(ticks.currentBlockTick)+0.5)
- if(currentShardTick < Math.floor(currentShardTick) + 0.5)
- nextShardSpeed = strength*30/(Math.floor(currentShardTick)-0.5)
+ if(ticks.currentShardTick < Math.floor(ticks.currentShardTick) + 0.5)
+ ticks.nextShardSpeed = strength*30/(Math.floor(ticks.currentShardTick)-0.5)
else
- nextShardSpeed = strength*30/(Math.floor(currentShardTick)+0.5)
+ ticks.nextShardSpeed = strength*30/(Math.floor(ticks.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`)
+ return ticks
}
function findStrength(block)
{
let strength = -1
- if(block == parseInt(block))
+ if(block == parseInt(block) && block > 5) // change if add block to tick speed blocks in settings
strength = block
else
{
- switch(block.toLowerCase())
+ 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":
@@ -54,11 +90,15 @@ function findStrength(block)
case "sapphire":
strength = 3200
break
+ case "4":
case "t":
case "topaz":
case "o":
case "opal":
strength = 4000
+ case "5":
+ case "jasper":
+ strength = 5000
}
}
diff --git a/commands/claim.js b/commands/claim.js
index e3f9a0d..a8c51c6 100644
--- a/commands/claim.js
+++ b/commands/claim.js
@@ -59,16 +59,12 @@ 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)
}
catch(e) {}
- // what if a player claims after gameload? idk man, making requests every worldload is hurting my server.
- // this feature is barely used anyway.
getClaimed()
})
register('worldLoad', () => {
if(!settings.claiming) return
- if(claimedServers == undefined)
- getClaimed()
setTimeout(() => {
const NetHandlerPlayClient = Client.getConnection(),
PlayerMap = NetHandlerPlayClient.func_175106_d() // getPlayerInfoMap
@@ -112,6 +108,7 @@ function getClaimed()
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/coords/automatons.js b/commands/coords/automatons.js
new file mode 100644
index 0000000..4114eec
--- /dev/null
+++ b/commands/coords/automatons.js
@@ -0,0 +1,53 @@
+import constants from "../../util/constants"
+import { waypointRender } from "../../util/helperFunctions"
+
+const PREFIX = constants.PREFIX
+let waypoints = []
+
+export function automatons(arg)
+{
+ const WAYPOINTNAME = "Automatons"
+
+ if(arg != "toggle")
+ {
+ new TextComponent(`${PREFIX}&bStand in the pot in &3this&b picture and do /cw ${WAYPOINTNAME} toggle`)
+ .setClickAction("open_url")
+ .setClickValue("https://media.discordapp.net/attachments/1049475464667856926/1052749218055475210/image.png")
+ .chat()
+ }
+ else
+ {
+ if(waypoints[0] == undefined)
+ {
+ let startPos = [Player.getX(), Player.getY(), Player.getZ()],
+ x = startPos[0],
+ y = startPos[1],
+ z = startPos[2]
+
+ let coordsRows = FileLib.read("Coleweight", "data/automatons.txt").split("\r\n")
+ coordsRows.forEach(unsplitRow => {
+ let row = unsplitRow.split(" ")
+
+ waypoints.push([x + parseInt(row[0]), y + parseInt(row[1]), z + parseInt(row[2])])
+ })
+
+ ChatLib.chat(`${PREFIX}&b${WAYPOINTNAME} waypoints turned on!`)
+ }
+ else
+ {
+ waypoints = []
+ ChatLib.chat(`${PREFIX}&b${WAYPOINTNAME} waypoints turned off!`)
+ }
+ }
+}
+
+register("renderWorld", () => {
+ waypointRender(waypoints)
+})
+
+
+register("worldLoad", () => {
+ waypoints = []
+})
+
+export default "" \ No newline at end of file
diff --git a/commands/divans.js b/commands/coords/divans.js
index c5e618a..98b56dd 100644
--- a/commands/divans.js
+++ b/commands/coords/divans.js
@@ -1,5 +1,5 @@
-import constants from "../util/constants"
-import { waypointRender } from "../util/helperFunctions"
+import constants from "../../util/constants"
+import { waypointRender } from "../../util/helperFunctions"
const PREFIX = constants.PREFIX
let divanWaypoints = []
diff --git a/commands/spiral.js b/commands/coords/spiral.js
index f9f00aa..7092aa9 100644
--- a/commands/spiral.js
+++ b/commands/coords/spiral.js
@@ -1,5 +1,5 @@
-import constants from "../util/constants"
-import { waypointRender } from "../util/helperFunctions"
+import constants from "../../util/constants"
+import { waypointRender } from "../../util/helperFunctions"
const PREFIX = constants.PREFIX
let spiralWaypoints = []
diff --git a/commands/throne.js b/commands/coords/throne.js
index c3a2e1c..6e1e104 100644
--- a/commands/throne.js
+++ b/commands/coords/throne.js
@@ -1,5 +1,5 @@
-import constants from "../util/constants"
-import { waypointRender } from "../util/helperFunctions"
+import constants from "../../util/constants"
+import { waypointRender } from "../../util/helperFunctions"
const PREFIX = constants.PREFIX
let throneWaypoints = []
diff --git a/commands/yog.js b/commands/coords/yog.js
index 1544553..e02b4a2 100644
--- a/commands/yog.js
+++ b/commands/coords/yog.js
@@ -1,5 +1,5 @@
-import constants from "../util/constants"
-import { waypointRender } from "../util/helperFunctions"
+import constants from "../../util/constants"
+import { waypointRender } from "../../util/helperFunctions"
const PREFIX = constants.PREFIX
let yogWaypoints = []
diff --git a/commands/drawLine.js b/commands/drawLine.js
new file mode 100644
index 0000000..7fd9742
--- /dev/null
+++ b/commands/drawLine.js
@@ -0,0 +1,42 @@
+import constants from "../util/constants"
+import { trace } from "../util/renderUtil"
+const PREFIX = constants.PREFIX
+
+let x = 0,
+ y = 0,
+ z = 0
+
+export function drawLine(args)
+{
+ switch(args.length - 1)
+ {
+ case 0:
+ case 1:
+ x = 0
+ y = 0
+ z = 0
+ ChatLib.chat(`${PREFIX}&bStopped drawing line.`)
+ return
+ case 2:
+ x = args[1]
+ y = Player.getY() + 1
+ z = args[2]
+ break
+