diff options
Diffstat (limited to 'features/changeLogGUI/index.js')
-rw-r--r-- | features/changeLogGUI/index.js | 257 |
1 files changed, 0 insertions, 257 deletions
diff --git a/features/changeLogGUI/index.js b/features/changeLogGUI/index.js deleted file mode 100644 index f9bf97d..0000000 --- a/features/changeLogGUI/index.js +++ /dev/null @@ -1,257 +0,0 @@ -/// <reference types="../../../CTAutocomplete" /> -/// <reference lib="es2015" /> -import SoopyGuiElement from "../../../guimanager/GuiElement/SoopyGuiElement"; -import SoopyTextElement from "../../../guimanager/GuiElement/SoopyTextElement"; -import Feature from "../../featureClass/class"; -import GuiPage from "../soopyGui/GuiPage"; -import SoopyMarkdownElement from '../../../guimanager/GuiElement/SoopyMarkdownElement.js'; -import metadata from "../../metadata"; -import ButtonWithArrow from "../../../guimanager/GuiElement/ButtonWithArrow"; -import SoopyMouseClickEvent from "../../../guimanager/EventListener/SoopyMouseClickEvent"; -import ProgressBar from "../../../guimanager/GuiElement/ProgressBar" -import SoopyRenderEvent from "../../../guimanager/EventListener/SoopyRenderEvent" -import { fetch } from "../../utils/networkUtils"; -import { numberWithCommas } from "../../utils/numberUtils"; -const File = Java.type("java.io.File") -const URL = Java.type("java.net.URL"); -const PrintStream = Java.type("java.io.PrintStream"); -const Byte = Java.type("java.lang.Byte"); -//global.soopyv2featuremanagerthing.features.changeLogGUI.class.ChangelogPage.downloadUpdate() -class ChangeLogGui extends Feature { - constructor() { - super() - } - - onEnable() { - this.initVariables() - - this.ChangelogPage = new ChangelogPage() - - this.latestAnnouncedVersion = this.ChangelogPage.currVersionId - - this.registerEvent("worldLoad", this.worldLoad) - - this.registerStep(false, 60 * 5, () => { - this.ChangelogPage.loadChangeLog() - }) - } - - worldLoad() { - if (this.ChangelogPage.downloadableVersion === -1) return - - - if (this.FeatureManager.features["globalSettings"] === undefined || this.FeatureManager.features["globalSettings"].class.alertAllUpdates === undefined) { - return - } - let alertBeta = this.FeatureManager.features["globalSettings"].class.alertAllUpdates.getValue() - - if (this.latestAnnouncedVersion < (alertBeta ? this.ChangelogPage.downloadableVersion : this.ChangelogPage.importantVersion)) { - let version = "" - this.ChangelogPage.changelogData.forEach(data => { - - if (this.ChangelogPage.downloadableVersion === data.versionId && this.ChangelogPage.downloadableVersion > this.ChangelogPage.currVersionId) { - //add button to download this version - version = data.version - } - }) - - ChatLib.chat("§r") - ChatLib.chat("&1" + ChatLib.getChatBreak("-").trim()) - ChatLib.chat(" &6New SoopyV2 Version is avalible (" + version + ")") - ChatLib.chat("§r§r") - new TextComponent(" &e[CLICK] &7- View changelog and download update").setHover("show_text", "&2Open changelog").setClick("run_command", "/soopyv2 changelog").chat() - ChatLib.chat("&1" + ChatLib.getChatBreak("-").trim()) - ChatLib.chat("§r§r§r") - - this.latestAnnouncedVersion = this.ChangelogPage.downloadableVersion - } - } - - initVariables() { - this.ChangelogPage = undefined - } - - onDisable() { - this.initVariables() - } -} - - -class ChangelogPage extends GuiPage { - constructor() { - super(9) - - this.name = "Changelog" - - this.pages = [this.newPage()] - - this.changelogData = [] - this.downloadableVersion = -1 - - this.importantVersion = -1 - - let changelogTitle = new SoopyTextElement().setText("§0Changelog").setMaxTextScale(3).setLocation(0.1, 0.05, 0.8, 0.1) - this.pages[0].addChild(changelogTitle) - - this.changelogArea = new SoopyGuiElement().setLocation(0.1, 0.2, 0.8, 0.8).setScrollable(true) - this.pages[0].addChild(this.changelogArea) - - //Update confirmation page - this.updatingSidebar = new SoopyGuiElement().setLocation(0, 0, 1, 1) - this.updatingSidebarConfirmPage = new SoopyGuiElement().setLocation(0, 0, 1, 1) - this.updatingSidebar.addChild(this.updatingSidebarConfirmPage) - - this.updateTitle = new SoopyTextElement().setText("§0Update to SoopyV2 ").setMaxTextScale(3).setLocation(0.1, 0.05, 0.8, 0.1) - this.updatingSidebarConfirmPage.addChild(this.updateTitle) - - // this.warningMessage = new SoopyMarkdownElement().setLocation(0.1, 0.2, 0.8, 0.8) - // this.warningMessage.setText(``) - // this.updatingSidebarConfirmPage.addChild(this.warningMessage) - - this.updateButton = new ButtonWithArrow().setText("§0Update").setLocation(0.3, 0.3, 0.4, 0.2) - this.updatingSidebarConfirmPage.addChild(this.updateButton) - - this.updatingSidebarConfirmPage.setScrollable(true) - - this.updateButton.addEvent(new SoopyRenderEvent().setHandler(() => { - this.updateButton.location.location.y.set(0.3, 0) - })) - this.updateButton.addEvent(new SoopyMouseClickEvent().setHandler(() => { - this.downloadUpdate() - })) - - this.updatingSidebarLoadingPage = new SoopyGuiElement().setLocation(1, 0, 1, 1) - this.updatingSidebar.addChild(this.updatingSidebarLoadingPage) - - let updatingTitle = new SoopyTextElement().setText("§0Updating...").setMaxTextScale(3).setLocation(0.1, 0.05, 0.8, 0.1) - this.updatingSidebarLoadingPage.addChild(updatingTitle) - - this.progressBar = new ProgressBar().setLocation(0.1, 0.2, 0.8, 0.1) - this.updatingSidebarLoadingPage.addChild(this.progressBar) - - this.currVersionId = metadata.versionId - - this.finaliseLoading() - - this.loadChangeLog() - } - - loadChangeLog() { - fetch("http://soopy.dev/api/soopyv2/changelog.json").json(data => { - - this.changelogData = data.changelog.reverse() - - this.downloadableVersion = data.downloadableVersion - this.importantVersion = data.importantVersion - - this.updateText() - }) - - } - - onOpen() { - this.loadChangeLog() - } - - showConfirmUpdatePage() { - let version = "" - this.changelogData.forEach(data => { - - if (this.downloadableVersion === data.versionId && this.downloadableVersion > this.currVersionId) { - //add button to download this version - version = data.version - } - }) - this.updateTitle.setText("§0Update to SoopyV2 " + version) - - this.updateButton.location.location.y.set(0.3, 0) - - this.openSidebarPage(this.updatingSidebar) - } - - downloadUpdate() { - new Thread(() => { - this.updatingSidebarConfirmPage.location.location.x.set(-1, 500) - this.updatingSidebarLoadingPage.location.location.x.set(0, 500) - - new File("./config/ChatTriggers/modules/SoopyAddonsTempDownload").mkdir() - - this.progressBar.setProgress(0.1) - - this.urlToFile("http://soopy.dev/api/soopyv2/downloadLatest.zip", "./config/ChatTriggers/modules/SoopyAddonsTempDownload/SoopyAddons.zip", 10000, 20000) - - this.progressBar.setProgress(0.5) - - FileLib.unzip("./config/ChatTriggers/modules/SoopyAddonsTempDownload/SoopyAddons.zip", "./config/ChatTriggers/modules/SoopyAddonsTempDownload/SoopyAddons/") - - this.progressBar.setProgress(0.75) - - FileLib.deleteDirectory(new File("./config/ChatTriggers/modules/SoopyV2")) - - this.progressBar.setProgress(0.9) - - new File("./config/ChatTriggers/modules/SoopyAddonsTempDownload/SoopyAddons/SoopyV2").renameTo(new File("./config/ChatTriggers/modules/SoopyV2")) - - FileLib.deleteDirectory(new File("./config/ChatTriggers/modules/SoopyAddonsTempDownload")) - - this.progressBar.setProgress(1) - - Client.currentGui.close() - - ChatLib.command("ct load", true) - }).start() - } - - urlToFile(url, destination, connecttimeout, readtimeout) { - const d = new File(destination); - d.getParentFile().mkdirs(); - const connection = new URL(url).openConnection(); - connection.setDoOutput(true); - connection.setConnectTimeout(connecttimeout); - connection.setReadTimeout(readtimeout); - const IS = connection.getInputStream(); - const FilePS = new PrintStream(destination); - let buf = new Packages.java.lang.reflect.Array.newInstance(Byte.TYPE, 65536); - let len; - while ((len = IS.read(buf)) > 0) { - FilePS.write(buf, 0, len); - } - IS.close(); - FilePS.close(); - } - - updateText() { - this.changelogArea.children = [] - - let height = 0 - - this.changelogData.forEach(data => { - - if (this.downloadableVersion === data.versionId && this.downloadableVersion > this.currVersionId) { - //add button to download this version - let button = new ButtonWithArrow().setText("§0Download this version").setLocation(0.7, height, 0.3, 0.1) - this.changelogArea.addChild(button) - - button.addEvent(new SoopyMouseClickEvent().setHandler(() => { - this.showConfirmUpdatePage() - })) - - height += 0.05 - } - - let changes = new SoopyMarkdownElement().setLocation(0, height, 1, 0) - - this.changelogArea.addChild(changes) - - changes.setText("# __" + data.version + "__" + (data.versionId === this.currVersionId ? " §7Current (" : " §7(") + numberWithCommas(data.users || 0) + " using)" + "\n" + data.description) - - height += changes.getHeight() - - height += 0.05 - }) - } -} - -module.exports = { - class: new ChangeLogGui() -}
\ No newline at end of file |