aboutsummaryrefslogtreecommitdiff
path: root/features/waypoints
diff options
context:
space:
mode:
Diffstat (limited to 'features/waypoints')
-rw-r--r--features/waypoints/index.js323
-rw-r--r--features/waypoints/metadata.json8
-rw-r--r--features/waypoints/minewaypoints_socket.js49
-rw-r--r--features/waypoints/pathfind.js96
4 files changed, 0 insertions, 476 deletions
diff --git a/features/waypoints/index.js b/features/waypoints/index.js
deleted file mode 100644
index 043b6b8..0000000
--- a/features/waypoints/index.js
+++ /dev/null
@@ -1,323 +0,0 @@
-/// <reference types="../../../CTAutocomplete" />
-/// <reference lib="es2015" />
-import { m } from "../../../mappings/mappings";
-import Feature from "../../featureClass/class";
-import { Waypoint } from "../../utils/renderJavaUtils";
-import { drawCoolWaypoint } from "../../utils/renderUtils";
-import { calculateDistanceQuick } from "../../utils/utils";
-import SettingBase from "../settings/settingThings/settingBase";
-import ToggleSetting from "../settings/settingThings/toggle";
-import minewaypoints_socket from "./minewaypoints_socket";
-
-
-let areas = {
- "MinesofDivan": "Mines of Divan",
- "LostPrecursorCity": "Lost Precursor City",
- "JungleTemple": "Jungle Temple",
- "GoblinQueensDen": "Goblin Queen's Den",
- "Khazaddm": "Khazad-dûm",
- "KingYolkar": "§6King Yolkar",
- "BossCorleone": "§cBoss Corleone"
-}
-
-class Waypoints extends Feature {
- constructor() {
- super()
- }
-
- onEnable() {
- this.initVariables()
-
- 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.showInfoInChat = new ToggleSetting("Show info in chat", "Should chat msg be sent when theres waypoint added/cleared/removed", true, "waypoints_send_message", this);
-
- this.loadWaypointsFromSendCoords = new ToggleSetting("Load waypoints from /patcher sendcoords messages", "Will dissapear after 1min", true, "load_waypoints_from_sendcoords", this)
- this.mineWaypointsSetting = new ToggleSetting("CH waypoints", "Will sync between users", true, "minwaypoints", this)
-
- try {
- this.userWaypoints = JSON.parse(FileLib.read("soopyAddonsData", "soopyv2userwaypoints.json") || "{}")
- } catch (e) {
- ChatLib.chat(this.messagePrefix + "&cYour waypoints file corrupted and could not be read! Resetting to defaults.")
- this.userWaypoints = {}
- }
- this.userWaypointsHash = {}
- this.userWaypointsAll = []
- this.lastArea = undefined
- this.userWaypointsArr = Object.values(this.userWaypoints)
- this.updateWaypointsHashes()
- this.waypointsChanged = false
-
- this.patcherWaypoints = []
-
- 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
-
- if (Player.lookingAt().getX) {
- lx = Player.lookingAt().getX()
- ly = Player.lookingAt().getY()
- lz = Player.lookingAt().getZ()
-
- if (Player.lookingAt().getWidth) {
- lx += -0.5
- lz += -0.5
- }
- }
-
- this.userWaypoints[name] = {
- 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
- this.updateWaypointsHashes()
- if (this.showInfoInChat.getValue()) 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
- this.updateWaypointsHashes()
- if (this.showInfoInChat.getValue()) ChatLib.chat(this.FeatureManager.messagePrefix + "Deleted waypoint " + name + "!")
- })
- this.registerCommand("clearwaypoints", () => {
- this.userWaypointsAll.forEach(w => w.stopRender())
- Object.values(this.userWaypointsHash).forEach(a => a.forEach(w => w.stopRender()))
- this.userWaypoints = {}
- this.userWaypointsArr = []
- this.waypointsChanged = true
- this.updateWaypointsHashes()
- if (this.showInfoInChat.getValue()) ChatLib.chat(this.FeatureManager.messagePrefix + "Cleared waypoints!")
- })
- this.registerCommand("savewaypoints", () => {
- Java.type("net.minecraft.client.gui.GuiScreen")[m.setClipboardString](JSON.stringify(this.userWaypoints))
- ChatLib.chat(this.FeatureManager.messagePrefix + "Saved waypoints to clipboard!")
- })
- 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
- this.updateWaypointsHashes()
- if (this.showInfoInChat.getValue()) ChatLib.chat(this.FeatureManager.messagePrefix + "Loaded waypoints from clipboard!")
- } catch (e) {
- if (this.showInfoInChat.getValue()) ChatLib.chat(this.FeatureManager.messagePrefix + "Error loading from clipboard!")
- console.log(JSON.stringify(e, undefined, 2))
- console.log(e.stack)
- }
- })
-
- this.ignorePlayers = new Set()
-
- this.registerCommand("waypointignoreadd", (player) => {
- this.ignorePlayers.add(player)
- ChatLib.chat(this.FeatureManager.messagePrefix + "Added " + player + " to waypoint ignore list, this will be cleared next game start!")
-
- this.patcherWaypoints = this.patcherWaypoints.filter(w => {
- if (ChatLib.removeFormatting(w[1].params.name).trim().split(" ").pop() === player) {
- w[1].stopRender()
- return false
- }
-
- return true
- })
- })
-
- this.registerChat("&r${*} &8> ${player}&f: &rx: ${x}, y: ${y}, z: ${z}", (player, x, y, z, e) => {
- let p = ChatLib.removeFormatting(player).trim().split(" ").pop()
- if (this.loadWaypointsFromSendCoords.getValue() && !this.ignorePlayers.has(p)) {
- new TextComponent(this.FeatureManager.messagePrefix + "Loaded waypoint from &6" + p + "&7, &cCLICK HERE &7to ignore waypoints from them.").setClick("run_command", "/waypointignoreadd " + p).chat()
- this.patcherWaypoints.push([Date.now(), new Waypoint(parseInt(x), parseInt(y), parseInt(ChatLib.removeFormatting(z)), 0, 0, 1, { name: ChatLib.addColor(player), showDist: true }).startRender()])
- if (this.patcherWaypoints.length > 10) this.patcherWaypoints.shift()[1].stopRender()
- }
- })
- this.registerChat("${player}&r&f: x: ${x}, y: ${y}, z: ${z}", (player, x, y, z, e) => {
- if (player.includes(">")) return
- let p = ChatLib.removeFormatting(player).trim().split(" ").pop()
- if (this.loadWaypointsFromSendCoords.getValue() && !this.ignorePlayers.has(p)) {//parseInt(x), parseInt(y), parseInt(ChatLib.removeFormatting(z)), ChatLib.addColor(player)
- new TextComponent(this.FeatureManager.messagePrefix + "Loaded waypoint from &6" + p + "&7, &cCLICK HERE &7to ignore waypoints from them.").setClick("run_command", "/waypointignoreadd " + p).chat()
- this.patcherWaypoints.push([Date.now(), new Waypoint(parseInt(x), parseInt(y), parseInt(ChatLib.removeFormatting(z)), 0, 0, 1, { name: ChatLib.addColor(player), showDist: true }).startRender()])
- if (this.patcherWaypoints.length > 10) this.patcherWaypoints.shift()[1].stopRender()
- }
- })
-
- this.registerStep(false, 5, () => {
- while (this.patcherWaypoints[0]?.[0] < Date.now() - 60000) {
- this.patcherWaypoints.shift()[1].stopRender()
- }
- })
-
- let lastX = 0
- let lastY = 0
- let lastZ = 0
- let lastTick = 0
- this.registerEvent("renderWorld", () => {
- if (Math.round(Player.getX()) !== lastX
- || Math.round(Player.getY()) !== lastY
- || Math.round(Player.getZ()) !== lastZ
- || Date.now() - lastTick > 500) {
- lastX = Math.round(Player.getX())
- lastY = Math.round(Player.getY())
- lastZ = Math.round(Player.getZ())
- lastTick = Date.now()
-
- this.tickWaypoints()
- }
- })
-
-
- this.lastSend = 0
- this.locations = {}
- minewaypoints_socket.setLocationHandler = (area, loc) => {
- this.locations[area || loc[0].area] = loc;
- }
- let lastLoc = [0, 0, 0]
- this.lastTp = 0
- this.registerEvent("tick", () => {
- try {
- if (Scoreboard.getLines().length < 2) return;
- let server = ChatLib.removeFormatting(Scoreboard.getLineByIndex(Scoreboard.getLines().length - 1)).split(" ")
-
- if (server.length === 2) {
- server = server[1].replace(/[^0-9A-z]/g, "")
- } else {
- return;
- }
-
- minewaypoints_socket.setServer(server, World.getWorld().func_82737_E())
-
- let loc = [Player.getX(), Player.getY(), Player.getZ()]
- if (calculateDistanceQuick(lastLoc, loc) > 20 ** 2) {
- this.lastTp = Date.now()
- }
- lastLoc = loc
-
- if (Date.now() - this.lastSend > 1000 && Date.now() - this.lastTp > 5000) {
- Scoreboard.getLines().forEach(line => {
- line = ChatLib.removeFormatting(line.getName()).replace(/[^0-9A-z]/g, "")
- if (Object.keys(areas).includes(line)) {
- minewaypoints_socket.setLocation(line, { x: Math.floor(Player.getX()), y: Math.floor(Player.getY()), z: Math.floor(Player.getZ()) })
- }
- })
- this.lastSend = Date.now()
- }
- } catch (e) {
- console.log("SOOPYV2MINEWAYPOINTS ERROR")
- console.log(JSON.stringify(e, undefined, 2))
- }
- })
-
- this.registerStep(false, 5, () => {
-
- World.getAllEntities().forEach(e => {
- if (Math.max(Math.abs(Player.getX() - e.getX()), Math.abs(Player.getY() - e.getY()), Math.abs(Player.getZ() - e.getZ())) > 20) return;
-
- if (!this.locations["KingYolkar"]) {
- if (ChatLib.removeFormatting(e.getName()) === "King Yolkar") {
- minewaypoints_socket.setLocation("KingYolkar", { x: e.getX(), y: e.getY() + 3.5, z: e.getZ() })
- }
- }
- if (ChatLib.removeFormatting(e.getName()).includes("Boss Corleone")) {
- minewaypoints_socket.setLocation("BossCorleone", { x: e.getX(), y: e.getY() + 3.5, z: e.getZ() })
- }
- })
- // console.log(JSON.stringify(locations, undefined, 2))
- })
-
- this.registerEvent("renderWorld", () => {
- if (!this.mineWaypointsSetting.getValue()) return
- if (this.FeatureManager.features["dataLoader"].class.area !== "Crystal Hollows") return
- Object.values(this.locations).forEach(item => {
- if (!item) return;
- item.forEach(loc => {
- // console.log(JSON.stringify(loc, undefined, 2))
- if (loc.loc.x) {
- drawCoolWaypoint(loc.loc.x, loc.loc.y, loc.loc.z, 0, 255, 0, { name: areas[loc.area] })
- } else {
- drawCoolWaypoint(loc.loc.minX / 2 + loc.loc.maxX / 2, loc.loc.minY / 2 + loc.loc.maxY / 2, loc.loc.minZ / 2 + loc.loc.maxZ / 2, 0, 255, 0, { name: areas[loc.area] })
- }
- })
- })
- }).registeredWhen(() => this.mineWaypointsSetting.getValue())
-
- this.registerEvent("worldLoad", () => {
- this.locations = {}
- })
- }
-
- tickWaypoints() {
- for (let waypoint of this.userWaypointsAll) {
- waypoint.update()
- }
- for (let waypoint of this.patcherWaypoints) {
- waypoint[1].update()
- }
- let area = this.FeatureManager.features["dataLoader"] ? this.FeatureManager.features["dataLoader"].class.area : "NONE"
- if (this.lastArea && this.lastArea !== area) {
- if (this.userWaypointsHash[this.lastArea]) {
- for (let waypoint of this.userWaypointsHash[lastArea]) {
- waypoint.stopRender()
- }
-
- }
- }
- this.lastArea = area
-
- if (this.userWaypointsHash[area]) {
- for (let waypoint of this.userWaypointsHash[area]) {
- waypoint.update()
- waypoint.startRender()
- }
- }
- }
-
- updateWaypointsHashes() {
- this.userWaypointsAll.forEach(w => w.stopRender())
- Object.values(this.userWaypointsHash).forEach(a => a.forEach(w => w.stopRender()))
-
- this.userWaypointsAll = []
- this.userWaypointsHash = {}
- for (let waypoint of this.userWaypointsArr) {
- if (!waypoint.area) {
- this.userWaypointsAll.push(new Waypoint(waypoint.x, waypoint.y, waypoint.z, waypoint.r, waypoint.g, waypoint.b, waypoint.options).startRender())
- } else {
- if (!this.userWaypointsHash[waypoint.area]) this.userWaypointsHash[waypoint.area] = []
- this.userWaypointsHash[waypoint.area].push(new Waypoint(waypoint.x, waypoint.y, waypoint.z, waypoint.r, waypoint.g, waypoint.b, waypoint.options))
- }
- }
- }
-
- initVariables() {
-
- }
-
- onDisable() {
- this.userWaypointsAll.forEach(w => w.stopRender())
- Object.values(this.userWaypointsHash).forEach(a => a.forEach(w => w.stopRender()))
- this.patcherWaypoints.forEach(p => p[1].stopRender())
-
- if (this.waypointsChanged) {
- FileLib.write("soopyAddonsData", "soopyv2userwaypoints.json", JSON.stringify(this.userWaypoints))
- }
-
- this.initVariables()
- }
-}
-
-module.exports = {
- class: new Waypoints()
-}
diff --git a/features/waypoints/metadata.json b/features/waypoints/metadata.json
deleted file mode 100644
index c162b72..0000000
--- a/features/waypoints/metadata.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "Waypoints",
- "description": "Allows rendering + creation of custom waypoints",
- "isHidden": false,
- "isTogglable": true,
- "defaultEnabled": true,
- "sortA": 0
-} \ No newline at end of file
diff --git a/features/waypoints/minewaypoints_socket.js b/features/waypoints/minewaypoints_socket.js
deleted file mode 100644
index 0cc31e5..0000000
--- a/features/waypoints/minewaypoints_socket.js
+++ /dev/null
@@ -1,49 +0,0 @@
-import socketData from "../../../soopyApis/socketData";
-import WebsiteCommunicator from "../../../soopyApis/websiteCommunicator";
-
-class MineWayPointsServer extends WebsiteCommunicator {
- constructor() {
- super(socketData.serverNameToId.minewaypoints);
-
- this.setLocationHandler = undefined
- this.hypixelServer = undefined
- this.lastSend = Date.now()
- }
-
- onConnect() {
- this.hypixelServer = undefined
- }
-
- onData(data) {
- switch (data.type) {
- case "setLocation":
- if (this.setLocationHandler) {
- this.setLocationHandler(data.area, data.location);
- }
- break;
- }
- }
-
- setLocation(area, loc) {
- this.sendData({
- type: "setLocation",
- area: area,
- location: loc
- });
- }
-
- setServer(server, worldTime) {
- if (this.hypixelServer === server && Date.now() - this.lastSend < 10000) return;
-
- this.lastSend = Date.now()
- this.hypixelServer = server
- this.sendData({
- type: "setServer",
- server: server,
- time: worldTime
- });
- }
-}
-
-global.soopyV2mineWayPointsServer = new MineWayPointsServer()
-export default global.soopyV2mineWayPointsServer; \ No newline at end of file
diff --git a/features/waypoints/pathfind.js b/features/waypoints/pathfind.js
deleted file mode 100644
index 42135d8..0000000
--- a/features/waypoints/pathfind.js
+++ /dev/null
@@ -1,96 +0,0 @@
-import FlatQueue from "../../datastructures/flatqueue"
-
-const directions = [
- [1,0,0,1],
- [0,1,0,1],
- [0,0,1,1],
- [-1,0,0,1],
- [0,-1,0,1],
- [0,0,-1,1],
- [1,1,0,Math.SQRT2],
- [1,-1,0,Math.SQRT2],
- [-1,1,0,Math.SQRT2],
- [-1,-1,0,Math.SQRT2],
- [1,0,1,Math.SQRT2],
- [1,0,-1,Math.SQRT2],
- [-1,0,1,Math.SQRT2],
- [-1,0,-1,Math.SQRT2],
- [0,1,1,Math.SQRT2],
- [0,1,-1,Math.SQRT2],
- [0,-1,1,Math.SQRT2],
- [0,-1,-1,Math.SQRT2]
-]
-
-class Path{
- constructor(startLocation, endLocation){
- this.startLocation = startLocation
- this.endLocation = endLocation
-
- this.points = []
- }
-
- getPoints(){
- return this.points
- }
-
- calculate(){
- this.locs = {}
- this.points = []
- this.locs[this.startLocation.x+","+this.startLocation.y+","+this.startLocation.z]= {
- location: this.startLocation,
- parent: null,
- distance: 0,
- huristic: (Math.abs(this.startLocation.x-this.endLocation.x)+Math.abs(this.startLocation.y-this.endLocation.y)+Math.abs(this.startLocation.z-this.endLocation.z))
- }
-
- this.heap = new FlatQueue()
-
- this.heap.push(this.startLocation.x+","+this.startLocation.y+","+this.startLocation.z, this.locs[this.startLocation.x+","+this.startLocation.y+","+this.startLocation.z].huristic)
-
- let i = 0
- while(!this._iterate() && i<100000){
- i++
- }
- }
-
- _iterate(){
- let currentKey = this.heap.pop()
- let current = this.locs[currentKey]
- if(current.location.x === this.endLocation.x && current.location.y === this.endLocation.y && current.location.z === this.endLocation.z){
- this.points.push([current.location.x, current.location.y, current.location.z])
- while(current.parent){
- current = this.locs[current.parent]
-
- this.points.push([current.location.x, current.location.y, current.location.z])
- }
- return true
- }
-
- for(let dir of directions){
-
- let newLoc = {
- x: current.location.x + dir[0],
- y: current.location.y + dir[1],
- z: current.location.z + dir[2]
- }
-
- if(!this.locs[newLoc.x + "," + newLoc.y + "," + newLoc.z]){
-
- if(World.getBlockAt(newLoc.x, newLoc.y, newLoc.z).getType().getID() === 0 && World.getBlockAt(newLoc.x, newLoc.y+1, newLoc.z).getType().getID() === 0){
- this.locs[newLoc.x + "," + newLoc.y + "," + newLoc.z] = {
- location: newLoc,
- parent: currentKey,
- distance: current.distance+1,
- huristic: Math.hypot((newLoc.x-this.endLocation.x),(newLoc.y-this.endLocation.y),(newLoc.z-this.endLocation.z))+(current.distance+dir[3])/2
- }
-
- this.heap.push(newLoc.x + "," + newLoc.y + "," + newLoc.z, this.locs[newLoc.x + "," + newLoc.y + "," + newLoc.z].huristic)
- }
- }
- }
-
- return false
- }
-}
-
-export default Path \ No newline at end of file