aboutsummaryrefslogtreecommitdiff
path: root/features
diff options
context:
space:
mode:
Diffstat (limited to 'features')
-rw-r--r--features/dungeonMap/index.js32
-rw-r--r--features/dungeonMap2/DungeonMapData.js80
-rw-r--r--features/dungeonMap2/DungeonMapRoom.js134
-rw-r--r--features/dungeonMap2/DungeonRoomStaticData.js19
-rw-r--r--features/dungeonMap2/index.js199
-rw-r--r--features/dungeonMap2/metadata.json8
-rw-r--r--features/dungeonRoutes/index.js2
-rw-r--r--features/dungeonRoutes/temproomdata.json2817
-rw-r--r--features/waypoints/index.js15
9 files changed, 471 insertions, 2835 deletions
diff --git a/features/dungeonMap/index.js b/features/dungeonMap/index.js
index ced41d2..4befbbf 100644
--- a/features/dungeonMap/index.js
+++ b/features/dungeonMap/index.js
@@ -194,18 +194,24 @@ class DungeonMap extends Feature {
return
}
// if (curr === max) curr = "&a" + curr
- if (this.roomDataStuff.get(loc.join(",")) !== curr + " " + max) {
- this.roomDataStuff.set(loc.join(","), curr + " " + max)
+ if (!this.roomDataStuff.get(loc.join(",")) || this.roomDataStuff.get(loc.join(","))[0] !== curr + " " + max) {
+ this.roomDataStuff.set(loc.join(","), [curr + " " + max, this.getCurrentRoomId()])
- socketConnection.sendDungeonData2(this.people, [loc.join(","), curr + " " + max])
+ socketConnection.sendDungeonData2(this.people, [loc.join(","), curr + " " + max, this.getCurrentRoomId()])
}
})
registerActionBar.trigger.setCriteria('&7${curr}/${max} Secrets').setParameter('contains');
}
+ getCurrentRoomId() {
+ let id = Scoreboard.getLineByIndex(Scoreboard.getLines().length - 1).getName().trim().split(" ").pop()
+
+ return id
+ }
+
updateDungeonMapData2(data) {
// console.log("Recieved: " + JSON.stringify(data, undefined, 2))
- this.roomDataStuff.set(data[0], data[1])
+ this.roomDataStuff.set(data[0], [data[1], data[2]])
}
worldLoad() {
this.dungeonBrBoxElm.stopRender()
@@ -358,10 +364,12 @@ class DungeonMap extends Feature {
if (this.currDungeonBossImage) return
if (this.roomsecrets.getValue()) {
for (let ent of this.roomDataStuffRender.entries()) {
- let [loc, val] = ent
+ let [loc, [secrets, roomid, color]] = ent
let [x, y] = loc.split(",")
- let val2 = ChatLib.removeFormatting(val)
+ let renderText = color + secrets
+
+ let val2 = ChatLib.removeFormatting(renderText)
let renderX = (parseInt(x) + 16) / this.mapScale / 128 * size + this.offset[0] / 128 * size
let renderY = (parseInt(y) + 16) / this.mapScale / 128 * size + this.offset[1] / 128 * size
@@ -375,7 +383,7 @@ class DungeonMap extends Feature {
Renderer.translate(0, 0, 1000)
renderLibs.drawStringCentered("§0" + val2, x2 + renderX, y2 + renderY - scale * 1.25 - 2 * scale * 1.25, scale * 1.25)
Renderer.translate(0, 0, 1000)
- renderLibs.drawStringCentered("§f" + val, x2 + renderX, y2 + renderY - 2 * scale * 1.25, scale * 1.25)
+ renderLibs.drawStringCentered("§f" + renderText, x2 + renderX, y2 + renderY - 2 * scale * 1.25, scale * 1.25)
}
}
}
@@ -881,11 +889,15 @@ class DungeonMap extends Feature {
}
}
if (isGreen) {
- let total = ent[1].split(" ")[1]
- this.roomDataStuff.set(loc, total + " " + total)
+ let total = ent[1][0].split(" ")[1]
+ let data = this.roomDataStuff.get(loc)
+ data[0] = total + " " + total
+ this.roomDataStuff.set(loc, data)
}
- this.roomDataStuffRender.set(loc, color + this.roomDataStuff.get(loc))
+ let setData = [...this.roomDataStuff.get(loc)]
+ setData.push(color)
+ this.roomDataStuffRender.set(loc, setData)
}
}
// if (!this.renderImage) return
diff --git a/features/dungeonMap2/DungeonMapData.js b/features/dungeonMap2/DungeonMapData.js
new file mode 100644
index 0000000..15ffcca
--- /dev/null
+++ b/features/dungeonMap2/DungeonMapData.js
@@ -0,0 +1,80 @@
+import { m } from "../../../mappings/mappings"
+import DungeonMapRoom from "./DungeonMapRoom"
+
+const BufferedImage = Java.type("java.awt.image.BufferedImage")
+
+class DungeonMapData {
+ constructor(floor) {
+ this.floor = floor
+
+ this.greenRoom = undefined
+ /**
+ * @type {Map<String,DungeonMapRoom>}
+ */
+ this.rooms = new Map()
+
+ this.image = undefined
+ }
+
+ setRoom(x, y, rotation, id) {
+ let locstr = x + "," + y
+
+ if (this.rooms.get(locstr) && this.rooms.get(locstr).roomId !== id) {
+ this.rooms.get(locstr).setId(id)
+ this.mapChanged()
+ return
+ }
+
+ let room = DungeonMapRoom.fromId(id, x, y, rotation)
+
+ if (room.type === DungeonMapRoom.TYPE_SPAWN) {
+ this.greenRoom = locstr
+ }
+ console.log(room.type)
+
+ this.rooms.set(locstr, room)
+
+ this.mapChanged()
+ }
+
+ mapChanged() {
+ if (this.image) {
+ this.image.getTexture()[m.deleteGlTexture]()
+ this.image = undefined
+ }
+ }
+
+ /**
+ * @returns {Image}
+ */
+ getImage() {
+ if (!this.image) {
+ this.image = new Image(this.render())
+ }
+ return this.image
+ }
+
+ /**
+ * @returns {BufferedImage}
+ */
+ render() {
+ //create 256x256 image
+ let image = new BufferedImage(256, 256, BufferedImage.TYPE_INT_ARGB)
+
+ //if green room data not found yet then map should be empty
+ if (!this.greenRoom) return image
+
+ //create graphics rendering context
+ let graphics = image.createGraphics()
+
+ //render rooms
+ for (let data of this.rooms.entries()) {
+ let room = data[1]
+ room.draw(graphics, 256, 256)
+ }
+
+ return image
+ }
+}
+
+export default DungeonMapData \ No newline at end of file
diff --git a/features/dungeonMap2/DungeonMapRoom.js b/features/dungeonMap2/DungeonMapRoom.js
new file mode 100644
index 0000000..10f26e2
--- /dev/null
+++ b/features/dungeonMap2/DungeonMapRoom.js
@@ -0,0 +1,134 @@
+import DungeonRoomStaticData from "./DungeonRoomStaticData"
+
+const Color = Java.type("java.awt.Color")
+
+class DungeonMapRoom {
+
+ static TYPE_SPAWN = 0
+ static TYPE_NORMAL = 1
+ static TYPE_PUZZLE = 2
+ static TYPE_MINIBOSS = 3
+ static TYPE_FAIRY = 4
+ static TYPE_BLOOD = 5
+ static TYPE_UNKNOWN = 6
+
+ static SHAPE_1X1 = 0
+ static SHAPE_1X2 = 1
+ static SHAPE_1X3 = 2
+ static SHAPE_1X4 = 3
+ static SHAPE_2X2 = 4
+ static SHAPE_L = 5
+
+ static fromId(roomId, x, y, rotation) {
+ let data = DungeonRoomStaticData.getDataFromId(roomId)
+ let type = DungeonMapRoom.TYPE_NORMAL
+ switch (data.type) {
+ case "mobs":
+ type = DungeonMapRoom.TYPE_NORMAL
+ break
+ case "miniboss":
+ type = DungeonMapRoom.TYPE_NORMAL
+ break
+ case "spawn":
+ type = DungeonMapRoom.TYPE_SPAWN
+ break
+ case "puzzle":
+ type = DungeonMapRoom.TYPE_PUZZLE
+ break
+ case "gold":
+ type = DungeonMapRoom.TYPE_MINIBOSS
+ break
+ case "fairy":
+ type = DungeonMapRoom.TYPE_FAIRY
+ break
+ case "blood":
+ type = DungeonMapRoom.TYPE_BLOOD
+ break
+ }
+
+ let shape = DungeonMapRoom.SHAPE_1X1
+ switch (data.shape) {
+ case "1x1":
+ shape = DungeonMapRoom.SHAPE_1X1
+ break
+ case "1x2":
+ shape = DungeonMapRoom.SHAPE_1X2
+ break
+ case "1x3":
+ shape = DungeonMapRoom.SHAPE_1X3
+ break
+ case "1x4":
+ shape = DungeonMapRoom.SHAPE_1X4
+ break
+ case "2x2":
+ shape = DungeonMapRoom.SHAPE_2X2
+ break
+ case "L":
+ shape = DungeonMapRoom.SHAPE_L
+ break
+ }
+ return new DungeonMapRoom(type, shape, rotation, x, y, roomId)
+ }
+
+ /**
+ *
+ * @param {Number} type
+ * @param {Number} shape
+ * @param {Number} rotation 0-3
+ * @param {Number} x
+ * @param {Number} y
+ * @param {String} roomId
+ */
+ constructor(type, shape, rotation, x, y, roomId) {
+ this.type = type
+ this.shape = shape
+ this.rotation = rotation
+ this.roomId = roomId
+
+ this.location = [x, y]
+ }
+
+ setId(id) {
+ this.roomId = id
+ }
+
+ /**
+ * Renders this room onto the given Graphics2D
+ * @param {Graphics2D} graphics
+ */
+ draw(graphics, xOff, yOff) {
+
+ graphics.setColor(this.getRoomRenderColor())
+
+ switch (this.shape) {
+ case DungeonMapRoom.SHAPE_1X1:
+ graphics.fillRect(this.location[0] + xOff + 3, this.location[1] + yOff + 3, 26, 26)
+ break;
+ case DungeonMapRoom.SHAPE_1X2:
+ graphics.fillRect(this.location[0] + xOff + 3, this.location[1] + yOff + 3, 26 + 32, 26)
+ break;
+ case DungeonMapRoom.SHAPE_1X3:
+ graphics.fillRect(this.location[0] + xOff + 3, this.location[1] + yOff + 3, 26 + 64, 26)
+ break;
+ case DungeonMapRoom.SHAPE_1X4:
+ graphics.fillRect(this.location[0] + xOff + 3, this.location[1] + yOff + 3, 26 + 96, 26)
+ break;
+ }
+
+ }
+
+ getRoomRenderColor() {
+ return roomColorMap.get(this.type)
+ }
+}
+
+let roomColorMap = new Map()
+roomColorMap.set(DungeonMapRoom.TYPE_SPAWN, new Color(Renderer.color(0, 124, 0, 255)))
+roomColorMap.set(DungeonMapRoom.TYPE_NORMAL, new Color(Renderer.color(114, 67, 27, 255)))
+roomColorMap.set(DungeonMapRoom.TYPE_PUZZLE, new Color(Renderer.color(178, 76, 216, 255)))
+roomColorMap.set(DungeonMapRoom.TYPE_MINIBOSS, new Color(Renderer.color(229, 229, 51, 255)))
+roomColorMap.set(DungeonMapRoom.TYPE_FAIRY, new Color(Renderer.color(242, 127, 165, 255)))
+roomColorMap.set(DungeonMapRoom.TYPE_BLOOD, new Color(Renderer.color(255, 0, 0, 255)))
+roomColorMap.set(DungeonMapRoom.TYPE_UNKNOWN, new Color(Renderer.color(65, 65, 65, 255)))
+
+export default DungeonMapRoom \ No newline at end of file
diff --git a/features/dungeonMap2/DungeonRoomStaticData.js b/features/dungeonMap2/DungeonRoomStaticData.js
new file mode 100644
index 0000000..75d5b1e
--- /dev/null
+++ b/features/dungeonMap2/DungeonRoomStaticData.js
@@ -0,0 +1,19 @@
+class DungeonRoomStaticData {
+ constructor() {
+ this.fullRoomData = JSON.parse(FileLib.read("SoopyV2", "data/roomdata.json"))
+
+ this.idMap = new Map()
+ this.fullRoomData.forEach((d, i) => {
+ d.id.forEach(id => {
+ this.idMap.set(id, i)
+ })
+ this.idMap.set(d.index, i)
+ })
+ }
+
+ getDataFromId(id) {
+ return this.fullRoomData[this.idMap.get(id)]
+ }
+}
+
+export default new DungeonRoomStaticData() \ No newline at end of file
diff --git a/features/dungeonMap2/index.js b/features/dungeonMap2/index.js
new file mode 100644
index 0000000..c807e85
--- /dev/null
+++ b/features/dungeonMap2/index.js
@@ -0,0 +1,199 @@
+/// <reference types="../../../CTAutocomplete" />
+/// <reference lib="es2015" />
+
+import Feature from "../../featureClass/class";
+import renderLibs from "../../../guimanager/renderLibs";
+import DungeonMapData from "./DungeonMapData";
+import DungeonRoomStaticData from "./DungeonRoomStaticData";
+
+const AlphaComposite = Java.type("java.awt.AlphaComposite")
+
+class DungeonMap extends Feature {
+ constructor() {
+ super()
+ }
+
+ onEnable() {
+ if (Player.getUUID().toString() !== "dc8c3964-7b29-4e03-ae9e-d13ebd65dd29") {
+ new SettingBase("Coming soontm", "maby", undefined, "coming_soontm", this)
+ return
+ }
+
+ this.lastRoomId = undefined
+
+ /**@type {DungeonMapData} */
+ this.currentDungeon = undefined
+
+ this.registerStep(true, 5, this.update)
+
+ this.registerEvent("renderOverlay", this.renderOverlay)
+ }
+
+ update() {
+ if (!this.isInDungeon()) {
+ this.lastRoomId = undefined
+ this.currentDungeon = undefined
+ return
+ }
+
+ if (!this.currentDungeon) {
+ this.currentDungeon = new DungeonMapData(this.FeatureManager.features["dataLoader"].class.dungeonFloor)
+ }
+
+ let roomid = this.getCurrentRoomId()
+ if (!roomid.includes(",")) return
+
+ if (roomid !== this.lastRoomId) {
+ this.lastRoomId = roomid
+
+ let roomWorldData = this.getRoomWorldData()
+ this.currentDungeon.setRoom(roomWorldData.x, roomWorldData.y, roomWorldData.rotation, roomid)
+ }
+ }
+
+ renderOverlay() {
+ if (this.currentDungeon) {
+ let x = 10
+ let y = 10
+ let size = 100
+ this.currentDungeon.getImage().draw(x, y, size, size)
+
+ Renderer.drawRect(Renderer.color(0, 0, 0), x, y, size, 2)
+ Renderer.drawRect(Renderer.color(0, 0, 0), x, y, 2, size)
+ Renderer.drawRect(Renderer.color(0, 0, 0), x + size - 2, y, 2, size)
+ Renderer.drawRect(Renderer.color(0, 0, 0), x, y + size - 2, size, 2)
+ }
+ }
+
+ getCurrentRoomId() {
+ if (Scoreboard.getLines().length === 0) return undefined
+ let id = Scoreboard.getLineByIndex(Scoreboard.getLines().length - 1).getName().trim().split(" ").pop()
+
+ return id
+ }
+
+ isInDungeon() {
+ if (!this.FeatureManager || !this.FeatureManager.features["dataLoader"]) return false
+ return this.FeatureManager.features["dataLoader"].class.isInDungeon
+ }
+
+ getRoomXYWorld() {
+ let roomData = this.getRoomWorldData()
+ if (roomData.rotation === 4) {
+ return [roomData.x, roomData.y + 32]
+ }
+
+ return [roomData.x, roomData.y]
+ }
+
+ getCurrentRoomData() {
+ return DungeonRoomStaticData.getDataFromId(this.getCurrentRoomId())
+ }
+
+ getRotation(x, y, width, height, roofY) {
+ let currRoomData = this.getCurrentRoomData()
+ if (!currRoomData) return -1
+
+ if (currRoomData.shape !== "L") {
+ if (this.getTopBlockAt(x, y, roofY) === 11) return 0
+ if (this.getTopBlockAt(x + width, y, roofY) === 11) return 1
+ if (this.getTopBlockAt(x + width, y + height, roofY) === 11) return 2
+ if (this.getTopBlockAt(x, y + height, roofY) === 11) return 3
+ } else {
+ let one = this.getTopBlockAt2(x + width / 2 + 1, y + height / 2, roofY)
+ let two = this.getTopBlockAt2(x + width / 2 - 1, y + height / 2, roofY)
+ let three = this.getTopBlockAt2(x + width / 2, y + height / 2 + 1, roofY)
+ let four = this.getTopBlockAt2(x + width / 2, y + height / 2 - 1, roofY)
+
+ if (one === 0 && three === 0) return 0
+ if (two === 0 && three === 0) return 1
+ if (one === 0 && four === 0) return 2
+ if (two === 0 && four === 0) return 3//3 IS SO TOXIK HGOLY HEL I HATE L SHAPE ROOMS WHY DO THIS TO ME
+ }
+
+ return -1
+ }
+
+ getRoomWorldData() {
+ let x = Math.floor((Player.getX() + 8) / 32) * 32 - 8
+ let y = Math.floor((Player.getZ() + 8) / 32) * 32 - 8
+ let width = 30
+ let height = 30
+
+ let roofY = this.getRoofAt(x, y)
+
+ while (World.getBlockStateAt(new BlockPos(x - 1, roofY, y)).getBlockId() !== 0) {
+ x -= 32
+ width += 32
+ }
+ while (World.getBlockStateAt(new BlockPos(x, roofY, y - 1)).getBlockId() !== 0) {
+ y -= 32
+ height += 32
+ }
+ while (World.getBlockStateAt(new BlockPos(x - 1, roofY, y)).getBlockId() !== 0) { //second iteration incase of L shape
+ x -= 32
+ width += 32
+ }
+ while (World.getBlockStateAt(new BlockPos(x + width + 1, roofY, y)).getBlockId() !== 0) {
+ width += 32
+ }
+ while (World.getBlockStateAt(new BlockPos(x, roofY, y + height + 1)).getBlockId() !== 0) {
+ height += 32
+ }
+ while (World.getBlockStateAt(new BlockPos(x + width, roofY, y + height + 1)).getBlockId() !== 0) { //second iteration incase of L shape
+ height += 32
+ }
+ while (World.getBlockStateAt(new BlockPos(x + width + 1, roofY, y + height)).getBlockId() !== 0) { //second iteration incase of L shape
+ width += 32
+ }
+ while (World.getBlockStateAt(new BlockPos(x + width, roofY, y - 1)).getBlockId() !== 0) {//second iteration incase of L shape
+ y -= 32
+ height += 32
+ }
+ while (World.getBlockStateAt(new BlockPos(x - 1, roofY, y + height)).getBlockId() !== 0) { //third iteration incase of L shape
+ x -= 32
+ width += 32
+ }
+
+
+ return {
+ x,
+ y,
+ width,
+ height,
+ cx: x + width / 2,
+ cy: y + height / 2,
+ rotation: this.getRotation(x, y, width, height, roofY)
+ }
+ }
+
+ getRoofAt(x, z) {
+ let y = 255
+ while (y > 0 && World.getBlockStateAt(new BlockPos(x, y, z)).getBlockId() === 0) y--
+
+ return y
+ }
+
+ getTopBlockAt(x, z, y) {
+ if (!y) y = this.getHeightAt(x, z)
+
+ return World.getBlockStateAt(new BlockPos(x, y, z)).getMetadata()
+ }
+ getTopBlockAt2(x, z, y) {
+ if (!y) y = this.getHeightAt(x, z)
+
+ return World.getBlockStateAt(new BlockPos(x, y, z)).getBlockId()
+ }
+ getImageForPlayer(uuid) {
+ let img = renderLibs.getImage("https://crafatar.com/avatars/" + uuid.replace(/-/g, "") + "?size=8&overlay")
+ if (!img) return this.defaultPlayerImage
+
+ return img
+ }
+ onDisable() {
+ }
+}
+
+module.exports = {
+ class: new DungeonMap()
+} \ No newline at end of file
diff --git a/features/dungeonMap2/metadata.json b/features/dungeonMap2/metadata.json
new file mode 100644
index 0000000..a32de89
--- /dev/null
+++ b/features/dungeonMap2/metadata.json
@@ -0,0 +1,8 @@
+{
+ "name": "Dungeon Map 2",
+ "description": "WIP",
+ "isHidden": false,
+ "isTogglable": true,
+ "defaultEnabled": false,
+ "sortA": 1
+} \ No newline at end of file
diff --git a/features/dungeonRoutes/index.js b/features/dungeonRoutes/index.js
index 3eb50c3..e84bd2b 100644
--- a/features/dungeonRoutes/index.js
+++ b/features/dungeonRoutes/index.js
@@ -112,7 +112,7 @@ class DungeonRoutes extends Feature {
this.idMap = new Map()
this.routesIndexMap = new Map()
- this.fullRoomData = JSON.parse(FileLib.read("SoopyV2", "features/dungeonRoutes/temproomdata.json"))
+ this.fullRoomData = JSON.parse(FileLib.read("SoopyV2", "data/roomdata.json"))
this.fullRoutesData = JSON.parse(FileLib.read("SoopyV2", "features/dungeonRoutes/routesData.json"))
this.fullRoomData.forEach((d, i) => {
d.id.forEach(id => {
diff --git a/features/dungeonRoutes/temproomdata.json b/features/dungeonRoutes/temproomdata.json
deleted file mode 100644
index 4f9661d..0000000
--- a/features/dungeonRoutes/temproomdata.json
+++ /dev/null
@@ -1,2817 +0,0 @@
-[
- {
- "id": [
- "282,66",
- "102,66"
- ],
- "name": "Spawn",
- "type": "spawn",
- "shape": "1x1",
- "doors": "D",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 0
- },
- "soul": false,
- "index": 0
- },
- {
- "name": "Mithril Cave",
- "type": "mobs",
- "shape": "2x2",
- "secrets": 10,
- "crypts": 11,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 3,
- "chest": 7
- },
- "soul": false,
- "id": [
- "710,-592"
- ],
- "index": 1
- },
- {
- "name": "Doors",
- "type": "mobs",
- "shape": "1x2",
- "secrets": 5,
- "crypts": 7,
- "revive_stones": 1,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 4
- },
- "soul": false,
- "id": [
- "642,-384"
- ],
- "index": 2
- },
- {
- "name": "Locked Away",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 1,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "246,-132"
- ],
- "index": 3
- },
- {
- "name": "Beams",
- "type": "mobs",
- "shape": "1x1",
- "doors": "T",
- "secrets": 2,
- "crypts": 2,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 1
- },
- "soul": false,
- "id": [
- "750,-240"
- ],
- "index": 4
- },
- {
- "name": "Hall",
- "type": "mobs",
- "shape": "1x1",
- "doors": " ",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 0
- },
- "soul": false,
- "id": [
- "30,-204"
- ],
- "index": 5
- },
- {
- "name": "Banners",
- "type": "mobs",
- "shape": "1x1",
- "doors": "T",
- "secrets": 1,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "30,-276"
- ],
- "index": 6
- },
- {
- "name": "Andesite",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 2,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 0
- },
- "soul": false,
- "id": [
- "30,-132"
- ],
- "index": 7
- },
- {
- "name": "Painting",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 2,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 0
- },
- "soul": false,
- "id": [
- "30,-96"
- ],
- "index": 8
- },
- {
- "name": "Multicolored",
- "type": "mobs",
- "shape": "1x1",
- "doors": "X",
- "secrets": 1,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "66,-348"
- ],
- "index": 9
- },
- {
- "name": "Black Flag",
- "type": "mobs",
- "shape": "1x1",
- "doors": "X",
- "secrets": 3,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 2
- },
- "soul": false,
- "id": [
- "534,-312"
- ],
- "index": 10
- },
- {
- "name": "Overgrown Chains",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 2,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 1
- },
- "soul": false,
- "id": [
- "642,-168"
- ],
- "index": 11
- },
- {
- "name": "Chains",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 2,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 2
- },
- "soul": false,
- "id": [
- "498,-132"
- ],
- "index": 12
- },
- {
- "name": "Golden Oasis",
- "type": "mobs",
- "shape": "1x1",
- "doors": "X",
- "secrets": 1,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 1,
- "bat": 0,
- "item": 0,
- "chest": 2
- },
- "soul": false,
- "id": [
- "174,-312"
- ],
- "index": 13
- },
- {
- "name": "Redstone Warrior",
- "type": "mobs",
- "shape": "1x2",
- "secrets": 3,
- "crypts": 4,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 2
- },
- "soul": false,
- "id": [
- "1118,-384"
- ],
- "index": 14
- },
- {
- "name": "Silvers Sword",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 1,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "30,-168"
- ],
- "index": 15
- },
- {
- "name": "Pedestal",
- "type": "mobs",
- "shape": "1x2",
- "secrets": 5,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": true,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 3
- },
- "soul": false,
- "id": [
- "30,-384"
- ],
- "index": 16
- },
- {
- "name": "Temple",
- "type": "mobs",
- "shape": "1x1",
- "doors": "T",
- "secrets": 3,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 1,
- "chest": 1
- },
- "soul": false,
- "id": [
- "678,-240"
- ],
- "index": 17
- },
- {
- "name": "Big Red Flag",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 2,
- "crypts": 1,
- "revive_stones": 1,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 2,
- "chest": 0
- },
- "soul": false,
- "id": [
- "102,-96"
- ],
- "index": 18
- },
- {
- "name": "Mural",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "crypts": 0,
- "secrets": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "462,-132"
- ],
- "index": 19
- },
- {
- "name": "Perch",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 2,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 1
- },
- "soul": false,
- "id": [
- "462,-96"
- ],
- "index": 20
- },
- {
- "name": "End",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 2,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "678,-168"
- ],
- "index": 21
- },
- {
- "name": "Cage",
- "type": "mobs",
- "shape": "1x1",
- "doors": "T",
- "secrets": 1,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "498,-276"
- ],
- "index": 22
- },
- {
- "name": "Sloth",
- "type": "mobs",
- "shape": "1x1",
- "doors": "T",
- "secrets": 1,
- "crypts": 1,
- "revive_stones": 1,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 0
- },
- "soul": false,
- "id": [
- "66,-276"
- ],
- "index": 23
- },
- {
- "name": "Steps",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 1,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 0
- },
- "soul": false,
- "id": [
- "138,-204"
- ],
- "index": 24
- },
- {
- "name": "Granite",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 2,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 0
- },
- "soul": false,
- "id": [
- "66,-168"
- ],
- "index": 25
- },
- {
- "name": "Crypt",
- "type": "mobs",
- "shape": "1x2",
- "secrets": 5,
- "crypts": 2,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 4
- },
- "soul": true,
- "id": [
- "438,-384"
- ],
- "index": 26
- },
- {
- "name": "Dueces",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 3,
- "crypts": 6,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 1,
- "chest": 1
- },
- "soul": false,
- "id": [
- "138,-168"
- ],
- "index": 27
- },
- {
- "name": "Red Green",
- "type": "mobs",
- "shape": "1x1",
- "doors": "T",
- "secrets": 3,
- "crypts": 2,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 2,
- "chest": 1
- },
- "soul": false,
- "id": [
- "570,-240"
- ],
- "index": 28
- },
- {
- "name": "Long Hall",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 3,
- "crypts": 3,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 3
- },
- "soul": false,
- "id": [
- "534,-96"
- ],
- "index": 29
- },
- {
- "name": "Mirror",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 1,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 1,
- "spiders": true,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "174,-168"
- ],
- "index": 30
- },
- {
- "name": "Quad Lava",
- "type": "mobs",
- "shape": "1x1",
- "doors": "X",
- "secrets": 2,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 2
- },
- "soul": false,
- "id": [
- "30,-348"
- ],
- "index": 31
- },
- {
- "name": "Waterfall",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 2,
- "crypts": 5,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 0
- },
- "soul": false,
- "id": [
- "210,-96"
- ],
- "index": 32
- },
- {
- "name": "Basement",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 1,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 0
- },
- "soul": false,
- "id": [
- "66,-96"
- ],
- "index": 33
- },
- {
- "name": "Dip",
- "type": "mobs",
- "shape": "1x1",
- "doors": "T",
- "secrets": 2,
- "crypts": 3,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 2
- },
- "soul": false,
- "id": [
- "498,-240"
- ],
- "index": 34
- },
- {
- "name": "Water",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 2,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "498,-204"
- ],
- "index": 35
- },
- {
- "name": "Dome",
- "type": "mobs",
- "shape": "1x1",
- "doors": "T",
- "secrets": 2,
- "crypts": 2,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "642,-240"
- ],
- "index": 36
- },
- {
- "name": "Scaffolding",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 2,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 1
- },
- "soul": false,
- "id": [
- "210,-132"
- ],
- "index": 37
- },
- {
- "name": "Small Stairs",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 2,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 1
- },
- "soul": false,
- "id": [
- "606,-168"
- ],
- "index": 38
- },
- {
- "name": "Tomioka",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 0
- },
- "soul": true,
- "id": [
- "138,-132"
- ],
- "index": 39
- },
- {
- "name": "Mushroom",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 1,
- "crypts": 0,
- "revive_stones": "100k per",
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "174,-132"
- ],
- "index": 40
- },
- {
- "name": "Slabs",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 2,
- "crypts": 2,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 2
- },
- "soul": false,
- "id": [
- "570,-168"
- ],
- "index": 41
- },
- {
- "name": "Duncan",
- "type": "mobs",
- "shape": "1x1",
- "doors": "T",
- "secrets": 1,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 0
- },
- "soul": false,
- "id": [
- "30,-240"
- ],
- "index": 42
- },
- {
- "name": "Logs",
- "type": "mobs",
- "shape": "1x1",
- "doors": "X",
- "secrets": 4,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 4
- },
- "soul": false,
- "id": [
- "102,-312"
- ],
- "index": 43
- },
- {
- "name": "Cages",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 2,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 1
- },
- "soul": false,
- "id": [
- "750,-168"
- ],
- "index": 44
- },
- {
- "name": "Admin",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 0,
- "crypts": 34,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 0
- },
- "soul": true,
- "id": [
- "102,-168"
- ],
- "index": 45
- },
- {
- "name": "Skull",
- "type": "mobs",
- "shape": "1x2",
- "secrets": 2,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 2
- },
- "soul": false,
- "id": [
- "98,-384"
- ],
- "index": 46
- },
- {
- "name": "Balcony",
- "type": "mobs",
- "shape": "1x2",
- "secrets": 4,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 1,
- "chest": 2
- },
- "soul": false,
- "id": [
- "710,-384"
- ],
- "index": 47
- },
- {
- "name": "Knight",
- "type": "mobs",
- "shape": "1x1",
- "doors": "X",
- "secrets": 3,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 2
- },
- "soul": false,
- "id": [
- "66,-312"
- ],
- "index": 48
- },
- {
- "name": "Sarcophagus",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 3,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "462,-204"
- ],
- "index": 49
- },
- {
- "name": "Drop",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 2,
- "crypts": 6,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 2
- },
- "soul": false,
- "id": [
- "462,-168"
- ],
- "index": 50
- },
- {
- "name": "Raccoon",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 4,
- "crypts": 2,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 4
- },
- "soul": true,
- "id": [
- "174,-96"
- ],
- "index": 51
- },
- {
- "name": "Double Diamond",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 3,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 1
- },
- "soul": false,
- "id": [
- "642,-96"
- ],
- "index": 52
- },
- {
- "name": "Blue Skulls",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 1,
- "crypts": 4,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 0
- },
- "soul": false,
- "id": [
- "102,-132"
- ],
- "index": 53
- },
- {
- "name": "Leaves",
- "type": "mobs",
- "shape": "1x1",
- "doors": "X",
- "secrets": 1,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": true,
- "id": [
- "66,-240"
- ],
- "index": 54
- },
- {
- "name": "Withermancers",
- "type": "mobs",
- "shape": "L",
- "secrets": 4,
- "crypts": 6,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 3
- },
- "soul": false,
- "id": [
- "710,-524"
- ],
- "index": 55
- },
- {
- "name": "Redstone Key",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 3,
- "crypts": 4,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 2
- },
- "soul": false,
- "id": [
- "534,-168"
- ],
- "index": 56
- },
- {
- "name": "Prison Cell",
- "type": "mobs",
- "shape": "1x1",
- "doors": "L",
- "secrets": 1,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "66,-132"
- ],
- "index": 57
- },
- {
- "name": "Cell",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 1,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 2,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 0
- },
- "soul": false,
- "id": [
- "66,-204"
- ],
- "index": 58
- },
- {
- "name": "Arrow Trap",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 1,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "534,-204"
- ],
- "index": 59
- },
- {
- "name": "Bridges",
- "type": "mobs",
- "shape": "1x2",
- "secrets": 6,
- "crypts": 6,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 2,
- "redstone_key": 0,
- "bat": 1,
- "item": 1,
- "chest": 2
- },
- "soul": false,
- "id": [
- "1050,-384"
- ],
- "index": 60
- },
- {
- "name": "Cobble Wall Pillar",
- "type": "mobs",
- "shape": "1x1",
- "doors": "X",
- "secrets": 2,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 2
- },
- "soul": false,
- "id": [
- "102,-348"
- ],
- "index": 61
- },
- {
- "name": "Spikes",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 3,
- "crypts": 2,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "498,-168"
- ],
- "index": 62
- },
- {
- "name": "Gold",
- "type": "mobs",
- "shape": "1x2",
- "secrets": 1,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 3,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 0
- },
- "soul": false,
- "id": [
- "166,-384"
- ],
- "index": 63
- },
- {
- "name": "Chambers",
- "type": "mobs",
- "shape": "L",
- "secrets": 5,
- "crypts": 6,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 4
- },
- "soul": false,
- "id": [
- "506,-524"
- ],
- "index": 64
- },
- {
- "name": "Lava Ravine",
- "type": "mobs",
- "shape": "L",
- "secrets": 6,
- "crypts": 4,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 1,
- "chest": 4
- },
- "soul": false,
- "id": [
- "642,-524"
- ],
- "index": 65
- },
- {
- "name": "Wizard",
- "type": "mobs",
- "shape": "1x3",
- "secrets": 4,
- "crypts": 8,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 1,
- "chest": 2
- },
- "soul": false,
- "id": [
- "530,-420"
- ],
- "index": 66
- },
- {
- "name": "Overgrown",
- "type": "mobs",
- "shape": "1x1",
- "doors": "T",
- "secrets": 3,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 1
- },
- "soul": false,
- "id": [
- "714,-240"
- ],
- "index": 67
- },
- {
- "name": "Jumping Skulls",
- "type": "mobs",
- "shape": "1x1",
- "doors": "I",
- "secrets": 1,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "102,-204"
- ],
- "index": 68
- },
- {
- "name": "Lots of Floors",
- "type": "mobs",
- "shape": "1x1",
- "doors": "T",
- "secrets": 3,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 3
- },
- "soul": false,
- "id": [
- "102,-240"
- ],
- "index": 69
- },
- {
- "name": "Purple Flags",
- "type": "mobs",
- "shape": "1x2",
- "secrets": 5,
- "crypts": 7,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 3
- },
- "soul": false,
- "id": [
- "778,-384"
- ],
- "index": 70
- },
- {
- "name": "Archway",
- "type": "mobs",
- "shape": "1x2",
- "secrets": 3,
- "crypts": 4,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 2,
- "chest": 1
- },
- "soul": false,
- "id": [
- "574,-384"
- ],
- "index": 71
- },
- {
- "name": "Mage",
- "type": "mobs",
- "shape": "1x2",
- "secrets": 4,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 2
- },
- "soul": false,
- "id": [
- "506,-384"
- ],
- "index": 72
- },
- {
- "name": "Grass Ruin",
- "type": "mobs",
- "shape": "1x2",
- "secrets": 3,
- "crypts": 4,
- "revive_stones": 1,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 2
- },
- "soul": false,
- "id": [
- "1322,-384"
- ],
- "index": 73
- },
- {
- "name": "Grand Library",
- "type": "mobs",
- "shape": "1x2",
- "secrets": 4,
- "crypts": 2,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 2
- },
- "soul": false,
- "id": [
- "1526,-384"
- ],
- "index": 74
- },
- {
- "name": "Pit",
- "type": "mobs",
- "shape": "1x4",
- "secrets": 5,
- "crypts": 4,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 1,
- "chest": 3
- },
- "soul": false,
- "id": [
- "690,-456"
- ],
- "index": 75
- },
- {
- "name": "Atlas",
- "type": "mobs",
- "shape": "2x2",
- "secrets": 6,
- "crypts": 5,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 1,
- "item": 1,
- "chest": 3
- },
- "soul": false,
- "id": [
- "778,-592"
- ],
- "index": 76
- },
- {
- "name": "Layers",
- "type": "mobs",
- "shape": "L",
- "secrets": 8,
- "crypts": 3,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 4,
- "chest": 4
- },
- "soul": false,
- "id": [
- "1050,-524"
- ],
- "index": 77
- },
- {
- "name": "Cavern",
- "type": "mobs",
- "shape": "1x4",
- "secrets": 8,
- "crypts": 3,
- "revive_stones": 1,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 2,
- "item": 1,
- "chest": 5
- },
- "soul": false,
- "id": [
- "822,-456"
- ],
- "index": 78
- },
- {
- "name": "Pressure Plate",
- "type": "mobs",
- "shape": "1x2",
- "secrets": 6,
- "crypts": 6,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 2,
- "chest": 4
- },
- "soul": false,
- "id": [
- "1186,-384"
- ],
- "index": 79
- },
- {
- "name": "Super Tall",
- "type": "miniboss",
- "shape": "2x2",
- "secrets": 6,
- "crypts": 6,
- "revive_stones": 2,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 2,
- "item": 1,
- "chest": 3
- },
- "soul": true,
- "id": [
- "642,-592"
- ],
- "index": 80
- },
- {
- "name": "Gravel",
- "type": "miniboss",
- "shape": "1x3",
- "secrets": 6,
- "crypts": 2,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 2,
- "redstone_key": 0,
- "bat": 1,
- "item": 2,
- "chest": 1
- },
- "soul": false,
- "id": [
- "30,-420"
- ],
- "index": 81
- },
- {
- "name": "Cathedral",
- "type": "miniboss",
- "shape": "2x2",
- "secrets": 8,
- "crypts": 5,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 2,
- "item": 3,
- "chest": 3
- },
- "soul": false,
- "id": [
- "506,-592"
- ],
- "index": 82
- },
- {
- "name": "Red Blue",
- "type": "miniboss",
- "shape": "1x3",
- "secrets": 4,
- "crypts": 1,
- "revive_stones": 1,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 2
- },
- "soul": false,
- "id": [
- "130,-420"
- ],
- "index": 83
- },
- {
- "name": "Spider",
- "type": "miniboss",
- "shape": "L",
- "secrets": 9,
- "crypts": 3,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 2,
- "chest": 6
- },
- "soul": false,
- "id": [
- "234,-524"
- ],
- "index": 84
- },
- {
- "name": "Deathmite",
- "type": "miniboss",
- "shape": "1x3",
- "secrets": 6,
- "crypts": 4,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 1,
- "chest": 4
- },
- "soul": false,
- "id": [
- "730,-420"
- ],
- "index": 85
- },
- {
- "name": "Museum",
- "type": "miniboss",
- "shape": "2x2",
- "secrets": 5,
- "crypts": 4,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 4
- },
- "soul": false,
- "id": [
- "846,-592"
- ],
- "index": 86
- },
- {
- "name": "Market",
- "type": "miniboss",
- "shape": "L",
- "secrets": 5,
- "crypts": 4,
- "revive_stones": 1,
- "journals": 0,
- "spiders": true,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 3
- },
- "soul": false,
- "id": [
- "574,-524"
- ],
- "index": 87
- },
- {
- "name": "Melon",
- "type": "miniboss",
- "shape": "L",
- "secrets": 7,
- "crypts": 4,
- "revive_stones": 0,
- "journals": 0,
- "spiders": true,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 6
- },
- "soul": false,
- "id": [
- "166,-524"
- ],
- "index": 88
- },
- {
- "name": "Mossy",
- "type": "miniboss",
- "shape": "1x4",
- "secrets": 4,
- "crypts": 2,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 3
- },
- "soul": true,
- "id": [
- "30,-456"
- ],
- "index": 89
- },
- {
- "name": "Flags",
- "type": "miniboss",
- "shape": "2x2",
- "secrets": 7,
- "crypts": 8,
- "revive_stones": 1,
- "journals": 0,
- "spiders": true,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 1,
- "chest": 5
- },
- "soul": false,
- "id": [
- "574,-592"
- ],
- "index": 90
- },
- {
- "name": "Well",
- "type": "miniboss",
- "shape": "L",
- "secrets": 7,
- "crypts": 5,
- "revive_stones": 0,
- "journals": 0,
- "spiders": true,
- "secret_details": {
- "wither": 2,
- "redstone_key": 0,
- "bat": 0,
- "item": 2,
- "chest": 3
- },
- "soul": false,
- "id": [
- "438,-524"
- ],
- "index": 91
- },
- {
- "id": [
- "162,-456"
- ],
- "name": "Hallway",
- "type": "miniboss",
- "shape": "1x4",
- "secrets": 3,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 3
- },
- "soul": false,
- "index": 92
- },
- {
- "id": [
- "230,-420"
- ],
- "name": "Diagonal",
- "type": "miniboss",
- "shape": "1x3",
- "secrets": 4,
- "crypts": 3,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 3
- },
- "soul": true,
- "index": 93
- },
- {
- "name": "Catwalk",
- "type": "miniboss",
- "shape": "1x3",
- "secrets": 6,
- "crypts": 5,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 4
- },
- "soul": false,
- "id": [
- "630,-420"
- ],
- "index": 94
- },
- {
- "name": "Dino Dig Site",
- "type": "miniboss",
- "shape": "L",
- "secrets": 4,
- "crypts": 4,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 1,
- "chest": 2
- },
- "soul": false,
- "id": [
- "778,-524"
- ],
- "index": 95
- },
- {
- "name": "Stairs",
- "type": "miniboss",
- "shape": "2x2",
- "secrets": 4,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 3
- },
- "soul": true,
- "id": [
- "234,-592"
- ],
- "index": 96
- },
- {
- "id": [
- "558,-456"
- ],
- "name": "Quartz Knight",
- "type": "miniboss",
- "shape": "1x4",
- "secrets": 7,
- "crypts": 9,
- "revive_stones": 1,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 2,
- "chest": 4
- },
- "soul": false,
- "index": 97
- },
- {
- "name": "Buttons",
- "type": "miniboss",
- "shape": "2x2",
- "secrets": 5,
- "crypts": 21,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 5
- },
- "soul": false,
- "id": [
- "438,-592"
- ],
- "index": 98
- },
- {
- "name": "Rail Track",
- "type": "miniboss",
- "shape": "2x2",
- "secrets": 9,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 3,
- "redstone_key": 0,
- "bat": 1,
- "item": 1,
- "chest": 4
- },
- "soul": false,
- "id": [
- "166,-592"
- ],
- "index": 99
- },
- {
- "name": "Sanctuary",
- "type": "rare",
- "shape": "1x1",
- "doors": "D",
- "secrets": 1,
- "crypts": 10,
- "revive_stones": 0,
- "journals": 999,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "354,-60"
- ],
- "index": 100
- },
- {
- "name": "Pillars",
- "type": "rare",
- "shape": "1x1",
- "doors": "D",
- "secrets": 1,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "282,-60"
- ],
- "index": 101
- },
- {
- "name": "Sand Dragon",
- "type": "rare",
- "shape": "1x1",
- "doors": "D",
- "secrets": 1,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "102,-60"
- ],
- "index": 102
- },
- {
- "name": "Tombstone",
- "type": "rare",
- "shape": "1x1",
- "doors": "D",
- "secrets": 2,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 1,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "66,-60"
- ],
- "index": 103
- },
- {
- "id": [
- "30,-60"
- ],
- "name": "Stone Window",
- "type": "rare",
- "shape": "1x1",
- "doors": "D",
- "secrets": 2,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 2,
- "item": 0,
- "chest": 0
- },
- "soul": true,
- "index": 104
- },
- {
- "id": [
- "318,-60"
- ],
- "name": "Lava Pool",
- "type": "rare",
- "shape": "1x1",
- "doors": "D",
- "secrets": 3,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 1,
- "chest": 2
- },
- "soul": false,
- "index": 105
- },
- {
- "name": "Lava Skull",
- "type": "rare",
- "shape": "1x1",
- "doors": "D",
- "secrets": 3,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 2,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 1,
- "chest": 1
- },
- "soul": false,
- "id": [
- "174,-60"
- ],
- "index": 106
- },
- {
- "name": "Mini Rail Track",
- "type": "rare",
- "shape": "1x1",
- "doors": "D",
- "secrets": 3,
- "crypts": 3,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 2,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "210,-60"
- ],
- "index": 107
- },
- {
- "name": "Carpets",
- "type": "rare",
- "shape": "1x1",
- "doors": "D",
- "secrets": 1,
- "crypts": 4,
- "revive_stones": 0,
- "journals": 0,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "570,-312"
- ],
- "index": 108
- },
- {
- "name": "Trinity",
- "type": "rare",
- "shape": "1x1",
- "doors": "D",
- "secrets": 4,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 2,
- "item": 1,
- "chest": 1
- },
- "soul": false,
- "id": [
- "246,-60"
- ],
- "index": 109
- },
- {
- "name": "Hanging Vines",
- "type": "rare",
- "shape": "1x1",
- "doors": "D",
- "secrets": 1,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 1,
- "spiders": false,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "138,-60"
- ],
- "index": 110
- },
- {
- "name": "Miniboss",
- "type": "gold",
- "shape": "1x1",
- "doors": "D",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "soul": false,
- "id": [
- "174,66",
- "246,102",
- "210,66"
- ],
- "index": 111
- },
- {
- "name": "King Midas",
- "type": "gold",
- "shape": "1x1",
- "doors": "D",
- "secrets": 0,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "soul": false,
- "id": [
- "210,102"
- ],
- "index": 112
- },
- {
- "name": "Shadow Assassin",
- "type": "gold",
- "shape": "1x1",
- "doors": "D",
- "secrets": 0,
- "crypts": 2,
- "revive_stones": 0,
- "journals": 0,
- "soul": false,
- "id": [
- "318,66"
- ],
- "index": 113
- },
- {
- "name": "Three Weirdos",
- "type": "puzzle",
- "shape": "1x1",
- "doors": "D",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "soul": false,
- "id": [
- "-60,-96"
- ],
- "index": 114
- },
- {
- "name": "Water Board",
- "type": "puzzle",
- "shape": "1x1",
- "doors": "D",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "soul": false,
- "id": [
- "-60,-60"
- ],
- "index": 115
- },
- {
- "name": "Ice Fill",
- "type": "puzzle",
- "shape": "1x1",
- "doors": "D",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "soul": false,
- "id": [
- "-132,-492"
- ],
- "index": 116
- },
- {
- "name": "Creeper Beams",
- "type": "puzzle",
- "shape": "1x1",
- "doors": "D",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "soul": false,
- "id": [
- "-60,-528"
- ],
- "index": 117
- },
- {
- "name": "Teleport Maze",
- "type": "puzzle",
- "shape": "1x1",
- "doors": "D",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "soul": false,
- "id": [
- "-60,-456"
- ],
- "index": 118
- },
- {
- "name": "Higher or Lower",
- "type": "puzzle",
- "shape": "1x1",
- "doors": "D",
- "secrets": 1,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "id": [
- "-60,-204",
- "-96,-204"
- ],
- "index": 119
- },
- {
- "name": "Quiz",
- "type": "puzzle",
- "shape": "1x1",
- "doors": "D",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "soul": false,
- "id": [
- "-60,-600"
- ],
- "index": 120
- },
- {
- "id": [
- "-96,-168"
- ],
- "name": "Tic Tac Toe",
- "type": "puzzle",
- "shape": "1x1",
- "doors": "D",
- "secrets": 1,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 0,
- "item": 0,
- "chest": 1
- },
- "soul": false,
- "index": 121
- },
- {
- "name": "Bomb Defuse",
- "type": "puzzle",
- "shape": "1x1",
- "doors": "D",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "soul": false,
- "id": [
- "-60,-636"
- ],
- "index": 122
- },
- {
- "name": "Boulder",
- "type": "puzzle",
- "shape": "1x1",
- "doors": "D",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "soul": false,
- "id": [
- "-60,-564"
- ],
- "index": 123
- },
- {
- "name": "Ice Path",
- "type": "puzzle",
- "shape": "1x1",
- "doors": "D",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "soul": false,
- "id": [
- "-60,-276"
- ],
- "index": 124
- },
- {
- "name": "New Trap",
- "type": "trap",
- "shape": "1x1",
- "doors": "D",
- "secrets": 3,
- "crypts": 1,
- "revive_stones": 0,
- "journals": 0,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 2
- },
- "soul": false,
- "id": [
- "-384,30",
- "-348,30"
- ],
- "index": 125
- },
- {
- "name": "Old Trap",
- "type": "trap",
- "shape": "1x1",
- "doors": "D",
- "secrets": 4,
- "crypts": 2,
- "revive_stones": 0,
- "journals": 0,
- "secret_details": {
- "wither": 0,
- "redstone_key": 0,
- "bat": 1,
- "item": 0,
- "chest": 3
- },
- "soul": false,
- "id": [
- "-312,30"
- ],
- "index": 126
- },
- {
- "name": "Blood",
- "type": "blood",
- "shape": "1x1",
- "doors": "D",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 0,
- "journals": 0,
- "soul": false,
- "id": [
- "354,66",
- "138,30",
- "138,66"
- ],
- "index": 127
- },
- {
- "name": "Fairy",
- "type": "fairy",
- "shape": "1x1",
- "doors": "V",
- "secrets": 0,
- "crypts": 0,
- "revive_stones": 4,
- "journals": 0,
- "soul": false,
- "id": [
- "462,-312"
- ],
- "index": 128
- }
-] \ No newline at end of file
diff --git a/features/waypoints/index.js b/features/waypoints/index.js
index 17cd831..0760354 100644
--- a/features/waypoints/index.js
+++ b/features/waypoints/index.js
@@ -4,6 +4,7 @@ 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";
@@ -44,12 +45,6 @@ class Waypoints extends Feature {
this.userWaypointsArr = Object.values(this.userWaypoints)
this.updateWaypointsHashes()
this.waypointsChanged = false
- this.lastTp = 0
- this.registerEvent("messageSent", (m) => {
- if (m.toLowerCase().startsWith("/warp")) {
- this.lastTp = Date.now()
- }
- })
this.patcherWaypoints = []
@@ -165,7 +160,8 @@ class Waypoints extends Feature {
minewaypoints_socket.setLocationHandler = (area, loc) => {
this.locations[area || loc[0].area] = loc;
}
-
+ let lastLoc = [0, 0, 0]
+ let lastTp = 0
this.registerEvent("tick", () => {
try {
if (Scoreboard.getLines().length < 2) return;
@@ -179,6 +175,11 @@ class Waypoints extends Feature {
minewaypoints_socket.setServer(server, World.getWorld().func_82737_E())
+ let loc = [Player.getX(), Player.getY(), Player.getZ()]
+ if (calculateDistanceQuick(lastLoc, loc) > 25) {
+ this.lastTp = Date.now()
+ }
+
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, "")