diff options
Diffstat (limited to 'features/waypoints/index.js')
-rw-r--r-- | features/waypoints/index.js | 323 |
1 files changed, 0 insertions, 323 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() -} |