diff options
Diffstat (limited to 'src/features/globalSettings/firstLoadPages.js')
-rw-r--r-- | src/features/globalSettings/firstLoadPages.js | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/src/features/globalSettings/firstLoadPages.js b/src/features/globalSettings/firstLoadPages.js new file mode 100644 index 0000000..2975a69 --- /dev/null +++ b/src/features/globalSettings/firstLoadPages.js @@ -0,0 +1,135 @@ +import SoopyMouseClickEvent from "../../../guimanager/EventListener/SoopyMouseClickEvent"; +import ButtonWithArrow from "../../../guimanager/GuiElement/ButtonWithArrow"; +import SoopyGuiElement from "../../../guimanager/GuiElement/SoopyGuiElement"; +import SoopyTextElement from "../../../guimanager/GuiElement/SoopyTextElement"; +import Notification from "../../../guimanager/Notification"; +import FeatureManager from "../../featureClass/featureManager"; +import FirstLoadPage from "./firstLoadPage"; + +class WelcomePage extends FirstLoadPage { + constructor() { + super() + + this.addChild(new SoopyTextElement().setText("§0Welcome to SoopyV2!").setLocation(0.1, 0.05, 0.8, 0.1).setMaxTextScale(10)); + + this.addChild(new SoopyTextElement().setText("§7This menu will guide you through important settings").setLocation(0.1, 0.15, 0.8, 0.075).setMaxTextScale(10)); + // this.addChild(new SoopyTextElement().setText("§7First lets get privacy settings out of the way.").setLocation(0.1, 0.15,0.8,0.075).setMaxTextScale(10)); + + this.settingsArea = new SoopyGuiElement().setLocation(0.1, 0.25, 0.8, 0.75); + this.settingsArea.setScrollable(true) + + this.addChild(this.settingsArea); + } + + load() { + let y = 0 + + this.guiPage.mainThing.firstPageSettings.forEach(setting => { + setting = setting.getGuiObject() + + setting.location.location.y.set(y, 0) + + this.settingsArea.addChild(setting); + + y += 0.045 + setting.location.size.y.get() + }) + } +} +class ApiKeyPage extends FirstLoadPage { + constructor() { + super() + + this.addChild(new SoopyTextElement().setText("§0First lets setup your api key!").setLocation(0.1, 0.05, 0.8, 0.1).setMaxTextScale(10)); + + this.addChild(new SoopyTextElement().setText("§7You can skip this but some features may not work").setLocation(0.1, 0.15, 0.8, 0.075).setMaxTextScale(10)); + + this.settingsArea = new SoopyGuiElement().setLocation(0.1, 0.25, 0.8, 0.75); + this.settingsArea.setScrollable(true) + + this.addChild(this.settingsArea); + } + + load() { + let y = 0 + + let settings = [this.guiPage.mainThing.apiKeySetting, this.guiPage.mainThing.verifyApiKey, this.guiPage.mainThing.findApiKey, this.guiPage.mainThing.newApiKey] + settings.forEach(setting => { + setting = setting.getGuiObject() + + setting.location.location.y.set(y, 0) + + this.settingsArea.addChild(setting); + + y += 0.045 + setting.location.size.y.get() + }) + } +} + +class HowToOpenMenuPage extends FirstLoadPage { + constructor() { + super() + + this.addChild(new SoopyTextElement().setText("§0Your all set!").setLocation(0.1, 0.1, 0.8, 0.3).setMaxTextScale(10)); + + this.addChild(new SoopyTextElement().setText("§7To change any settings, or to access this menu again run §2/soopy§7.").setLocation(0.1, 0.3, 0.8, 0.1).setMaxTextScale(10)); + + let openSettingsButton = new ButtonWithArrow().setText("§0Open settings").setLocation(0.1, 0.5, 0.3, 0.2).setDirectionRight(false) + + openSettingsButton.addEvent(new SoopyMouseClickEvent().setHandler(() => { + ChatLib.command("soopyv2", true) + })) + + this.addChild(openSettingsButton); + + let closeButton = new ButtonWithArrow().setText("§0Close").setLocation(0.6, 0.5, 0.3, 0.2) + + closeButton.addEvent(new SoopyMouseClickEvent().setHandler(() => { + Client.currentGui.close() + })) + + this.addChild(closeButton); + + } +} + +class DisableFeatures extends FirstLoadPage { + constructor() { + super() + + this.addChild(new SoopyTextElement().setText("§0Lastly do you want to disable all features?").setLocation(0.1, 0.1, 0.8, 0.3).setMaxTextScale(10)); + + this.addChild(new SoopyTextElement().setText("§7(So you can only enable the ones you want)").setLocation(0.1, 0.3, 0.8, 0.1).setMaxTextScale(10)); + + let openSettingsButton = new ButtonWithArrow().setText("§0Disable all features").setLocation(0.35, 0.5, 0.3, 0.2) + + openSettingsButton.addEvent(new SoopyMouseClickEvent().setHandler(() => { + + new Thread(() => { + new Notification("Disabling features...", []) + Object.keys(FeatureManager.featureMetas).forEach((f) => { + let meta = FeatureManager.featureMetas[f] + + let isHidden = meta.isHidden + if (typeof isHidden === "string") { + return + } + if (isHidden) return + if (!meta.isTogglable) return + + FeatureManager.featureSettingsData[f].enabled = false + FeatureManager.featureSettingsDataLastUpdated = true + + if (FeatureManager.isFeatureLoaded(f)) { + FeatureManager.unloadFeature(f) + } + }) + new Notification("Disabled all features!", []) + }).start() + })) + + this.addChild(openSettingsButton); + + } +} + +export default [new WelcomePage(), new ApiKeyPage(), new DisableFeatures(), new HowToOpenMenuPage()]
\ No newline at end of file |