aboutsummaryrefslogtreecommitdiff
path: root/features/waypoints/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'features/waypoints/index.js')
-rw-r--r--features/waypoints/index.js42
1 files changed, 30 insertions, 12 deletions
diff --git a/features/waypoints/index.js b/features/waypoints/index.js
index 755780d..d13a897 100644
--- a/features/waypoints/index.js
+++ b/features/waypoints/index.js
@@ -15,18 +15,20 @@ class Waypoints extends Feature {
onEnable(){
this.initVariables()
- new SettingBase("/addwaypoint [name] [x] [y] [z] [r?] [g?] [b?]", "Allows you to create a waypoint", undefined, "create_waypoint", this)
+ new SettingBase("/addwaypoint [name] [x] [y] [z] [r?] [g?] [b?] [area?]", "Allows you to create a waypoint", undefined, "create_waypoint", this)
new SettingBase("/delwaypoint [name]", "Allows you to delete a waypoint", undefined, "delete_waypoint", this)
new SettingBase("/clearwaypoints", "Allows you to clear all the waypoints", undefined, "clear_waypoints", this)
new SettingBase("/savewaypoints", "Copys the waypoints to your clipboard", undefined, "save_waypoints", this)
new SettingBase("/loadwaypoints", "Loads waypoints from your clipboard", undefined, "load_waypoints", this)
this.waypoints = []
- this.userWaypoints = {}
+ this.userWaypoints = JSON.parse(FileLib.read("soopyAddonsData", "soopyv2userwaypoints.json") || "{}")
+ this.userWaypointsArr = Object.values(this.userWaypoints)
+ this.waypointsChanged = false
this.registerForge(RenderWorldLastEvent, this.renderWorldLast)
- this.registerCommand("addwaypoint", (name, x=Math.floor(Player.getX()).toString(), y=Math.floor(Player.getY()).toString(), z=Math.floor(Player.getZ()).toString(), r="0", g="255", b="0")=>{
+ this.registerCommand("addwaypoint", (name, x=Math.floor(Player.getX()).toString(), y=Math.floor(Player.getY()).toString(), z=Math.floor(Player.getZ()).toString(), r="0", g="255", b="0", area)=>{
let lx = 0
let ly = 0
let lz = 0
@@ -43,23 +45,31 @@ class Waypoints extends Feature {
}
this.userWaypoints[name] = {
- x: parseFloat(x.replace("l", lx)),
- y: parseFloat(y.replace("l", ly)),
- z: parseFloat(z.replace("l", lz)),
- r: parseInt(r),
- g: parseInt(g),
- b: parseInt(b),
+ x: parseFloat(x.replace("l", lx).replace('p', Math.floor(Player.getX()))),
+ y: parseFloat(y.replace("l", ly).replace('p', Math.floor(Player.getY()))),
+ z: parseFloat(z.replace("l", lz).replace('p', Math.floor(Player.getZ()))),
+ r: parseInt(r)/255,
+ g: parseInt(g)/255,
+ b: parseInt(b)/255,
+ area: area==="a"?this.FeatureManager.features["dataLoader"].class.area:area.replace(/_/g," "),
options: {name: ChatLib.addColor(name.replace(/_/g," "))}
}
+
+ this.userWaypointsArr = Object.values(this.userWaypoints)
+ this.waypointsChanged = true
ChatLib.chat(this.FeatureManager.messagePrefix + "Added waypoint "+ name + "!")
})
this.registerCommand("delwaypoint", (name)=>{
delete this.userWaypoints[name]
+ this.userWaypointsArr = Object.values(this.userWaypoints)
+ this.waypointsChanged = true
ChatLib.chat(this.FeatureManager.messagePrefix + "Deleted waypoint "+ name + "!")
})
this.registerCommand("clearwaypoints", ()=>{
this.userWaypoints = {}
+ this.userWaypointsArr = []
+ this.waypointsChanged = true
ChatLib.chat(this.FeatureManager.messagePrefix + "Cleared waypoints!")
})
this.registerCommand("savewaypoints", ()=>{
@@ -69,6 +79,9 @@ class Waypoints extends Feature {
this.registerCommand("loadwaypoints", ()=>{
try{
this.userWaypoints = JSON.parse(Java.type("net.minecraft.client.gui.GuiScreen")[m.getClipboardString]())
+
+ this.userWaypointsArr = Object.values(this.userWaypoints)
+ this.waypointsChanged = true
ChatLib.chat(this.FeatureManager.messagePrefix + "Loaded waypoints from clipboard!")
}catch(e){
ChatLib.chat(this.FeatureManager.messagePrefix + "Error loading from clipboard!")
@@ -92,9 +105,10 @@ class Waypoints extends Feature {
for(let waypoint of this.waypoints){
drawCoolWaypoint(waypoint.x, waypoint.y, waypoint.z, waypoint.r, waypoint.g, waypoint.b, waypoint.options)
}
- let waypoints2 = Object.values(this.userWaypoints)
- for(let waypoint of waypoints2){
- drawCoolWaypoint(waypoint.x, waypoint.y, waypoint.z, waypoint.r, waypoint.g, waypoint.b, {...waypoint.options})
+ for(let waypoint of this.userWaypointsArr){ //TODO: Make hash from waypoint.area -> waypoints[]
+ if(!waypoint.area || this.FeatureManager.features["dataLoader"].class.area === waypoint.area){
+ drawCoolWaypoint(waypoint.x, waypoint.y, waypoint.z, waypoint.r, waypoint.g, waypoint.b, {...waypoint.options})
+ }
}
}
@@ -103,6 +117,10 @@ class Waypoints extends Feature {
}
onDisable(){
+ if(this.waypointsChanged){
+ FileLib.write("soopyAddonsData", "soopyv2userwaypoints.json", JSON.stringify(this.userWaypoints))
+ }
+
this.initVariables()
}
}