From 431e4fc9d1657a50ebc34b8ac24f9bfaea06417f Mon Sep 17 00:00:00 2001
From: Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com>
Date: Sat, 17 Sep 2022 19:39:05 +0800
Subject: Initial move to babel + change fetch to use async/await
---
features/bestiary/index.js | 250 ----
features/bestiary/metadata.json | 8 -
features/betterGuis/dungeonReadyGui.js | 284 -----
features/betterGuis/index.js | 386 ------
features/betterGuis/metadata.json | 8 -
features/betterGuis/museumGui.js | 1024 ----------------
features/changeLogGUI/index.js | 257 ----
features/changeLogGUI/metadata.json | 8 -
features/cosmetics/cosmetic.js | 29 -
features/cosmetics/cosmetic/dragon/dragonWings.js | 482 --------
features/cosmetics/hiddenRequirement.js | 4 -
features/cosmetics/index.js | 271 ----
features/cosmetics/metadata.json | 8 -
features/dataLoader/index.js | 281 -----
features/dataLoader/metadata.json | 8 -
features/dungeonMap/dungeonBossImages/f1.png | Bin 4681 -> 0 bytes
features/dungeonMap/index.js | 1186 ------------------
features/dungeonMap/map.png | Bin 5648 -> 0 bytes
features/dungeonMap/metadata.json | 8 -
features/dungeonMap2/DungeonMapData.js | 513 --------
features/dungeonMap2/DungeonMapRoom.js | 256 ----
features/dungeonMap2/DungeonRoomStaticData.js | 19 -
features/dungeonMap2/index.js | 312 -----
features/dungeonMap2/metadata.json | 8 -
features/dungeonRoutes/index.js | 481 --------
features/dungeonRoutes/metadata.json | 8 -
features/dungeonRoutes/routesData.json | 1296 --------------------
features/dungeonSolvers/f7data.json | 263 ----
features/dungeonSolvers/index.js | 1272 -------------------
features/dungeonSolvers/metadata.json | 8 -
features/events/index.js | 818 ------------
features/events/metadata.json | 8 -
features/eventsGUI/index.js | 287 -----
features/eventsGUI/metadata.json | 8 -
features/featureBase/index.js | 24 -
features/featureBase/metadata.json | 8 -
features/fpsImproveGui/index.js | 58 -
features/fpsImproveGui/metadata.json | 8 -
features/fragBot/index.js | 84 --
features/fragBot/metadata.json | 8 -
features/friendsGUI/index.js | 363 ------
features/friendsGUI/metadata.json | 8 -
features/globalSettings/firstLoadPage.js | 42 -
features/globalSettings/firstLoadPages.js | 135 --
features/globalSettings/index.js | 1126 -----------------
features/globalSettings/metadata.json | 8 -
features/globalSettings/warps.json | 41 -
features/guild/index.js | 70 --
features/guild/metadata.json | 8 -
features/hud/HudTextElement.js | 143 ---
features/hud/index.js | 812 ------------
features/hud/metadata.json | 8 -
features/lockedFeatures/index.js | 121 --
features/lockedFeatures/metadata.json | 8 -
features/mining/coords.json | 202 ---
features/mining/index.js | 469 -------
features/mining/metadata.json | 8 -
features/nether/index.js | 406 ------
features/nether/metadata.json | 8 -
features/networthGUI/index.js | 243 ----
features/networthGUI/metadata.json | 8 -
features/performance/hiddenRequirement.js | 7 -
features/performance/index.js | 128 --
features/performance/metadata.json | 8 -
features/senitherGui/index.js | 457 -------
features/senitherGui/metadata.json | 8 -
features/settings/helpDataLoader.js | 50 -
features/settings/index.js | 332 -----
features/settings/locationSettingHolder.js | 27 -
features/settings/metadata.json | 8 -
.../settings/settingThings/FakeRequireToggle.js | 27 -
features/settings/settingThings/button.js | 18 -
features/settings/settingThings/dropdownSetting.js | 41 -
features/settings/settingThings/imageLocation.js | 321 -----
features/settings/settingThings/location.js | 340 -----
features/settings/settingThings/settingBase.js | 162 ---
features/settings/settingThings/textSetting.js | 41 -
features/settings/settingThings/toggle.js | 62 -
features/settings/settingsCommunicator.js | 35 -
features/slayers/index.js | 1022 ---------------
features/slayers/metadata.json | 8 -
features/soopyGui/GuiPage.js | 68 -
features/soopyGui/categoryManager.js | 37 -
features/soopyGui/index.js | 215 ----
features/soopyGui/metadata.json | 8 -
features/spamHider/index.js | 352 ------
features/spamHider/metadata.json | 8 -
features/specialMining/index.js | 461 -------
features/specialMining/metadata.json | 8 -
features/statHistoryGui/index.js | 191 ---
features/statHistoryGui/metadata.json | 8 -
features/stat_next_to_name/index.js | 194 ---
features/stat_next_to_name/metadata.json | 8 -
features/streamsGUI/index.js | 182 ---
features/streamsGUI/metadata.json | 8 -
features/suggestionsGui/index.js | 219 ----
features/suggestionsGui/metadata.json | 8 -
features/waypoints/index.js | 323 -----
features/waypoints/metadata.json | 8 -
features/waypoints/minewaypoints_socket.js | 49 -
features/waypoints/pathfind.js | 96 --
101 files changed, 20039 deletions(-)
delete mode 100644 features/bestiary/index.js
delete mode 100644 features/bestiary/metadata.json
delete mode 100644 features/betterGuis/dungeonReadyGui.js
delete mode 100644 features/betterGuis/index.js
delete mode 100644 features/betterGuis/metadata.json
delete mode 100644 features/betterGuis/museumGui.js
delete mode 100644 features/changeLogGUI/index.js
delete mode 100644 features/changeLogGUI/metadata.json
delete mode 100644 features/cosmetics/cosmetic.js
delete mode 100644 features/cosmetics/cosmetic/dragon/dragonWings.js
delete mode 100644 features/cosmetics/hiddenRequirement.js
delete mode 100644 features/cosmetics/index.js
delete mode 100644 features/cosmetics/metadata.json
delete mode 100644 features/dataLoader/index.js
delete mode 100644 features/dataLoader/metadata.json
delete mode 100644 features/dungeonMap/dungeonBossImages/f1.png
delete mode 100644 features/dungeonMap/index.js
delete mode 100644 features/dungeonMap/map.png
delete mode 100644 features/dungeonMap/metadata.json
delete mode 100644 features/dungeonMap2/DungeonMapData.js
delete mode 100644 features/dungeonMap2/DungeonMapRoom.js
delete mode 100644 features/dungeonMap2/DungeonRoomStaticData.js
delete mode 100644 features/dungeonMap2/index.js
delete mode 100644 features/dungeonMap2/metadata.json
delete mode 100644 features/dungeonRoutes/index.js
delete mode 100644 features/dungeonRoutes/metadata.json
delete mode 100644 features/dungeonRoutes/routesData.json
delete mode 100644 features/dungeonSolvers/f7data.json
delete mode 100644 features/dungeonSolvers/index.js
delete mode 100644 features/dungeonSolvers/metadata.json
delete mode 100644 features/events/index.js
delete mode 100644 features/events/metadata.json
delete mode 100644 features/eventsGUI/index.js
delete mode 100644 features/eventsGUI/metadata.json
delete mode 100644 features/featureBase/index.js
delete mode 100644 features/featureBase/metadata.json
delete mode 100644 features/fpsImproveGui/index.js
delete mode 100644 features/fpsImproveGui/metadata.json
delete mode 100644 features/fragBot/index.js
delete mode 100644 features/fragBot/metadata.json
delete mode 100644 features/friendsGUI/index.js
delete mode 100644 features/friendsGUI/metadata.json
delete mode 100644 features/globalSettings/firstLoadPage.js
delete mode 100644 features/globalSettings/firstLoadPages.js
delete mode 100644 features/globalSettings/index.js
delete mode 100644 features/globalSettings/metadata.json
delete mode 100644 features/globalSettings/warps.json
delete mode 100644 features/guild/index.js
delete mode 100644 features/guild/metadata.json
delete mode 100644 features/hud/HudTextElement.js
delete mode 100644 features/hud/index.js
delete mode 100644 features/hud/metadata.json
delete mode 100644 features/lockedFeatures/index.js
delete mode 100644 features/lockedFeatures/metadata.json
delete mode 100644 features/mining/coords.json
delete mode 100644 features/mining/index.js
delete mode 100644 features/mining/metadata.json
delete mode 100644 features/nether/index.js
delete mode 100644 features/nether/metadata.json
delete mode 100644 features/networthGUI/index.js
delete mode 100644 features/networthGUI/metadata.json
delete mode 100644 features/performance/hiddenRequirement.js
delete mode 100644 features/performance/index.js
delete mode 100644 features/performance/metadata.json
delete mode 100644 features/senitherGui/index.js
delete mode 100644 features/senitherGui/metadata.json
delete mode 100644 features/settings/helpDataLoader.js
delete mode 100644 features/settings/index.js
delete mode 100644 features/settings/locationSettingHolder.js
delete mode 100644 features/settings/metadata.json
delete mode 100644 features/settings/settingThings/FakeRequireToggle.js
delete mode 100644 features/settings/settingThings/button.js
delete mode 100644 features/settings/settingThings/dropdownSetting.js
delete mode 100644 features/settings/settingThings/imageLocation.js
delete mode 100644 features/settings/settingThings/location.js
delete mode 100644 features/settings/settingThings/settingBase.js
delete mode 100644 features/settings/settingThings/textSetting.js
delete mode 100644 features/settings/settingThings/toggle.js
delete mode 100644 features/settings/settingsCommunicator.js
delete mode 100644 features/slayers/index.js
delete mode 100644 features/slayers/metadata.json
delete mode 100644 features/soopyGui/GuiPage.js
delete mode 100644 features/soopyGui/categoryManager.js
delete mode 100644 features/soopyGui/index.js
delete mode 100644 features/soopyGui/metadata.json
delete mode 100644 features/spamHider/index.js
delete mode 100644 features/spamHider/metadata.json
delete mode 100644 features/specialMining/index.js
delete mode 100644 features/specialMining/metadata.json
delete mode 100644 features/statHistoryGui/index.js
delete mode 100644 features/statHistoryGui/metadata.json
delete mode 100644 features/stat_next_to_name/index.js
delete mode 100644 features/stat_next_to_name/metadata.json
delete mode 100644 features/streamsGUI/index.js
delete mode 100644 features/streamsGUI/metadata.json
delete mode 100644 features/suggestionsGui/index.js
delete mode 100644 features/suggestionsGui/metadata.json
delete mode 100644 features/waypoints/index.js
delete mode 100644 features/waypoints/metadata.json
delete mode 100644 features/waypoints/minewaypoints_socket.js
delete mode 100644 features/waypoints/pathfind.js
(limited to 'features')
diff --git a/features/bestiary/index.js b/features/bestiary/index.js
deleted file mode 100644
index d21fc2a..0000000
--- a/features/bestiary/index.js
+++ /dev/null
@@ -1,250 +0,0 @@
-///
-///
-import Feature from "../../featureClass/class";
-import { numberWithCommas } from "../../utils/numberUtils";
-import HudTextElement from "../hud/HudTextElement";
-import DropdownSetting from "../settings/settingThings/dropdownSetting";
-import LocationSetting from "../settings/settingThings/location";
-import SettingBase from "../settings/settingThings/settingBase";
-import ToggleSetting from "../settings/settingThings/toggle";
-
-let dontUseApi = new Set()
-dontUseApi.add("arachne")
-dontUseApi.add("barbarian_duke_x")
-dontUseApi.add("bladesoul")
-dontUseApi.add("mage_outlaw")
-dontUseApi.add("ashfang")
-dontUseApi.add("magma_cube_boss")
-dontUseApi.add("headless_horseman")
-dontUseApi.add("dragon")
-
-
-class Bestiary extends Feature {
- constructor() {
- super()
- }
-
- onEnable() {
- this.bestiaryData = JSON.parse(FileLib.read("soopyAddonsData", "bestiaryData.json") || "{}")
- this.bestiaryChanged = false
-
- this.bestiaryApiTracking = {}
-
- this.registerStep(true, 5, this.scanInv)
- this.registerStep(false, 5, this.saveData)
-
-
- this.bestiaryStatTypes = {
- "barbarian_duke_x": "Barbarian Duke X"
- }
- Object.keys(this.bestiaryData).forEach(k => {
- if (this.bestiaryData[k].guiName) this.bestiaryStatTypes[k] = this.bestiaryData[k].guiName
- })
-
- new SettingBase("NOTE: u need to open ur bestiary menu", "before this will work", true, "info_bestiary", this)
- this.hudStat = []
- for (let i = 0; i < 10; i++) {
- this.hudStat[i] = {}
- this.hudStat[i].enabled = new ToggleSetting("Bestiary Slot #" + (i + 1), "Allows you to render a custom besiary kills on your hud", false, "bestiary_stat_" + i, this)
- this.hudStat[i].type = new DropdownSetting("Bestiary Slot #" + (i + 1) + " Type", "The bestiary type", "barbarian_duke_x", "bestiary_stat_" + i + "_type", this, this.bestiaryStatTypes)
- this.hudStat[i].location = new LocationSetting("Bestiary Slot #" + (i + 1) + " Location", "Allows you to edit the location of the bestiary stat", "bestiary_stat_" + i + "_location", this, [10, 50 + i * 10, 1, 1]).editTempText("&6Bestiary Stat Stat&7> &f12,345")
- this.hudStat[i].textElement = new HudTextElement().setToggleSetting(this.hudStat[i].enabled).setLocationSetting(this.hudStat[i].location).setText("&6Bestiary Stat&7> &fLoading...")
- this.hudStat[i].onlySb = new ToggleSetting("Bestiary Slot #" + (i + 1) + " Only SB", "Only render this stat when you are in skyblock", true, "bestiary_stat_" + i + "_only_sb", this).requires(this.hudStat[i].enabled)
-
- this.hudStat[i].location.requires(this.hudStat[i].enabled)
- this.hudStat[i].type.requires(this.hudStat[i].enabled)
- if (this.hudStat[i - 1]) {
- this.hudStat[i].enabled.requires(this.hudStat[i - 1].enabled)
- }
- }
-
- this.registerStep(false, 5, this.updateHudElements)
- let lastThing = undefined
- let lastThingTime = 0
- this.registerChat("${chat}", (chat) => {
- let thing
- switch (chat.trim()) {
- case "MAGE OUTLAW DOWN!":
- thing = "mage_outlaw"
- break;
- case "BARBARIAN DUKE X DOWN!":
- thing = "barbarian_duke_x"
- break;
- case "BLADESOUL DOWN!":
- thing = "bladesoul"
- break;
- case "ASHFANG DOWN!":
- thing = "ashfang"
- break;
- // case "MAGMA BOSS DOWN!":
- // thing = "magma_cube_boss"
- // break;
- case "ARACHNE DOWN!":
- lastThing = "arachne"
- lastThingTime = Date.now()
- break;
- case "HORSEMAN DOWN!":
- lastThing = "arachne"
- lastThingTime = Date.now()
- break;
- default:
- break;
- }
- if (chat.includes("DRAGON")) {
- lastThing = "dragon"
- lastThingTime = Date.now()
- }
-
- if (chat.trim().startsWith("Your Damage: ")) {
- let dmg = parseInt(chat.trim().split("Your Damage: ")[1].split(" ")[0])
- if (dmg > 0 && Date.now() - lastThingTime < 1000) {
- thing = lastThing
- lastThing = ""
- lastThingTime = 0
- }
- }
-
- if (thing) {
- this.bestiaryData[thing].guessCount++
- this.bestiaryChanged = true
- }
- })
- this.registerSoopy("apiLoad", this.apiLoad);
-
- if (this.FeatureManager.features["dataLoader"] && this.FeatureManager.features["dataLoader"].class.lastApiData.skyblock_raw) {
- this.apiLoad(this.FeatureManager.features["dataLoader"].class.lastApiData.skyblock_raw, "skyblock", false, true);
- }
- }
-
- getBestiaryCount(id) {
- if (!this.bestiaryData[id]) return "???"
- let count = this.bestiaryData[id].count
-
- if (!dontUseApi.has(id)) {
- let currApiData = this.bestiaryApiTracking[id]
-
- count += currApiData - this.bestiaryData[id].apiCount
- }
-
- count += this.bestiaryData[id].guessCount
-
- return count
- }
-
- updateHudElements() {
- if (!this.FeatureManager.features["dataLoader"]) return
-
- let insb = this.FeatureManager.features["dataLoader"].class.isInSkyblock
-
- this.hudStat.forEach(stat => {
- if (stat.enabled.getValue()) {
- if (!insb && stat.onlySb.getValue()) {
- stat.textElement.setText("")
- return
- }
-
- let type = stat.type.getValue()
-
- stat.textElement.setText(`&6${this.bestiaryData[type]?.guiName}&7> &f${numberWithCommas(this.getBestiaryCount(type))}`)
- } else {
- stat.textElement.setText("")
- }
- })
- }
-
- apiLoad(data, dataType, isSoopyServer, isLatest) {
- if (isSoopyServer || !isLatest) return;
- if (dataType !== "skyblock") return;
-
- let currentProfile = {}
- let currentProfileTime = 0
-
- data.profiles.forEach(p => {
- if (p.members[Player.getUUID().toString().replace(/-/g, "")].last_save > currentProfileTime) {
- currentProfileTime = p.members[Player.getUUID().toString().replace(/-/g, "")].last_save
- currentProfile = p.members[Player.getUUID().toString().replace(/-/g, "")]
- }
- })
-
- Object.keys(currentProfile.stats).forEach(key => {
- if (key.startsWith("kills_")) {
- this.bestiaryApiTracking[key.replace("kills_", "")] = currentProfile.stats[key]
- }
- })
- }
-
- scanInv() {
- if (!Player.getContainer()) return
- if (!Player.getContainer().getName().startsWith("Bestiary ➜ ")) return
- let tempChanged = false
- let seen = new Set()
-
- for (let item of Player.getContainer().getItems()) {
- if (!item) continue
- let name = ChatLib.removeFormatting(item.getName()).split(" ")
- name.pop()
- let apiName = name.join("_").toLowerCase()
- if (seen.has(apiName)) continue
- seen.add(apiName)
-
- if (apiName === "skeletor_prime") continue
-
- if (this.bestiaryApiTracking[apiName] || dontUseApi.has(apiName)) {
-
- let count = 0
-
- for (let l of item.getLore()) {
- l = ChatLib.removeFormatting(l)
-
- if (l.startsWith("Kills: ")) {
- count = parseInt(l.split("Kills: ")[1].replace(/,/g, ""))
- break;
- }
- }
-
- let needsChange = !this.bestiaryData[apiName] || this.bestiaryData[apiName].guiName !== name.join(" ") || this.bestiaryData[apiName].count !== count || this.bestiaryData[apiName].apiCount !== (this.bestiaryApiTracking[apiName] || 0) || this.bestiaryData[apiName].guessCount !== 0
- if (needsChange) {
- this.bestiaryData[apiName] = {
- guiName: name.join(" "),
- count,
- apiCount: this.bestiaryApiTracking[apiName] || 0,
- guessCount: 0
- }
- this.bestiaryChanged = true
-
- tempChanged = true
-
- }
- }
- }
-
- if (tempChanged) {
- this.bestiaryStatTypes = {}
- Object.keys(this.bestiaryData).forEach(k => {
- if (this.bestiaryData[k]?.guiName) this.bestiaryStatTypes[k] = this.bestiaryData[k].guiName
- })
-
- this.hudStat.forEach(s => {
- s.type.dropdownObject.setOptions(this.bestiaryStatTypes)
- })
-
- this.updateHudElements()
- }
- start = Date.now()
- }
-
- saveData() {
- if (this.bestiaryChanged) {
- FileLib.write("soopyAddonsData", "bestiaryData.json", JSON.stringify(this.bestiaryData))
- }
- }
-
- onDisable() {
- this.hudStat.forEach(h => h.textElement.delete())
- this.saveData()
- }
-
-}
-module.exports = {
- class: new Bestiary()
-}
diff --git a/features/bestiary/metadata.json b/features/bestiary/metadata.json
deleted file mode 100644
index 3ff9383..0000000
--- a/features/bestiary/metadata.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "Bestiary",
- "description": "Bestiary trackers",
- "isHidden": false,
- "isTogglable": true,
- "defaultEnabled": true,
- "sortA": 0
-}
\ No newline at end of file
diff --git a/features/betterGuis/dungeonReadyGui.js b/features/betterGuis/dungeonReadyGui.js
deleted file mode 100644
index ad9a5dd..0000000
--- a/features/betterGuis/dungeonReadyGui.js
+++ /dev/null
@@ -1,284 +0,0 @@
-import { SoopyGui, SoopyRenderEvent } from "../../../guimanager"
-import SoopyKeyPressEvent from "../../../guimanager/EventListener/SoopyKeyPressEvent"
-import SoopyMouseClickEvent from "../../../guimanager/EventListener/SoopyMouseClickEvent"
-import BoxWithTextAndDescription from "../../../guimanager/GuiElement/BoxWithTextAndDescription"
-import ButtonWithArrow from "../../../guimanager/GuiElement/ButtonWithArrow"
-import SoopyGuiElement from "../../../guimanager/GuiElement/SoopyGuiElement"
-import SoopyTextElement from "../../../guimanager/GuiElement/SoopyTextElement"
-
-
-const ContainerChest = Java.type("net.minecraft.inventory.ContainerChest");
-
-class DungeonReadyGui {
- constructor() {
- this.checkMenu = false;
-
- this.soopyGui = new SoopyGui();
-
- this.soopyGui.optimisedLocations = true;
-
- this.mainPage = new SoopyGuiElement().setLocation(0, 0, 1, 1);
- this.soopyGui.element.addChild(this.mainPage);
- this.soopyGui.element.addEvent(new SoopyKeyPressEvent().setHandler((...args) =>
- this.keyPress(...args)
- ));
-
-
- this.startButton = new ButtonWithArrow()
- .setText("§0Start Dungeon")
- .setLocation(0.25, 0.25, 0.5, 0.5)
- .addEvent(new SoopyMouseClickEvent().setHandler(() =>
- this.startDungeon()
- ));
- this.soopyGui.element.addChild(this.startButton);
-
- this.startButton.desc = new SoopyTextElement()
- .setMaxTextScale(2)
- .setLocation(0.05, 0.6, 0.7, 0.4)
- .setText("");
- this.startButton.addChild(this.startButton.desc);
-
- this.closeMenu = 0;
- this.nameToId = {};
- this.nextId = 0;
- this.currPlayers = 1;
- this.readyBoxes = [];
- this.confirmationCooldown = 0;
- for (let i = 0; i < 4; i++) {
- let readyBox = new BoxWithTextAndDescription()
- .setText("§0")
- .setDesc("§0")
- .setLocation(0.1 + 0.2 * i, 0.75, 0.15, 0.15)
- .setColor(255, 150, 150);
- this.readyBoxes.push(readyBox);
-
-
- readyBox.text.setLocation(0, 0, 1, 0.6);
- readyBox.description.setLocation(0.05, 0.6, 0.9, 0.4);
- readyBox.visable = false;
-
-
- this.mainPage.addChild(readyBox);
- }
-
- this.classBoxes = [];
- this.currentPlayerClass = -1;
- this.classes = {
- "Healer": new Item("minecraft:potion"),
- "Mage": new Item("minecraft:blaze_rod"),
- "Berserker": new Item("minecraft:iron_sword"),
- "Archer": new Item("minecraft:bow"),
- "Tank": new Item("minecraft:leather_chestplate")
- };
- Object.keys(this.classes).forEach((clas, i) => {
- let classBox = new BoxWithTextAndDescription()
- .setText("§0" + clas + "&7 - 0")
- .setDesc("§0")
- .setLocation(0.1 + 0.1625 * i, 0.1, 0.15, 0.1);
- this.classBoxes.push(classBox);
-
- let classIndex = i;
-
- classBox.text.setLocation(0, 0, 1, 0.6);
- classBox.description.setLocation(0.05, 0.6, 0.9, 0.4);
- classBox.addEvent(new SoopyRenderEvent()
- .setHandler(() => {
- let scale = 16 / Math.min(classBox.location.getWidthExact(), classBox.location.getHeightExact() / 2) * 3;
- this.classes[clas].draw(classBox.location.getXExact() + classBox.location.getWidthExact() / 2 - 16 * scale / 2, classBox.location.getYExact() + classBox.location.getHeightExact() - 16 * scale - 4, scale);
- })).addEvent(new SoopyMouseClickEvent().setHandler(() =>
- this.clickedClass(classIndex)
- ));
-
- this.mainPage.addChild(classBox)
- })
-
- this.playerReadyButton = new ButtonWithArrow()
- .setText("§0Ready")
- .setLocation(0.33, 0.33, 0.33, 0.33)
- .setColor(255, 150, 150)
- .addEvent(new SoopyMouseClickEvent()
- .setHandler(() => this.ready()));
- this.mainPage.addChild(this.playerReadyButton);
- }
-
- joinedDungeon(players) {
- this.currPlayers = players;
- }
-
- startDungeon() {
- if (Player.getContainer().getName() !== "Start Dungeon?") return;
-
- if (!this.confirmationCooldown && World.getAllPlayers().filter(p => p.getPing() === 1).length !== this.currPlayers && !(World.getAllPlayers().filter(p => p.getPing() === 1).length === 1 && this.currPlayers === 2)) {
- this.startButton.setText("§0Confirm starting Dungeon? (3s)");
- this.startButton.desc.setText("§0(" + World.getAllPlayers().filter(p => p.getPing() === 1).length + "/" + this.currPlayers + " in dungeon)");
- this.confirmationCooldown = Date.now() + 3000;
- return;
- }
- if (Date.now() < this.confirmationCooldown) return;
-
- this.startButton.visable = false;
- Player.getContainer().click(13, false, "MIDDLE");
- }
-
- ready() {
- if (!Player.getContainer().getName().startsWith("Catacombs - Floor ")) return;
- this.playerReadyButton.setColor(150, 150, 150);
- for (let i = 0; i < 5; i++) {
- if (ChatLib.removeFormatting(Player.getContainer().getStackInSlot(3 + i).getName().split(" ").pop()) === Player.getName())
- Player.getContainer().drop(12 + i, false);
- }
- }
-
- clickedClass(classIndex) {
- if (!Player.getContainer().getName().startsWith("Catacombs - Floor ")) return;
-
- Player.getContainer().drop(2 + 4 * 9 + classIndex, false);
-
- this.classBoxes[classIndex].setColor(150, 150, 150);
-
- if (this.currentPlayerClass !== -1) this.classBoxes[this.currentPlayerClass].setColor(253, 255, 227);
- }
-
- reset() {
- this.startButton.visable = true;
- this.playerReadyButton.setColor(255, 150, 150);
-
- this.nameToId = {};
- this.nextId = 0;
- this.closeMenu = 0;
-
- this.startButton.setText("§0Start Dungeon");
- this.startButton.desc.setText("");
- this.confirmationCooldown = 0;
-
- this.readyBoxes.forEach(b => b.visable = false);
- }
-
- readyInOneSecond() {
- this.closeMenu = Date.now() + 1000;
- }
-
- tick() {
- if (!this.soopyGui.ctGui.isOpen()) return;
-
- if (this.closeMenu > 0 && Date.now() > this.closeMenu) {
- this.soopyGui.close();
- Client.currentGui.close();
- this.closeMenu = 0;
- return;
- }
-
- if (Player.getContainer().getName().startsWith("Catacombs - Floor ")) {
- this.startButton.visable = false;
-
- let clickingClassButton = -1;
-
- for (let i = 0; i < 5; i++) {
- //ready up buttons
- if (Player.getContainer().getStackInSlot(3 + i)) {
- if (ChatLib.removeFormatting(Player.getContainer().getStackInSlot(3 + i).getName().split(" ").pop()) === Player.getName()) {
- if (Player.getContainer().getStackInSlot(12 + i)) {
- if (ChatLib.removeFormatting(Player.getContainer().getStackInSlot(12 + i).getName()) === "Ready") {
- this.playerReadyButton.setColor(150, 255, 150);
- } else {
- this.playerReadyButton.setColor(255, 150, 150);
- }
- } else {
- this.playerReadyButton.setColor(150, 150, 150);
- }
- } else {
- let boxId = this.nameToId[ChatLib.removeFormatting(Player.getContainer().getStackInSlot(3 + i).getName().split(" ").pop())];
-
- if (boxId) {
- this.readyBoxes[boxId].setColor(255, 150, 150);
- if (ChatLib.removeFormatting(Player.getContainer().getStackInSlot(12 + i).getName()) === "Ready")
- this.readyBoxes[boxId].setColor(150, 255, 150);
-
- this.readyBoxes[boxId].setLore(Player.getContainer().getStackInSlot(3 + i).getLore());
- this.readyBoxes[boxId].setDesc("§0" + ChatLib.removeFormatting(Player.getContainer().getStackInSlot(3 + i).getLore()[2]));
- }
- }
- }
-
-
- //select class buttons
- if (Player.getContainer().getStackInSlot(2 + 4 * 9 + i)) {
- this.classBoxes[i].setColor(253, 255, 227);
- if (Player.getContainer().getStackInSlot(2 + 4 * 9 + i).getDamage() === 10)
- this.classBoxes[i].setColor(250, 255, 150);
-
- this.classBoxes[i]
- .setText("§0" + Object.keys(this.classes)[i] + "§7 - " + ChatLib.removeFormatting(Player.getContainer().getStackInSlot(2 + 4 * 9 + i).getName().split(" ")[0]))
- .setLore(Player.getContainer().getStackInSlot(2 + 4 * 9 + i).getLore());
-
- let isPlayerClass = false;
- Player.getContainer().getStackInSlot(2 + 4 * 9 + i).getLore().forEach(line => {
- if (!ChatLib.removeFormatting(line).startsWith(" - ")) return;
- if (ChatLib.removeFormatting(line.split(" ").pop()) === Player.getName())
- isPlayerClass = true;
- })
-
- if (isPlayerClass) {
- this.currentPlayerClass = i;
- this.classBoxes[i].setColor(150, 255, 150);
- }
- } else clickingClassButton = i;
- }
-
- if (clickingClassButton !== -1) {
- this.classBoxes[clickingClassButton].setColor(150, 150, 150);
- if (this.currentPlayerClass !== -1) this.classBoxes[this.currentPlayerClass].setColor(253, 255, 227);
- }
- };
-
- if (this.confirmationCooldown) {
- this.startButton.setText("§0Confirm starting Dungeon? (" + Math.ceil(Math.max(0, this.confirmationCooldown - Date.now()) / 1000) + "s)");
- };
-
- World.getAllPlayers().filter(p => p.getPing() === 1).forEach(p => {
- if (p.getUUID().toString() === Player.getUUID().toString()) return;
-
- if (p.getName() in this.nameToId) return;
-
- this.nameToId[p.getName()] = this.nextId++;
-
- this.readyBoxes[this.nameToId[p.getName()]].setText("§0" + p.getName()).visable = true;
- });
- }
-
- guiOpened(event) {
- let name = "";
- if (event.gui && event.gui.field_147002_h instanceof ContainerChest)
- name = event.gui.field_147002_h.func_85151_d().func_145748_c_().func_150260_c();
-
- if (this.soopyGui.ctGui.isOpen()) {
- if (!event.gui || !event.gui.field_147002_h) return;
- Player.getPlayer().field_71070_bA = event.gui.field_147002_h
-
- if (!Player.getContainer().getName().startsWith("Catacombs - Floor ")) return;
-
- event.gui = this.soopyGui.ctGui
- this.soopyGui.ctGui.open();
- return
- }
-
- if (name === "Start Dungeon?" || name.startsWith("Catacombs - Floor ")) {
- if (event.gui && event.gui.field_147002_h) Player.getPlayer().field_71070_bA = event.gui.field_147002_h;
-
- this.soopyGui.open();
- event.gui = this.soopyGui.ctGui;
- }
- }
-
- keyPress(key, keyId) {
- if (keyId === 1) //escape key
- // this.dontOpen = 1
- Client.currentGui.close();
-
- if (keyId === 18) //'e' key
- Client.currentGui.close();
-
- }
-}
-
-export default DungeonReadyGui;
\ No newline at end of file
diff --git a/features/betterGuis/index.js b/features/betterGuis/index.js
deleted file mode 100644
index 7e91d69..0000000
--- a/features/betterGuis/index.js
+++ /dev/null
@@ -1,386 +0,0 @@
-///
-///
-import Feature from "../../featureClass/class";
-import logger from "../../logger";
-import { f, m } from "../../../mappings/mappings";
-import ToggleSetting from "../settings/settingThings/toggle";
-import MuseumGui from "./museumGui.js";
-import DungeonReadyGui from "./dungeonReadyGui";
-import { SoopyGui } from "../../../guimanager";
-import TextBox from "../../../guimanager/GuiElement/TextBox";
-import SoopyNumber from "../../../guimanager/Classes/SoopyNumber";
-
-class BetterGuis extends Feature {
- constructor() {
- super();
- }
-
- inSkyblock() {
- return this.FeatureManager.features["dataLoader"] && this.FeatureManager.features["dataLoader"].class.isInSkyblock;
- }
-
- onEnable() {
- this.initVariables();
-
- this.museumGui = new MuseumGui();
- this.dungeonReady = new DungeonReadyGui();
-
- this.replaceSbMenuClicks = new ToggleSetting("Improve Clicks on SBMENU", "This will change clicks to middle clicks, AND use commands where possible (eg /pets)", true, "sbmenu_clicks", this);
- this.reliableSbMenuClicks = { getValue: () => false }//removed because hypixel fixed, code kept incase hypixel adds back bug later //new ToggleSetting("Make SBMENU clicks reliable", "This will delay clicks on sbmenu to time them so they dont get canceled", true, "sbmenu_time", this)
-
- this.museumGuiEnabled = new ToggleSetting("Custom Museum GUI", "Custom gui for the Museum", true, "custom_museum_enabled", this);
- this.dungeonReadyGuiEnabled = new ToggleSetting("Custom Dungeon Ready GUI", "Custom gui for the dungeon ready up menu", false, "custom_dungeon_ready_enabled", this);
-
- this.chestSearchBar = new ToggleSetting("Inventory Search Bar", "use '&' to make it filter by stuff that contains multiple things", false, "inv_search", this);
- this.customBars = new ToggleSetting("Custom hp and mana bar", "Also hides stuff like armor bar", false, "custom_bars", this);
-
- this.lastWindowId = 0;
- this.shouldHold = 10;
- this.clickSlot = -1;
- this.clickSlotTime = 0;
-
- this.middleClickGuis = [
- "Your SkyBlock Profile",
- "Your Skills",
- "Farming Skill",
- "Mining Skill",
- "Heart of the Mountain",
- "Combat Skill",
- "Foraging Skill",
- "Fishing Skill",
- "Enchanting Skill",
- "Alchemy Skill",
- "Carpentry Skill",
- "Runecrafting Skill",
- "Social Skill",
- "Taming Skill",
- "Dungeoneering",
- "Your Essence",
- "Healer Class Perks",
- "Mage Class Perks",
- "Beserk Class Perks",
- "Archer Class Perks",
- "Tank Class Perks",
- "Recipe Book",
- "Trades",
- "Quest Log",
- "Quest Log (Completed)",
- "Fairt Souls Guide",
- "Dungeon Journals",
- "Calendar and Events",
- "Booster Cookie",
- "Island Management",
- "Toggle Potion Effects",
- "Bank",
- "Bank Account Upgrades",
- "Co-op Bank Account",
- "Bank Deposit",
- "Bank Withdrawal",
- "Personal Bank Account",
- "Bazaar Orders",
- "Co-op Bazaar Orders",
- "Pets"
- ]
- this.middleClickStartsWith = [
- "Bestiary",
- "Private Island",
- "Hub",
- "Spiders Den",
- "Blazing Fortress",
- "The End",
- "Deep Caverns",
- "The Park",
- "Spooky Festival",
- "Catacombs",
- "The Catacombs",
- "Settings",
- "Bazaar",
- "Farming",
- "Mining",
- "Woods & Fishes",
- "Oddities"
- ];
- this.middleClickEndsWith = [
- "Recipe",
- "Recipes",
- ") Pets",
- "Collection",
- "Active Effects"
- ];
-
- this.registerChat("&r&aDungeon starts in 1 second.&r", () =>
- this.dungeonReady.readyInOneSecond.call(this.dungeonReady));
- this.registerChat("&r&aDungeon starts in 1 second. Get ready!&r", () =>
- this.dungeonReady.readyInOneSecond.call(this.dungeonReady));
- this.registerEvent("guiMouseClick", this.guiClicked);
- this.registerEvent("guiOpened", (event) => {
- if (this.museumGuiEnabled.getValue()) this.museumGui.guiOpened.call(this.museumGui, event);
- if (this.dungeonReadyGuiEnabled.getValue()) this.dungeonReady.guiOpened.call(this.dungeonReady, event);
- });
- this.registerEvent("worldLoad", () => this.dungeonReady.reset());
- this.registerChat("&e${*} &r&cThe Catacombs &r&ewith &r&9${players}/5 players &r&eon &r${*}&r", (players) => {
- if (this.dungeonReadyGuiEnabled.getValue()) this.dungeonReady.joinedDungeon.call(this.dungeonReady, ~~players);
- })
- this.registerChat("&eSkyBlock Dungeon Warp &r&7(${players} players)&r", (players) => {
- if (this.dungeonReadyGuiEnabled.getValue()) this.dungeonReady.joinedDungeon.call(this.dungeonReady, ~~players)
- })
- this.registerStep(true, 10, this.step)
- this.registerEvent("worldUnload", () => this.museumGui.saveMuseumCache.call(this.museumGui));
- this.registerStep(false, 30, () => this.museumGui.saveMuseumCache.call(this.museumGui));
-
-
- this.invSearchSoopyGui = new SoopyGui();
- this.invSearchSoopyGui._renderBackground = () => { };
-
- this.invSearchTextBox = new TextBox().setPlaceholder("Click to search").setLocation(0.4, 0.05, 0.2, 0.05);
- this.invSearchSoopyGui.element.addChild(this.invSearchTextBox);
-
- this.mana = new SoopyNumber(0);
- this.overflowMana = new SoopyNumber(0);
- this.maxMana = new SoopyNumber(0);
- this.lastOverFlow = Date.now();
-
- this.slotMatches = new Map();
- this.registerEvent("renderHealth", this.renderHealth).registeredWhen(() => this.inSkyblock() && this.customBars.getValue());
- this.registerEvent("renderFood", cancel).registeredWhen(() => this.inSkyblock() && this.customBars.getValue());
- this.registerEvent("renderArmor", this.renderMana).registeredWhen(() => this.inSkyblock() && this.customBars.getValue());
- let registerActionBar = this.registerCustom("actionbar", this.actionbarMana);
- registerActionBar.trigger.setCriteria('&b${curr}/${max}✎').setParameter('contains');
- let registerActionBar2 = this.registerCustom("actionbar", this.actionbarOverflowMana);
- registerActionBar2.trigger.setCriteria('&3${curr}ʬ').setParameter('contains');
- //&c2532/2532❤ &a798&a❈ Defense &b2525/2525✎ &31ʬ&r (100)
- //&c2532/2532❤ &f20&f❂ True Defense &b2414/2414✎ &3600ʬ&r (13)
- //&c2665/2665❤ &a972&a❈ Defense &b2145/2145✎ &3600ʬ&r
- //&c2,806/2,806❤ &a1,050&a❈ Defense &b1,945/1,945✎ &3600ʬ&r
- this.registerEvent("guiRender", this.postGuiRender).registeredWhen(() => this.chestSearchBar.getValue());
- this.registerEvent("guiMouseClick", this.guiMouseClick).registeredWhen(() => this.chestSearchBar.getValue());
- this.registerEvent("guiKey", this.guiKey).registeredWhen(() => this.chestSearchBar.getValue());
- this.registerEvent("renderSlot", this.renderSlot).registeredWhen(() => this.chestSearchBar.getValue());
- this.registerEvent("guiOpened", this.guiOpened).registeredWhen(() => this.chestSearchBar.getValue());
- }
-
- actionbarMana(curr, max) {
- if (curr.includes("Mana"))
- curr = curr.split("&b").pop();
-
- this.mana.set(parseInt(curr.replace(/,/g, "")), 500);
- this.maxMana.set(parseInt(max.replace(/,/g, "")), 500);
- if (Date.now() - this.lastOverFlow > 1000) this.overflowMana.set(0, 500);
- }
-
- actionbarOverflowMana(curr) {
- this.overflowMana.set(parseInt(curr.replace(/,/g, "")), 500);
- this.lastOverFlow = Date.now();
- }
-
- renderMana(event) {
- cancel(event);
-
- let left = Renderer.screen.getWidth() / 2 + 91 - 80;
- let top = Renderer.screen.getHeight() - 40;
-
- Renderer.retainTransforms(true);
- Renderer.translate(left, top);
-
- let totalAmt = Math.max(this.maxMana.get(), this.mana.get() + this.overflowMana.get());
-
- let manaPercent = this.mana.get() / totalAmt;
- let ofPercent = this.overflowMana.get() / totalAmt;
-
- Renderer.drawRect(Renderer.color(0, 0, 0), 0, 0, 80, 10);
- Renderer.drawRect(Renderer.color(50, 50, 50), 2, 2, 76, 6);
- Renderer.drawRect(Renderer.color(0, 0, 255), 2, 2, manaPercent * 76, 6);
- Renderer.drawRect(Renderer.color(0, 255, 255), 2 + manaPercent * 76, 2, ofPercent * 76, 6);
- Renderer.retainTransforms(false);
- }
-
- renderHealth(event) {
- cancel(event);
-
- let left = Renderer.screen.getWidth() / 2 - 91;
- let top = Renderer.screen.getHeight() - 40;
-
- Renderer.retainTransforms(true);
- Renderer.translate(left, top);
-
- let totalAmt = Math.max(Player.asPlayerMP().getMaxHP(), Player.getHP() + Player.asPlayerMP().getAbsorption());
-
- let hpPercent = Player.getHP() / totalAmt;
- let abPercent = Player.asPlayerMP().getAbsorption() / totalAmt;
-
-
- Renderer.drawRect(Renderer.color(0, 0, 0), 0, 0, 80, 10);
- Renderer.drawRect(Renderer.color(50, 50, 50), 2, 2, 76, 6);
- Renderer.drawRect(Renderer.color(255, 0, 0), 2, 2, hpPercent * 76, 6);
- Renderer.drawRect(Renderer.color(255, 255, 0), 2 + hpPercent * 76, 2, abPercent * 76, 6);
-
- Renderer.retainTransforms(false);
- }
-
- postGuiRender(x, y, gui) {
- if (gui instanceof net.minecraft.client.gui.inventory.GuiChest.GuiChest)
- this.invSearchSoopyGui._render(x, y, 0);
- }
- guiMouseClick(x, y, button, gui) {
- if (gui instanceof net.minecraft.client.gui.inventory.GuiChest.GuiChest)
- this.invSearchSoopyGui._onClick(x, y, button);
- }
- guiKey(char, code, gui, event) {
- if (!(gui instanceof net.minecraft.client.gui.inventory.GuiChest.GuiChest)) return;
-
- this.invSearchSoopyGui._onKeyPress(char, code);
-
- if (this.invSearchTextBox.text.selected) {
- cancel(event);
- this.slotMatches.clear();
- }
- }
- guiOpened() {
- this.slotMatches.clear();
- }
-
- renderSlot(slot, gui, event) {
- if (!(gui instanceof net.minecraft.client.gui.inventory.GuiChest.GuiChest)) return;
- if (!this.invSearchTextBox.getText()) return;
-
- let searchText = this.invSearchTextBox.getText().toLowerCase();
-
- let isMatching = false;
- let slotMatches = this.slotMatches.get(slot.getIndex());
- if (slotMatches && Date.now() - slotMatches.timestamp < 500) {
- if (!slotMatches.isMatching) {
- Renderer.translate(0, 0, 100);
- Renderer.drawRect(Renderer.color(0, 0, 0, 200), slot.getDisplayX(), slot.getDisplayY(), 8 * Renderer.screen.getScale(), 8 * Renderer.screen.getScale());
- }
- return;
- }
- let item = slot.getItem();
- if (item) {
- isMatching = !searchText.split("&").map(a => {
- a = a.trim();
- let isMatching2 = false;
- if (ChatLib.removeFormatting(item.getName()).toLowerCase().includes(a)) isMatching2 = true;
- if (!isMatching2 && item.getLore().some(b => ChatLib.removeFormatting(b).toLowerCase().includes(a))) isMatching2 = true;
- return isMatching2;
- }).includes(false);
- }
-
- this.slotMatches.set(slot.getIndex(), { isMatching, timestamp: Date.now() });
-
- if (!isMatching) {
- Renderer.translate(0, 0, 100);
- Renderer.drawRect(Renderer.color(0, 0, 0, 200), slot.getDisplayX(), slot.getDisplayY(), 8 * Renderer.screen.getScale(), 8 * Renderer.screen.getScale());
- }
- }
-
- guiClicked(mouseX, mouseY, button, gui, event) {
- if (!(gui instanceof net.minecraft.client.gui.inventory.GuiChest) || button !== 0 || !this.replaceSbMenuClicks.getValue()) return;
-
- let hoveredSlot = gui.getSlotUnderMouse();
- if (!hoveredSlot) return;
-
- let hoveredSlotId = hoveredSlot[f.slotNumber];
-
- // logger.logMessage(hoveredSlotId, 4)
-
- if (this.guiSlotClicked(ChatLib.removeFormatting(Player.getContainer().getName()), hoveredSlotId))
- cancel(event);
- }
-
- step() {
- if (this.museumGuiEnabled.getValue()) this.museumGui.tick.call(this.museumGui);
- if (this.dungeonReadyGuiEnabled.getValue()) this.dungeonReady.tick.call(this.dungeonReady);
-
- if (!this.replaceSbMenuClicks.getValue()) return
- if (Player.getContainer() && Player.getContainer().getName() !== "SkyBlock Menu") {
- this.lastWindowId = 0;
- return;
- }
- if (this.lastWindowId === 0) {
- this.lastWindowId = Player.getContainer().getWindowId();
- return;
- }
- if (Player.getContainer().getWindowId() === this.lastWindowId) {
- this.shouldHold--
- return;
- }
-
- this.lastWindowId = Player.getContainer().getWindowId();
- this.shouldHold += 10;
- if (Date.now() - this.clickSlotTime > 1000) {
- this.clickSlot = -1;
- }
- if (this.clickSlot && this.clickSlot != -1) {
- Player.getContainer().click(this.clickSlot, false, "MIDDLE");
- this.clickSlot = -1;
- }
- }
-
- guiSlotClicked(inventoryName, slotId) {
- if (inventoryName.endsWith(" Sack")) return false
- switch (inventoryName) {
- case "SkyBlock Menu":
- switch (slotId) {
- case 30:
- ChatLib.command("pets")
- break
- case 25:
- ChatLib.command("storage")
- break
- default:
- if (this.shouldHold > 0 && this.reliableSbMenuClicks.getValue()) {
- this.clickSlot = slotId
- this.clickSlotTime = Date.now()
- } else {
- Player.getContainer().click(slotId, false, "MIDDLE")
- }
- break;
- }
- return true
- break
- default:
- if (this.middleClickGuis.includes(inventoryName)) {
- Player.getContainer().click(slotId, false, "MIDDLE")
- return true
- }
- for (let thing of this.middleClickStartsWith) {
- if (inventoryName.startsWith(thing)) {
- Player.getContainer().click(slotId, false, "MIDDLE")
- return true
- }
- }
- for (let thing of this.middleClickEndsWith) {
- if (inventoryName.endsWith(thing)) {
- Player.getContainer().click(slotId, false, "MIDDLE")
- return true
- }
- }
- return false
- break
- }
- }
-
- initVariables() {
- this.replaceSbMenuClicks = undefined;
- this.lastWindowId = undefined;
- this.shouldHold = undefined;
- this.clickSlot = undefined;
- this.clickSlotTime = undefined;
- this.reliableSbMenuClicks = undefined;
- this.middleClickGuis = undefined;
- this.middleClickStartsWith = undefined;
- this.middleClickEndsWith = undefined;
-
- this.museumGui = undefined;
- }
-
- onDisable() {
- this.initVariables();
-
- this.invSearchSoopyGui.delete();
- }
-}
-
-module.exports = {
- class: new BetterGuis()
-}
\ No newline at end of file
diff --git a/features/betterGuis/metadata.json b/features/betterGuis/metadata.json
deleted file mode 100644
index 6aeed27..0000000
--- a/features/betterGuis/metadata.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "Better guis",
- "description": "Edits to a bunch of guis to make them nicer to use",
- "isHidden": false,
- "isTogglable": true,
- "defaultEnabled": true,
- "sortA": 1
-}
\ No newline at end of file
diff --git a/features/betterGuis/museumGui.js b/features/betterGuis/museumGui.js
deleted file mode 100644
index 06497af..0000000
--- a/features/betterGuis/museumGui.js
+++ /dev/null
@@ -1,1024 +0,0 @@
-import { SoopyGui, SoopyRenderEvent } from "../../../guimanager"
-import SoopyContentChangeEvent from "../../../guimanager/EventListener/SoopyContentChangeEvent"
-import SoopyHoverChangeEvent from "../../../guimanager/EventListener/SoopyHoverChangeEvent"
-import SoopyKeyPressEvent from "../../../guimanager/EventListener/SoopyKeyPressEvent"
-import SoopyMouseClickEvent from "../../../guimanager/EventListener/SoopyMouseClickEvent"
-import SoopyOpenGuiEvent from "../../../guimanager/EventListener/SoopyOpenGuiEvent"
-import BoxWithText from "../../../guimanager/GuiElement/BoxWithText"
-import ButtonWithArrow from "../../../guimanager/GuiElement/ButtonWithArrow"
-import ProgressBar from "../../../guimanager/GuiElement/ProgressBar"
-import SoopyBoxElement from "../../../guimanager/GuiElement/SoopyBoxElement"
-import SoopyGuiElement from "../../../guimanager/GuiElement/SoopyGuiElement"
-import SoopyMarkdownElement from "../../../guimanager/GuiElement/SoopyMarkdownElement"
-import SoopyTextElement from "../../../guimanager/GuiElement/SoopyTextElement"
-import TextBox from "../../../guimanager/GuiElement/TextBox"
-import Notification from "../../../guimanager/Notification"
-import renderLibs from "../../../guimanager/renderLibs"
-import { m } from "../../../mappings/mappings"
-import * as utils from "../../utils/utils"
-
-
-const ContainerChest = Java.type("net.minecraft.inventory.ContainerChest")
-
-class MuseumGui {
- constructor() {
- this.checkMenu = false
-
- this.isInMuseum = false
- this.guiOpenTickThing = false
- this.dontOpen = 0
- this.lastClosed = 0
- this.itemsInPages = JSON.parse(FileLib.read("soopyAddonsData", "museumItemsCache.json") || "{}") || {}
- this.itemsInPagesSaved = true
-
- this.soopyGui = new SoopyGui()
-
- this.soopyGui.optimisedLocations = true
-
- this.soopyGui.element.addEvent(new SoopyKeyPressEvent().setHandler((...args) => {
- this.keyPress(...args)
- }))
-
- this.mainPage = new SoopyGuiElement().setLocation(0, 0, 1, 1)
- this.soopyGui.element.addChild(this.mainPage)
-
- let widthPer = 0.2
- let leftOffset = (1 - widthPer * 3 - widthPer * 4 / 5) / 2
-
- this.weaponsIndicator = new SoopyBoxElement().setLocation(leftOffset, 0.05, widthPer * 4 / 5, 0.15)
- this.weaponsIndicator.addEvent(new SoopyRenderEvent().setHandler(() => {
- if (this.weaponsIndicator.hovered && ChatLib.removeFormatting(Player.getContainer().getStackInSlot(4).getName()) !== "Weapons") {
- this.weaponText.location.location.x.set(0.05, 500)
- this.weaponText.location.size.x.set(0.9, 500)
- this.weaponText.location.location.y.set(0.025, 500)
- this.weaponText.location.size.y.set(0.35, 500)
-
- this.weaponsIndicator.setColorOffset(-20, -20, -20, 100)
-
- Renderer.translate(0, 0, 100)
- Renderer.drawRect(Renderer.color(0, 0, 0, 100), this.weaponsIndicator.location.getXExact(), this.weaponsIndicator.location.getYExact(), this.weaponsIndicator.location.getWidthExact(), this.weaponsIndicator.location.getHeightExact())
- let clicks = Player.getContainer().getName() === "Your Museum" ? "1" : "2"
- Renderer.translate(0, 0, 100)
- renderLibs.drawStringCenteredFull(clicks, this.weaponsIndicator.location.getXExact() + this.weaponsIndicator.location.getWidthExact() / 2, this.weaponsIndicator.location.getYExact() + this.weaponsIndicator.location.getHeightExact() / 2, Math.min(this.weaponsIndicator.location.getWidthExact() / Renderer.getStringWidth(clicks) / 4, this.weaponsIndicator.location.getHeightExact() / 4 / 2))
- } else {
- this.weaponText.location.location.x.set(0.1, 500)
- this.weaponText.location.size.x.set(0.8, 500)
- this.weaponText.location.location.y.set(0.05, 500)
- this.weaponText.location.size.y.set(0.3, 500)
-
- this.weaponsIndicator.setColorOffset(0, 0, 0, 100)
- }
- })).addEvent(new SoopyMouseClickEvent().setHandler(() => {
- this.clickedTopButton("Weapons")
- }))
-
- this.weaponText = new SoopyTextElement().setText("§5Weapons").setMaxTextScale(10).setLocation(0.1, 0.05, 0.8, 0.3)
- this.weaponsIndicator.addChild(this.weaponText)
- this.weaponsPercentageText = new SoopyTextElement().setLocation(0.1, 0.4, 0.8, 0.2).setText("§0Items Donated: §7Loading...").setMaxTextScale(10)
- this.weaponsIndicator.addChild(this.weaponsPercentageText)
- this.weaponsProgressBar = new ProgressBar().setLocation(0.1, 0.6, 0.8, 0.35).showPercentage(true)
- this.weaponsIndicator.addChild(this.weaponsProgressBar)
- this.mainPage.addChild(this.weaponsIndicator)
-
- this.armourIndicator = new SoopyBoxElement().setLocation(leftOffset + widthPer, 0.05, widthPer * 4 / 5, 0.15)
- this.armourIndicator.addEvent(new SoopyRenderEvent().setHandler(() => {
- if (this.armourIndicator.hovered && ChatLib.removeFormatting(Player.getContainer().getStackInSlot(4).getName()) !== "Armor Sets") {
- this.armourText.location.location.x.set(0.05, 500)
- this.armourText.location.size.x.set(0.9, 500)
- this.armourText.location.location.y.set(0.025, 500)
- this.armourText.location.size.y.set(0.35, 500)
-
- this.armourIndicator.setColorOffset(-20, -20, -20, 100)
-
- Renderer.translate(0, 0, 100)
- Renderer.drawRect(Renderer.color(0, 0, 0, 100), this.armourIndicator.location.getXExact(), this.armourIndicator.location.getYExact(), this.armourIndicator.location.getWidthExact(), this.armourIndicator.location.getHeightExact())
- let clicks = Player.getContainer().getName() === "Your Museum" ? "1" : "2"
- Renderer.translate(0, 0, 100)
- renderLibs.drawStringCenteredFull(clicks, this.armourIndicator.location.getXExact() + this.armourIndicator.location.getWidthExact() / 2, this.armourIndicator.location.getYExact() + this.armourIndicator.location.getHeightExact() / 2, Math.min(this.armourIndicator.location.getWidthExact() / Renderer.getStringWidth(clicks) / 4, this.armourIndicator.location.getHeightExact() / 4 / 2))
- } else {
- this.armourText.location.location.x.set(0.1, 500)
- this.armourText.location.size.x.set(0.8, 500)
- this.armourText.location.location.y.set(0.05, 500)
- this.armourText.location.size.y.set(0.3, 500)
-
- this.armourIndicator.setColorOffset(0, 0, 0, 100)
- }
- })).addEvent(new SoopyMouseClickEvent().setHandler(() => {
- this.clickedTopButton("Armor Sets")
- }))
-
- this.armourText = new SoopyTextElement().setText("§5Armor Sets").setMaxTextScale(10).setLocation(0.1, 0.05, 0.8, 0.3)
- this.armourIndicator.addChild(this.armourText)
- this.armourPercentageText = new SoopyTextElement().setLocation(0.1, 0.4, 0.8, 0.2).setText("§0Items Donated: §7Loading...").setMaxTextScale(10)
- this.armourIndicator.addChild(this.armourPercentageText)
- this.armourProgressBar = new ProgressBar().setLocation(0.1, 0.6, 0.8, 0.35).showPercentage(true)
- this.armourIndicator.addChild(this.armourProgressBar)
- this.mainPage.addChild(this.armourIndicator)
-
- this.raritiesIndicator = new SoopyBoxElement().setLocation(leftOffset + widthPer * 2, 0.05, widthPer * 4 / 5, 0.15)
- this.raritiesIndicator.addEvent(new SoopyRenderEvent().setHandler(() => {
- if (this.raritiesIndicator.hovered && ChatLib.removeFormatting(Player.getContainer().getStackInSlot(4).getName()) !== "Rarities") {
- this.raritiesText.location.location.x.set(0.05, 500)
- this.raritiesText.location.size.x.set(0.9, 500)
- this.raritiesText.location.location.y.set(0.025, 500)
- this.raritiesText.location.size.y.set(0.35, 500)
-
- this.raritiesIndicator.setColorOffset(-20, -20, -20, 100)
-
- Renderer.translate(0, 0, 100)
- Renderer.drawRect(Renderer.color(0, 0, 0, 100), this.raritiesIndicator.location.getXExact(), this.raritiesIndicator.location.getYExact(), this.raritiesIndicator.location.getWidthExact(), this.raritiesIndicator.location.getHeightExact())
- let clicks = Player.getContainer().getName() === "Your Museum" ? "1" : "2"
- Renderer.translate(0, 0, 100)
- renderLibs.drawStringCenteredFull(clicks, this.raritiesIndicator.location.getXExact() + this.raritiesIndicator.location.getWidthExact() / 2, this.raritiesIndicator.location.getYExact() + this.raritiesIndicator.location.getHeightExact() / 2, Math.min(this.raritiesIndicator.location.getWidthExact() / Renderer.getStringWidth(clicks) / 4, this.raritiesIndicator.location.getHeightExact() / 4 / 2))
- } else {
- this.raritiesText.location.location.x.set(0.1, 500)
- this.raritiesText.location.size.x.set(0.8, 500)
- this.raritiesText.location.location.y.set(0.05, 500)
- this.raritiesText.location.size.y.set(0.3, 500)
-
- this.raritiesIndicator.setColorOffset(0, 0, 0, 100)
- }
- })).addEvent(new SoopyMouseClickEvent().setHandler(() => {
- this.clickedTopButton("Rarities")
- }))
-
- this.raritiesText = new SoopyTextElement().setText("§5Rarities").setMaxTextScale(10).setLocation(0.1, 0.05, 0.8, 0.3)
- this.raritiesIndicator.addChild(this.raritiesText)
- this.raritiesPercentageText = new SoopyTextElement().setLocation(0.1, 0.4, 0.8, 0.2).setText("§0Items Donated: §7Loading...").setMaxTextScale(10)
- this.raritiesIndicator.addChild(this.raritiesPercentageText)
- this.raritiesProgressBar = new ProgressBar().setLocation(0.1, 0.6, 0.8, 0.35).showPercentage(true)
- this.raritiesIndicator.addChild(this.raritiesProgressBar)
- this.mainPage.addChild(this.raritiesIndicator)
-
- this.specialIndicator = new SoopyBoxElement().setLocation(leftOffset + widthPer * 3, 0.05, widthPer * 4 / 5, 0.15)
- this.specialIndicator.addEvent(new SoopyRenderEvent().setHandler(() => {
- if (this.specialIndicator.hovered && ChatLib.removeFormatting(Player.getContainer().getStackInSlot(4).getName()) !== "Special Items") {
- this.specialText.location.location.x.set(0.05, 500)
- this.specialText.location.size.x.set(0.9, 500)
- this.specialText.location.location.y.set(0.025, 500)
- this.specialText.location.size.y.set(0.35, 500)
-
- this.specialIndicator.setColorOffset(-20, -20, -20, 100)
-
- Renderer.translate(0, 0, 100)
- Renderer.drawRect(Renderer.color(0, 0, 0, 100), this.specialIndicator.location.getXExact(), this.specialIndicator.location.getYExact(), this.specialIndicator.location.getWidthExact(), this.specialIndicator.location.getHeightExact())
- let clicks = Player.getContainer().getName() === "Your Museum" ? "1" : "2"
- Renderer.translate(0, 0, 100)
- renderLibs.drawStringCenteredFull(clicks, this.specialIndicator.location.getXExact() + this.specialIndicator.location.getWidthExact() / 2, this.specialIndicator.location.getYExact() + this.specialIndicator.location.getHeightExact() / 2, Math.min(this.specialIndicator.location.getWidthExact() / Renderer.getStringWidth(clicks) / 4, this.specialIndicator.location.getHeightExact() / 4 / 2))
-
- } else {
- this.specialText.location.location.x.set(0.1, 500)
- this.specialText.location.size.x.set(0.8, 500)
- this.specialText.location.location.y.set(0.05, 500)
- this.specialText.location.size.y.set(0.3, 500)
-
- this.specialIndicator.setColorOffset(0, 0, 0, 100)
- }
- })).addEvent(new SoopyMouseClickEvent().setHandler(() => {
- this.clickedTopButton("Special Items")
- }))
-
- this.specialText = new SoopyTextElement().setText("§5Special Items").setMaxTextScale(10).setLocation(0.1, 0.05, 0.8, 0.3)
- this.specialIndicator.addChild(this.specialText)
- this.specialPercentageText = new SoopyTextElement().setLocation(0.1, 0.4, 0.8, 0.6).setText("§0Items Donated: §7Loading...").setMaxTextScale(10)
- this.specialIndicator.addChild(this.specialPercentageText)
- this.mainPage.addChild(this.specialIndicator)
-
- let box = new SoopyBoxElement().setLocation(0.5 - widthPer * 0.75, 0.25, widthPer * 2 * 0.75, 0.075).setLore(["Click to search"])
- this.pageTitle = new SoopyTextElement().setText("§5Your Museum").setMaxTextScale(10).setLocation(0, 0, 1, 1)
- box.addChild(this.pageTitle)
- this.mainPage.addChild(box)
-
- this.searc