diff options
Diffstat (limited to 'features/globalSettings/index.js')
-rw-r--r-- | features/globalSettings/index.js | 169 |
1 files changed, 156 insertions, 13 deletions
diff --git a/features/globalSettings/index.js b/features/globalSettings/index.js index 04e3a20..18a70a3 100644 --- a/features/globalSettings/index.js +++ b/features/globalSettings/index.js @@ -7,6 +7,11 @@ import ToggleSetting from "../settings/settingThings/toggle"; import firstLoadPages from "./firstLoadPages"; import GuiPage from "../soopyGui/GuiPage" import SoopyTextElement from "../../../guimanager/GuiElement/SoopyTextElement"; +import Notification from "../../../guimanager/Notification"; +import logger from "../../logger"; +const Files = Java.type("java.nio.file.Files") +const Paths = Java.type("java.nio.file.Paths") +const JavaString = Java.type("java.lang.String") class Hud extends Feature { constructor() { @@ -23,37 +28,175 @@ class Hud extends Feature { onEnable(){ this.apiKeySetting = new TextSetting("Api Key", "Your hypixel api key", "", "api_key", this, "Run /api new to load", true) this.verifyApiKey = new ButtonSetting("Verify api key", "Click this to make sure the api key is working", "verify_key", this, "Click!", this.verifyKey, undefined) + this.newApiKey = new ButtonSetting("Run /api new", "This is here so u dont need to exit and re-enter", "api_new_command", this, "Click!", this.apiNewCommand, undefined) + this.findApiKey = new ButtonSetting("Attempt to load api key from other mods", "This will scan other mods configs to attempt to find your key", "find_key", this, "Click!", this.findKey, undefined) + this.notifyNewVersion = new ToggleSetting("Notify when there is a new update", "Will notify you when there is a new version of soopyv2 avalible for download", true, "notify_update", this) //TODO: Make false by default when uploaded on ct website - // this.reportErrorsSetting = new ToggleSetting("Send module errors to soopy server", "This will allow me to more effectivly fix them", false, "privacy_send_errors", this) - // this.sendChatSetting = new ToggleSetting("Send (hashed) chat messages to soopy server", "This will allow the hide spam feature to detect messages that are spam", false, "privacy_send_chat", this) + this.reportErrorsSetting = new ToggleSetting("Send module errors to soopy server", "This will allow me to more effectivly fix them", false, "privacy_send_errors", this) + this.sendChatSetting = new ToggleSetting("Send (hashed) chat messages to soopy server", "This will allow the hide spam feature to detect messages that are spam", false, "privacy_send_chat", this) - // this.privacySettings = [this.reportErrorsSetting, this.sendChatSetting] + this.privacySettings = [this.reportErrorsSetting, this.sendChatSetting] - // this.GuiPage = new FirstLoadingPage(this) + this.GuiPage = new FirstLoadingPage(this) this.registerChat("&aYour new API key is &r&b${key}&r", this.newKey) - // new Thread(()=>{ - // Thread.sleep(1000) - // ChatLib.command("soopyv2 first_load_thing", true)//TODO: ONLY RUN ON FIRST INSTALL - // }).start() + new Thread(()=>{ + Thread.sleep(1000) //TODO: DO ON WORLDLOAD + ChatLib.command("soopyv2 first_load_thing", true)//TODO: ONLY RUN ON FIRST INSTALL + }).start() } - verifyKey(){ + findKey(){ + function verifyKey(key){ + // console.log(key) + if(key){ + try{ + var url = "https://api.hypixel.net/key?key=" + key + let data = JSON.parse(FileLib.getUrlContent(url)) + + // console.log(data) + + if(data.success){ + return true + }else{ + return false + } + }catch(e){ + return false + } + }else{ + return false + } + } + new Notification("Finding key...", []) + new Thread(()=>{ + + // NEU + try{ + let testKey = JSON.parse(new JavaString(Files.readAllBytes(Paths.get("./config/notenoughupdates/configNew.json")))).apiKey.apiKey + if(testKey){ + if(verifyKey(testKey)){ + this.module.apiKeySetting.setValue(testKey) + new Notification("§aSuccess!", ["Found api key in NotEnoughUpdates!"]) + return; + }else{ + logger.logMessage("Found invalid key in NotEnoughUpdates", 3) + } + } + }catch(_){} + + // SBE + // try{ + let testKey = JSON.parse(new JavaString(Files.readAllBytes(Paths.get("./config/SkyblockExtras.cfg")))).values.apiKey + if(testKey){ + if(verifyKey(testKey)){ + this.module.apiKeySetting.setValue(testKey) + new Notification("§aSuccess!", ["Found api key in SkyblockExtras!"]) + return; + }else{ + logger.logMessage("Found invalid key in SkyblockExtras", 3) + } + } + // }catch(_){} + // SKYTILS + try{ + let testKey2 = new JavaString(Files.readAllBytes(Paths.get("./config/skytils/config.toml"))) + let testKey = undefined + testKey2.split("\n").forEach(line=>{ + if(line.startsWith(" hypixel_api_key = \"")){ + testKey = line.split("\"")[1] + } + }) + if(testKey){ + if(verifyKey(testKey)){ + this.module.apiKeySetting.setValue(testKey) + new Notification("§aSuccess!", ["Found api key in Skytils!"]) + return; + }else{ + logger.logMessage("Found invalid key in Skytils", 3) + } + } + }catch(_){} + + // SOOPYADDONS DATA + try{ + let testKey = FileLib.read("soopyAddonsData", "apikey.txt") + if(testKey){ + if(verifyKey(testKey)){ + this.module.apiKeySetting.setValue(testKey) + new Notification("§aSuccess!", ["Found api key in old soopyaddons version!"]) + return; + }else{ + logger.logMessage("Found invalid key in soopyaddonsData", 3) + } + } + }catch(_){} + + // HypixelApiKeyManager + try{ + let testKey = JSON.parse(FileLib.read("HypixelApiKeyManager", "localdata.json")).key + if(testKey){ + if(verifyKey(testKey)){ + this.module.apiKeySetting.setValue(testKey) + new Notification("§aSuccess!", ["Found api key in HypixelApiKeyManager!"]) + return; + }else{ + logger.logMessage("Found invalid key in HypixelApiKeyManager", 3) + } + } + }catch(_){} + }).start() + } + + apiNewCommand(){ + ChatLib.command("api new") + } + + verifyKey(key){ + if(key){ + try{ + var url = "https://api.hypixel.net/key?key=" + key + let data = JSON.parse(FileLib.getUrlContent(url)) + + if(data.success){ + return true + }else{ + return false + } + }catch(e){ + return false + } + } if(this.module.apiKeySetting.getValue() == ""){ - ChatLib.chat("&c[SOOPY V2] You need to set an api key first!") + new Notification("§cError!", ["You need to set an api key first!"]) return } - var url = "https://api.hypixel.net/key?key=" + this.module.apiKeySetting.getValue() - ChatLib.chat("&c[SOOPY V2] The rest of checking is yet to be coded!") + new Thread(()=>{ + try{ + var url = "https://api.hypixel.net/key?key=" + this.module.apiKeySetting.getValue() + let data = JSON.parse(FileLib.getUrlContent(url)) + + if(data.success){ + new Notification("§aSuccess!", ["Your api key is valid!"]) + return + }else{ + new Notification("§cError!", ["Your api key is invalid!"]) + return + } + }catch(e){ + new Notification("§cError!", ["Your api key is invalid!"]) + return + } + }).start() } - newKey(key){ + newKey(key, event){ ChatLib.chat("&c[SOOPY V2] Copied api key!") this.apiKeySetting.setValue(key) } |