diff options
Diffstat (limited to 'features/statHistoryGui')
-rw-r--r-- | features/statHistoryGui/index.js | 191 | ||||
-rw-r--r-- | features/statHistoryGui/metadata.json | 8 |
2 files changed, 0 insertions, 199 deletions
diff --git a/features/statHistoryGui/index.js b/features/statHistoryGui/index.js deleted file mode 100644 index 282c40d..0000000 --- a/features/statHistoryGui/index.js +++ /dev/null @@ -1,191 +0,0 @@ -/// <reference types="../../../CTAutocomplete" /> -/// <reference lib="es2015" /> -import SoopyTextElement from "../../../guimanager/GuiElement/SoopyTextElement"; -import Feature from "../../featureClass/class"; -import GuiPage from "../soopyGui/GuiPage"; -import BoxWithLoading from "../../../guimanager/GuiElement/BoxWithLoading"; -import BoxWithTextAndDescription from "../../../guimanager/GuiElement/BoxWithTextAndDescription"; -import SoopyGuiElement from "../../../guimanager/GuiElement/SoopyGuiElement"; -import TextBox from "../../../guimanager/GuiElement/TextBox"; -import SoopyKeyPressEvent from "../../../guimanager/EventListener/SoopyKeyPressEvent"; -import { firstLetterWordCapital } from "../../utils/stringUtils"; -import SoopyMouseClickEvent from "../../../guimanager/EventListener/SoopyMouseClickEvent"; -import ButtonWithArrow from "../../../guimanager/GuiElement/ButtonWithArrow"; -import { fetch } from "../../utils/networkUtils"; -import SoopyImageElement from "../../../guimanager/GuiElement/SoopyImageElement"; -import renderLibs from "../../../guimanager/renderLibs"; -import SoopyBoxElement from "../../../guimanager/GuiElement/SoopyBoxElement"; -import Dropdown from "../../../guimanager/GuiElement/Dropdown"; -import SoopyContentChangeEvent from "../../../guimanager/EventListener/SoopyContentChangeEvent"; - -class StatHistoryGUI extends Feature { - constructor() { - super() - } - - onEnable() { - this.initVariables() - - this.GuiPage = new StatGraphPage() - - } - - initVariables() { - this.GuiPage = undefined - } - - onDisable() { - this.initVariables() - } -} - - -class StatGraphPage extends GuiPage { - constructor() { - super(7) - - this.name = "Stat Graphs" - - this.pages = [this.newPage()] - - this.pages[0].addChild(new SoopyTextElement().setText("§0Stat Graphs").setMaxTextScale(3).setLocation(0.1, 0.05, 0.6, 0.1)) - let button = new ButtonWithArrow().setText("§0Open in browser").setLocation(0.7, 0.05, 0.2, 0.1) - this.pages[0].addChild(button) - - button.addEvent(new SoopyMouseClickEvent().setHandler(() => { - java.awt.Desktop.getDesktop().browse( - new java.net.URI("https://soopy.dev/stathistory") - ); - })) - - this.nameInput = new TextBox().setPlaceholder("Click to search").setLocation(0.1, 0.225, 0.8, 0.1) - this.pages[0].addChild(this.nameInput) - - this.nameInput.addEvent(new SoopyKeyPressEvent().setHandler((key, keyId) => { - if (this.nameInput.text.selected && keyId === 28) { - this.playerLoad = this.nameInput.text.text - this.nameInput.setText("") - this.updateData(this.playerLoad) - } - })) - - this.statArea = new SoopyGuiElement().setLocation(0.05, 0.325, 0.9, 0.675).setScrollable(true) - this.pages[0].addChild(this.statArea) - - this.loadingElm = new BoxWithLoading().setLocation(0.35, 0.4, 0.3, 0.2) - this.errorElm = new BoxWithTextAndDescription().setLocation(0.2, 0.3, 0.6, 0.4).setText("Error!").setDesc("An error occured while loading the data!") - this.statArea.addChild(this.loadingElm) - - this.playerLoad = undefined - - this.finaliseLoading() - } - - updateData(player, profIn) { - this.closeSidebarPage() - - this.playerLoad = player - - this.statArea._scrollAmount = 0 - this.statArea.location.scroll.y.set(0, 100) - - this.statArea.clearChildren() - this.statArea.addChild(this.loadingElm) - - fetch("http://soopy.dev/api/v2/player/" + player).json(playerData => { - - if (player !== this.playerLoad) return - - if (!playerData.success) { - this.statArea.clearChildren() - this.statArea.addChild(this.errorElm) - this.errorElm.setText("§0" + playerData.error.name) - this.errorElm.setDesc("§0" + playerData.error.description) - return - } - this.statArea.clearChildren() - let nameElm = new SoopyTextElement().setText(playerData.data.stats.nameWithPrefix.replace(/§f/g, "§7")).setMaxTextScale(2).setLocation(0.1, 0.05, 0.5, 0.1) - this.statArea.addChild(nameElm) - this.statArea.addChild(this.loadingElm) - - fetch("http://soopy.dev/api/v2/player_skyblock/" + playerData.data.uuid).json(skyblockData => { - if (player !== this.playerLoad) return - - if (!skyblockData.success) { - this.statArea.clearChildren() - this.statArea.addChild(this.errorElm) - this.errorElm.setText("§0" + skyblockData.error.name) - this.errorElm.setDesc("§0" + skyblockData.error.description) - return - } - - let selectedProf = profIn || skyblockData.data.stats.bestProfileId - let profOptions = {} - Object.keys(skyblockData.data.profiles).forEach(p => { - profOptions[p] = skyblockData.data.profiles[p].stats.cute_name - }) - - let profileSelect = new Dropdown().setOptions(profOptions).setSelectedOption(selectedProf).setLocation(0.6, 0.05, 0.3, 0.1).addEvent(new SoopyContentChangeEvent().setHandler(newval => { - this.updateData(player, newval) - })) - this.statArea.addChild(profileSelect) - - fetch("http://soopy.dev/statgraphgenerations/" + playerData.data.uuid + "/" + selectedProf).json(graphData => { - if (player !== this.playerLoad) return - - new Thread(() => { - let y = 0.2 - Object.keys(graphData).forEach(type => { - let typeElm = new SoopyTextElement().setText("§0" + firstLetterWordCapital(type.replace("total", ""))).setMaxTextScale(2).setLocation(0.1, y, 0.8, 0.1) - this.statArea.addChild(typeElm) - y += 0.15 - let graph = Object.keys(graphData[type])[0] - renderLibs.getImage(graphData[type][graph], true) //load image synchronously into cache so it knows the height - let graphElm = new SoopyImageElement() - this.statArea.addChild(graphElm) - graphElm.setImage(graphData[type][graph]) - - graphElm.setLocation(0.1, y, 0.8, 0.25) - graphElm.loadHeightFromImage() - y += graphElm.location.size.y.get() + 0.05 - - if (Object.keys(graphData[type]).length > 1) { - graphElm.setLore(["Click to show more graphs"]) - graphElm.addEvent(new SoopyMouseClickEvent().setHandler(() => { - let sideBarElm = new SoopyGuiElement().setLocation(0, 0, 1, 1) - sideBarElm.scrollable = true - this.openSidebarPage(sideBarElm) - let y2 = 0.05 - new Thread(() => { - Object.keys(graphData[type]).forEach((graph, i) => { - if (i === 0) return - renderLibs.getImage(graphData[type][graph], true) //load image synchronously into cache so it knows the height - let graphElm = new SoopyImageElement() - sideBarElm.addChild(graphElm) - graphElm.setImage(graphData[type][graph]) - - graphElm.setLocation(0.1, y2, 0.8, 0.25) - graphElm.loadHeightFromImage() - y2 += graphElm.location.size.y.get() + 0.05 - }) - }).start() - - })) - } - - }) - }).start() - }) - }) - }) - } - - onOpen() { - this.playerLoad = Player.getName() - this.updateData(Player.getName()) - } -} - -module.exports = { - class: new StatHistoryGUI() -}
\ No newline at end of file diff --git a/features/statHistoryGui/metadata.json b/features/statHistoryGui/metadata.json deleted file mode 100644 index 9345e0e..0000000 --- a/features/statHistoryGui/metadata.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "Stat History GUI", - "description": "Gui for Stat History", - "isHidden": true, - "isTogglable": false, - "defaultEnabled": true, - "sortA": 0 -}
\ No newline at end of file |