From 160ce2e72eef219bd349015b2e1fa43588425b4c Mon Sep 17 00:00:00 2001 From: Dark98 Date: Wed, 6 Oct 2021 15:09:18 +0100 Subject: [PATCH] Remove BDN Account Login/Features & AutoLoad "2006Scape" --- pom.xml | 6 +- src/main/java/org/parabot/Landing.java | 5 +- .../java/org/parabot/core/Configuration.java | 8 +- .../org/parabot/core/asm/hooks/HookFile.java | 13 -- .../java/org/parabot/core/forum/Account.java | 82 ----------- .../parabot/core/forum/AccountManager.java | 120 --------------- .../core/forum/AccountManagerAccess.java | 12 -- .../core/parsers/hooks/HookParser.java | 10 -- .../core/parsers/hooks/XMLHookParser.java | 2 +- .../core/parsers/scripts/BDNScripts.java | 70 --------- .../core/parsers/scripts/ScriptParser.java | 9 +- .../core/parsers/servers/PublicServers.java | 63 -------- .../core/parsers/servers/ServerParser.java | 9 +- .../java/org/parabot/core/ui/LoginUI.java | 25 +--- .../core/ui/components/VerboseLoader.java | 30 +--- .../environment/api/utils/PBPreferences.java | 111 -------------- .../scripts/executers/BDNScriptsExecuter.java | 95 ------------ .../executers/PublicServerExecuter.java | 137 ------------------ 18 files changed, 12 insertions(+), 795 deletions(-) delete mode 100644 src/main/java/org/parabot/core/forum/Account.java delete mode 100644 src/main/java/org/parabot/core/forum/AccountManager.java delete mode 100644 src/main/java/org/parabot/core/forum/AccountManagerAccess.java delete mode 100644 src/main/java/org/parabot/core/parsers/scripts/BDNScripts.java delete mode 100644 src/main/java/org/parabot/core/parsers/servers/PublicServers.java delete mode 100644 src/main/java/org/parabot/environment/scripts/executers/BDNScriptsExecuter.java delete mode 100644 src/main/java/org/parabot/environment/servers/executers/PublicServerExecuter.java diff --git a/pom.xml b/pom.xml index d448ed1..1340001 100755 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.parabot client - 2.8.2 + 3.0.0 jar @@ -78,7 +78,7 @@ - Parabot-V${version}${build.version} + Parabot-V${project.version}${build.version} src/main/resources @@ -197,7 +197,7 @@ parabot-maven Frontend Parabot Maven - ftp://maven.parabot.org/public_html/docs/${artifactId}/ + ftp://maven.parabot.org/public_html/docs/${project.artifactId}/ diff --git a/src/main/java/org/parabot/Landing.java b/src/main/java/org/parabot/Landing.java index 7be82f8..06466bd 100644 --- a/src/main/java/org/parabot/Landing.java +++ b/src/main/java/org/parabot/Landing.java @@ -4,7 +4,6 @@ import org.parabot.api.translations.TranslationHelper; import org.parabot.core.Context; import org.parabot.core.Core; import org.parabot.core.Directories; -import org.parabot.core.forum.AccountManager; import org.parabot.core.network.NetworkInterface; import org.parabot.core.network.proxy.ProxySocket; import org.parabot.core.network.proxy.ProxyType; @@ -60,7 +59,6 @@ public final class Landing { } Core.verbose(TranslationHelper.translate("VALIDATION_ACCOUNT_MANAGER")); - AccountManager.validate(); if (username != null && password != null) { new BotUI(username, password); @@ -70,6 +68,9 @@ public final class Landing { } Core.verbose(TranslationHelper.translate("STARTING_LOGIN_GUI")); + Core.setDebug(true); //offline mode + Directories.clearCache(); //clear cache + ServerSelector.initServer = "2006Scape"; new BotUI(null, null); } diff --git a/src/main/java/org/parabot/core/Configuration.java b/src/main/java/org/parabot/core/Configuration.java index b4f5fdc..5c170b5 100644 --- a/src/main/java/org/parabot/core/Configuration.java +++ b/src/main/java/org/parabot/core/Configuration.java @@ -8,16 +8,10 @@ import org.parabot.environment.api.utils.Version; * @author Everel */ public class Configuration extends org.parabot.api.Configuration { - public static final String LOGIN_SERVER = "http://bdn.parabot.org/api/v2/users/login"; - public static final String GET_SCRIPTS = "http://bdn.parabot.org/api/get.php?action=scripts_scripts&server="; - public static final String GET_SCRIPT = "http://bdn.parabot.org/api/get.php?action=scripts_script&id="; + public static final String GET_SERVER_PROVIDER_TYPE = "http://v3.bdn.parabot.org/api/bot/server/type?server=%s"; - public static final String GET_SERVER_PROVIDERS = "http://bdn.parabot.org/api/get.php?action=server_providers"; - public static final String GET_SERVER_PROVIDER = "http://v3.bdn.parabot.org/api/bot/download/provider?nightly=%s&server=%s"; public static final String SERVER_PROVIDER_INFO = "http://v3.bdn.parabot.org/api/bot/list/%s?latest=true"; - public static final String GET_SERVER_PROVIDER_INFO = "http://bdn.parabot.org/api/get.php?action=server_information&name="; public static final String GET_SERVER_SETTINGS = "http://bdn.parabot.org/api/get.php?action=get_settings"; - public static final String GET_BOT_VERSION = "http://bdn.parabot.org/api/v2/bot/version"; public static final String API_DOWNLOAD_BOT = "http://v3.bdn.parabot.org/api/bot/download/client"; public static final String DOWNLOAD_BOT = "http://bdn.parabot.org/versions/"; public static final String GET_RANDOMS = "http://v3.bdn.parabot.org/api/bot/download/randoms"; diff --git a/src/main/java/org/parabot/core/asm/hooks/HookFile.java b/src/main/java/org/parabot/core/asm/hooks/HookFile.java index 0746260..2405388 100644 --- a/src/main/java/org/parabot/core/asm/hooks/HookFile.java +++ b/src/main/java/org/parabot/core/asm/hooks/HookFile.java @@ -1,6 +1,5 @@ package org.parabot.core.asm.hooks; -import org.parabot.core.forum.AccountManager; import org.parabot.core.parsers.hooks.HookParser; import org.parabot.core.parsers.hooks.JSONHookParser; import org.parabot.core.parsers.hooks.XMLHookParser; @@ -35,18 +34,6 @@ public class HookFile { return WebUtil.getInputStream(url); } - public InputStream getInputStream(AccountManager manager) { - if (isLocal) { - return this.getInputStream(); - } else { - try { - return WebUtil.getConnection(url, "apikey=" + manager.getAccount().getApi()).getInputStream(); - } catch (IOException e) { - return null; - } - } - } - public HookParser getParser() { switch (type) { case TYPE_XML: diff --git a/src/main/java/org/parabot/core/forum/Account.java b/src/main/java/org/parabot/core/forum/Account.java deleted file mode 100644 index a70a0b9..0000000 --- a/src/main/java/org/parabot/core/forum/Account.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.parabot.core.forum; - -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; - -/** - * Class which holds parabot forum account user and pass, only specific classes - * have access to it unless it's a modified version of parabot intended to - * steal user information. - * - * @author Everel - */ -public class Account { - private final String username; - private final String password; - private String api; - - /** - * @param username - Forum account username - * @param password - Forum account password - */ - public Account(final String username, final String password) { - this.username = username; - this.password = password; - } - - public Account(String username, String password, String api) { - this.username = username; - this.password = password; - this.api = api; - } - - /** - * Gets user's parabot account name - * - * @return username. - */ - public String getUsername() { - return this.username; - } - - /** - * Gets user's parabot password - * - * @return password. - */ - public String getPassword() { - return this.password; - } - - /** - * Gets user's parabot account name - * - * @return username, already URL UTF-8 encoded. - */ - public String getURLUsername() { - try { - return URLEncoder.encode(this.username, "UTF-8"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - return null; - } - - /** - * Gets user's password - * - * @return password, already URL UTF-8 encoded. - */ - public String getURLPassword() { - try { - return URLEncoder.encode(this.password, "UTF-8"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - return null; - } - - public String getApi() { - return api; - } -} diff --git a/src/main/java/org/parabot/core/forum/AccountManager.java b/src/main/java/org/parabot/core/forum/AccountManager.java deleted file mode 100644 index 12dafd6..0000000 --- a/src/main/java/org/parabot/core/forum/AccountManager.java +++ /dev/null @@ -1,120 +0,0 @@ -package org.parabot.core.forum; - -import org.json.simple.JSONObject; -import org.parabot.core.Configuration; -import org.parabot.core.Context; -import org.parabot.core.Core; -import org.parabot.core.parsers.hooks.HookParser; -import org.parabot.core.parsers.scripts.BDNScripts; -import org.parabot.core.parsers.servers.PublicServers; -import org.parabot.core.ui.components.VerboseLoader; -import org.parabot.environment.api.utils.PBPreferences; -import org.parabot.environment.api.utils.WebUtil; -import org.parabot.environment.scripts.executers.BDNScriptsExecuter; -import org.parabot.environment.servers.executers.PublicServerExecuter; - -import java.io.BufferedReader; -import java.net.URL; -import java.net.URLEncoder; -import java.util.ArrayList; - -import javax.swing.JOptionPane; - -/** - * Handles logging in to parabot forum, only certain classes may use this class. - * - * @author Everel - */ -public final class AccountManager { - private static boolean validated; - private static AccountManager instance; - - private Account account; - - private AccountManager() { - - } - - public static final void validate() { - if (validated) { - return; - } - validated = true; - instance = new AccountManager(); - - Core.verbose("Initializing account manager accessors..."); - final ArrayList accessors = new ArrayList(); - accessors.add(BDNScripts.MANAGER_FETCHER); - accessors.add(VerboseLoader.MANAGER_FETCHER); - accessors.add(BDNScriptsExecuter.MANAGER_FETCHER); - accessors.add(PublicServers.MANAGER_FETCHER); - accessors.add(PublicServerExecuter.MANAGER_FETCHER); - accessors.add(PBPreferences.MANAGER_FETCHER); - accessors.add(HookParser.MANAGER_FETCHER); - - for (final AccountManagerAccess accessor : accessors) { - accessor.setManager(instance); - } - Core.verbose("Account managers initialized."); - } - - public final boolean isLoggedIn() { - return account != null; - } - - public final Account getAccount() { - return account; - } - - public final boolean login(final String user, final String pass, boolean requestTwoStep) { - if (account != null) { - throw new IllegalStateException("Already logged in."); - } - JSONObject result = null; - if (!requestTwoStep) { - try { - BufferedReader contents = WebUtil.getReader(WebUtil.getConnection( - new URL(Configuration.LOGIN_SERVER), - URLEncoder.encode(user, "UTF-8"), - URLEncoder.encode(pass, "UTF-8"))); - - result = (JSONObject) WebUtil.getJsonParser().parse(contents); - - } catch (Throwable t) { - t.printStackTrace(); - return false; - } - } else { - try { - String two = JOptionPane.showInputDialog("Please provide your two factor authentication code\nYou can find this in either your email or the app you've setup"); - if (two != null && two.length() > 0) { - String contents = WebUtil.getContents(Configuration.LOGIN_SERVER, - "username=" + URLEncoder.encode(user, "UTF-8") + "&password=" + URLEncoder.encode(pass, "UTF-8") + "&2fa=" + URLEncoder.encode(two, "UTF-8") - ); - result = (JSONObject) WebUtil.getJsonParser().parse(contents); - } - } catch (Throwable t) { - t.printStackTrace(); - return false; - } - } - - if (result != null) { - if (result.get("complete") != null) { - String api = (String) ((JSONObject) result.get("data")).get("api"); - account = new Account(user, pass, api); - Context.setUsername(user); - return true; - } else if (result.get("error") != null) { - String errorResult = (String) result.get("error"); - if (errorResult.equals("2fa") || errorResult.equals("2fae")) { - return login(user, pass, true); - } - Core.verbose(errorResult); - return false; - } - } - return false; - } - -} diff --git a/src/main/java/org/parabot/core/forum/AccountManagerAccess.java b/src/main/java/org/parabot/core/forum/AccountManagerAccess.java deleted file mode 100644 index 776b185..0000000 --- a/src/main/java/org/parabot/core/forum/AccountManagerAccess.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.parabot.core.forum; - -/** - * Gives access to account details - * - * @author Everel - */ -public interface AccountManagerAccess { - - void setManager(AccountManager manager); - -} diff --git a/src/main/java/org/parabot/core/parsers/hooks/HookParser.java b/src/main/java/org/parabot/core/parsers/hooks/HookParser.java index ae8fa0b..aa18d87 100644 --- a/src/main/java/org/parabot/core/parsers/hooks/HookParser.java +++ b/src/main/java/org/parabot/core/parsers/hooks/HookParser.java @@ -8,8 +8,6 @@ import org.parabot.core.asm.wrappers.Interface; import org.parabot.core.asm.wrappers.Invoker; import org.parabot.core.asm.wrappers.Setter; import org.parabot.core.asm.wrappers.Super; -import org.parabot.core.forum.AccountManager; -import org.parabot.core.forum.AccountManagerAccess; import java.util.ArrayList; import java.util.Collections; @@ -24,14 +22,6 @@ import java.util.Map; */ public abstract class HookParser { - protected static AccountManager manager; - public static final AccountManagerAccess MANAGER_FETCHER = new AccountManagerAccess() { - @Override - public final void setManager(AccountManager manager) { - HookParser.manager = manager; - } - }; - public HookParser(HookFile hookFile) { } diff --git a/src/main/java/org/parabot/core/parsers/hooks/XMLHookParser.java b/src/main/java/org/parabot/core/parsers/hooks/XMLHookParser.java index 81f2f43..03b7fe7 100644 --- a/src/main/java/org/parabot/core/parsers/hooks/XMLHookParser.java +++ b/src/main/java/org/parabot/core/parsers/hooks/XMLHookParser.java @@ -41,7 +41,7 @@ public class XMLHookParser extends HookParser { DocumentBuilderFactory dbFactory = DocumentBuilderFactory .newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); - doc = dBuilder.parse(hookFile.getInputStream(manager)); + doc = dBuilder.parse(hookFile.getInputStream()); doc.getDocumentElement().normalize(); if (!doc.getDocumentElement().getNodeName().equals("injector")) { throw new RuntimeException("Incorrect hook file."); diff --git a/src/main/java/org/parabot/core/parsers/scripts/BDNScripts.java b/src/main/java/org/parabot/core/parsers/scripts/BDNScripts.java deleted file mode 100644 index b13764c..0000000 --- a/src/main/java/org/parabot/core/parsers/scripts/BDNScripts.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.parabot.core.parsers.scripts; - -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; -import org.parabot.core.Configuration; -import org.parabot.core.Context; -import org.parabot.core.desc.ScriptDescription; -import org.parabot.core.forum.AccountManager; -import org.parabot.core.forum.AccountManagerAccess; -import org.parabot.environment.api.utils.WebUtil; -import org.parabot.environment.scripts.executers.BDNScriptsExecuter; - -import java.io.BufferedReader; -import java.net.URL; - -/** - * Parses scripts stored on the BDN of Parabot - * - * @author Paradox, Everel - */ -public class BDNScripts extends ScriptParser { - private static AccountManager manager; - - public static final AccountManagerAccess MANAGER_FETCHER = new AccountManagerAccess() { - - @Override - public final void setManager(AccountManager manager) { - BDNScripts.manager = manager; - } - - }; - - @Override - public void execute() { - if (!manager.isLoggedIn()) { - System.err.println("Not logged in..."); - return; - } - - JSONParser parser = new JSONParser(); - try { - BufferedReader br = WebUtil.getReader(new URL( - Configuration.GET_SCRIPTS + Context.getInstance().getServerProviderInfo().getServerName()), - manager.getAccount().getURLUsername(), manager.getAccount().getURLPassword()); - - String line; - - while ((line = br.readLine()) != null) { - JSONObject jsonObject = (JSONObject) parser.parse(line); - int bdnId = Integer.parseInt(String.valueOf(jsonObject.get("id"))); - String scriptName = String.valueOf(jsonObject.get("name")); - String author = String.valueOf(jsonObject.get("author")); - double version = Double.parseDouble(String.valueOf(jsonObject.get("version"))); - String category = String.valueOf(jsonObject.get("category")); - String description = String.valueOf(jsonObject.get("description")); - - final ScriptDescription desc = new ScriptDescription(scriptName, - author, category, version, description, - null, bdnId); - SCRIPT_CACHE.put(desc, new BDNScriptsExecuter(bdnId)); - - } - - br.close(); - - } catch (Throwable t) { - t.printStackTrace(); - } - } -} diff --git a/src/main/java/org/parabot/core/parsers/scripts/ScriptParser.java b/src/main/java/org/parabot/core/parsers/scripts/ScriptParser.java index cf9036d..371b392 100644 --- a/src/main/java/org/parabot/core/parsers/scripts/ScriptParser.java +++ b/src/main/java/org/parabot/core/parsers/scripts/ScriptParser.java @@ -23,14 +23,7 @@ public abstract class ScriptParser { public static ScriptDescription[] getDescriptions() { SCRIPT_CACHE.clear(); parsers.clear(); - if (Core.inLoadLocal()) { - parsers.add(new LocalJavaScripts()); - parsers.add(new BDNScripts()); - } else if (Core.inDebugMode()) { - parsers.add(new LocalJavaScripts()); - } else { - parsers.add(new BDNScripts()); - } + parsers.add(new LocalJavaScripts()); Core.verbose("Parsing scripts..."); for (final ScriptParser parser : parsers) { diff --git a/src/main/java/org/parabot/core/parsers/servers/PublicServers.java b/src/main/java/org/parabot/core/parsers/servers/PublicServers.java deleted file mode 100644 index f76ca81..0000000 --- a/src/main/java/org/parabot/core/parsers/servers/PublicServers.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.parabot.core.parsers.servers; - -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; -import org.parabot.core.Configuration; -import org.parabot.core.desc.ServerDescription; -import org.parabot.core.forum.AccountManager; -import org.parabot.core.forum.AccountManagerAccess; -import org.parabot.core.ui.utils.UILog; -import org.parabot.environment.api.utils.WebUtil; -import org.parabot.environment.servers.executers.PublicServerExecuter; - -import java.io.BufferedReader; -import java.net.URL; - -import javax.swing.JOptionPane; - -/** - * Parses servers hosted on Parabot - * - * @author Paradox, Everel - */ -public class PublicServers extends ServerParser { - - private static AccountManager manager; - - public static final AccountManagerAccess MANAGER_FETCHER = new AccountManagerAccess() { - - @Override - public final void setManager(AccountManager manager) { - PublicServers.manager = manager; - } - - }; - - @Override - public void execute() { - try { - BufferedReader br = WebUtil.getReader(new URL( - Configuration.GET_SERVER_PROVIDERS), manager.getAccount().getURLUsername(), manager.getAccount().getURLPassword()); - String line; - - JSONParser parser = new JSONParser(); - while ((line = br.readLine()) != null) { - - JSONObject jsonObject = (JSONObject) parser.parse(line); - String name = String.valueOf(jsonObject.get("name")); - String author = String.valueOf(jsonObject.get("author")); - double version = Double.parseDouble(String.valueOf(jsonObject.get("version"))); - - ServerDescription desc = new ServerDescription(name, - author, version); - SERVER_CACHE.put(desc, new PublicServerExecuter(name)); - } - - br.close(); - - } catch (Exception e) { - UILog.log("Error", "Failed to load public servers. Either disable your anti-virus or request support on the forums.", JOptionPane.ERROR_MESSAGE); - e.printStackTrace(); - } - } -} diff --git a/src/main/java/org/parabot/core/parsers/servers/ServerParser.java b/src/main/java/org/parabot/core/parsers/servers/ServerParser.java index 4ee3739..1fc374c 100644 --- a/src/main/java/org/parabot/core/parsers/servers/ServerParser.java +++ b/src/main/java/org/parabot/core/parsers/servers/ServerParser.java @@ -20,14 +20,7 @@ public abstract class ServerParser { public static final ServerDescription[] getDescriptions() { SERVER_CACHE.clear(); final ArrayList parsers = new ArrayList<>(); - if (Core.inLoadLocal()) { - parsers.add(new LocalServers()); - parsers.add(new PublicServers()); - } else if (Core.inDebugMode()) { - parsers.add(new LocalServers()); - } else { - parsers.add(new PublicServers()); - } + parsers.add(new LocalServers()); Core.verbose("Parsing server providers..."); for (final ServerParser parser : parsers) { diff --git a/src/main/java/org/parabot/core/ui/LoginUI.java b/src/main/java/org/parabot/core/ui/LoginUI.java index 75a68a1..6791082 100644 --- a/src/main/java/org/parabot/core/ui/LoginUI.java +++ b/src/main/java/org/parabot/core/ui/LoginUI.java @@ -2,7 +2,6 @@ package org.parabot.core.ui; import org.parabot.core.Configuration; import org.parabot.core.Core; -import org.parabot.core.forum.AccountManager; import org.parabot.core.ui.images.Images; import org.parabot.core.ui.utils.SwingUtil; import org.parabot.core.ui.utils.UILog; @@ -35,7 +34,6 @@ import javax.swing.JTextField; public class LoginUI extends JFrame { private static final long serialVersionUID = 2032832552863466297L; private static LoginUI instance; - private static AccountManager manager; private JTextField txtUsername; private JPasswordField txtPassword; @@ -149,31 +147,10 @@ public class LoginUI extends JFrame { public void attemptLogin() { String username = txtUsername.getText(); String password = new String(txtPassword.getPassword()); - - if (username.length() > 0 && password.length() > 0) { - if (manager.login(username, password, false)) { - Core.verbose("Logged in."); - instance.dispose(); - Core.verbose("Running server selector."); - ServerSelector.getInstance(); - } else { - Core.verbose("Failed to log in."); - UILog.log("Error", "Incorrect username or password. Have you tried logging into http://bdn.parabot.org/account/", JOptionPane.ERROR_MESSAGE); - } - } + } private void attempt(String user, String pass) { - Core.verbose("Logging in..."); - if (manager.login(user, pass, false)) { - Core.verbose("Logged in."); - instance.dispose(); - Core.verbose("Running server selector."); - ServerSelector.getInstance(); - } else { - Core.verbose("Failed to log in."); - UILog.log("Error", "Incorrect username or password. Have you tried logging into http://bdn.parabot.org/account/", JOptionPane.ERROR_MESSAGE); - } } diff --git a/src/main/java/org/parabot/core/ui/components/VerboseLoader.java b/src/main/java/org/parabot/core/ui/components/VerboseLoader.java index a55711b..a12464c 100755 --- a/src/main/java/org/parabot/core/ui/components/VerboseLoader.java +++ b/src/main/java/org/parabot/core/ui/components/VerboseLoader.java @@ -2,8 +2,6 @@ package org.parabot.core.ui.components; import org.parabot.core.Configuration; import org.parabot.core.Core; -import org.parabot.core.forum.AccountManager; -import org.parabot.core.forum.AccountManagerAccess; import org.parabot.core.io.ProgressListener; import org.parabot.core.ui.ServerSelector; import org.parabot.core.ui.fonts.Fonts; @@ -48,15 +46,6 @@ public class VerboseLoader extends JPanel implements ProgressListener { private static final int STATE_SERVER_SELECT = 2; private static VerboseLoader current; private static String state = "Initializing loader..."; - private static AccountManager manager; - public static final AccountManagerAccess MANAGER_FETCHER = new AccountManagerAccess() { - - @Override - public final void setManager(AccountManager manager) { - VerboseLoader.manager = manager; - } - - }; private final BufferedImage background; private final BufferedImage banner; private final BufferedImage loginBox; @@ -80,11 +69,7 @@ public class VerboseLoader extends JPanel implements ProgressListener { setDoubleBuffered(true); setOpaque(false); - if (username != null && password != null) { - if (Core.inDebugMode() || manager.login(username, password, false)) { - currentState = STATE_SERVER_SELECT; - } - } + currentState = STATE_SERVER_SELECT; //Force Server Select if (currentState == STATE_AUTHENTICATION) { addLoginPanel(); @@ -186,19 +171,6 @@ public class VerboseLoader extends JPanel implements ProgressListener { login.setAlignmentX(Box.CENTER_ALIGNMENT); login.setOpaque(false); - login.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (manager.login(userInput.getText(), passInput.getText(), false)) { - switchState(STATE_SERVER_SELECT); - } else { - Core.verbose("Failed to log in."); - UILog.log("Error", "Incorrect username or password. Have you tried logging into http://bdn.parabot.org/account/", JOptionPane.ERROR_MESSAGE); - } - } - - }); - loginPanel.add(Box.createRigidArea(new Dimension(0, 8))); loginPanel.add(usernameLabel); loginPanel.add(Box.createRigidArea(new Dimension(0, 4))); diff --git a/src/main/java/org/parabot/environment/api/utils/PBPreferences.java b/src/main/java/org/parabot/environment/api/utils/PBPreferences.java index 74bf5b6..62f6bb0 100644 --- a/src/main/java/org/parabot/environment/api/utils/PBPreferences.java +++ b/src/main/java/org/parabot/environment/api/utils/PBPreferences.java @@ -3,8 +3,6 @@ package org.parabot.environment.api.utils; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.ParseException; -import org.parabot.core.forum.AccountManager; -import org.parabot.core.forum.AccountManagerAccess; import java.io.IOException; import java.io.UnsupportedEncodingException; @@ -18,120 +16,11 @@ import java.util.Properties; */ public class PBPreferences { - private static AccountManager manager; - public static final AccountManagerAccess MANAGER_FETCHER = new AccountManagerAccess() { - @Override - public final void setManager(AccountManager manager) { - PBPreferences.manager = manager; - } - }; private final int scriptID; private Properties properties; public PBPreferences(int scriptID) { this.scriptID = scriptID; - this.updateSettings(); - } - - /** - * Change a setting - * - * @param key - * @param value - */ - public void adjustSettings(Object key, Object value) { - this.addSetting(key, value); - } - - /** - * Get a setting value - * - * @param key - * - * @return - */ - public Object getSetting(Object key) { - return this.properties.get(key); - } - - /** - * Get a setting value as string - * - * @param key - * - * @return - */ - public String getSetting(String key) { - return this.properties.getProperty(key); - } - - /** - * Remove a setting - * - * @param key - */ - public void removeSetting(Object key) { - try { - JSONObject result = (JSONObject) WebUtil.getJsonParser().parse( - WebUtil.getContents("http://bdn.parabot.org/api/v2/user/preferences/set/", - "apikey=" + manager.getAccount().getApi() + - "&key=" + URLEncoder.encode(String.valueOf(key), "UTF-8") + - "&script=" + scriptID - ) - ); - if ((boolean) result.get("result")) { - this.properties.remove(key); - } - } catch (ParseException | MalformedURLException | UnsupportedEncodingException e) { - e.printStackTrace(); - } - } - - /** - * Add a setting - * - * @param key - * @param value - */ - public void addSetting(Object key, Object value) { - try { - JSONObject result = (JSONObject) WebUtil.getJsonParser().parse( - WebUtil.getContents("http://bdn.parabot.org/api/v2/user/preferences/set/", - "apikey=" + manager.getAccount().getApi() + - "&key=" + URLEncoder.encode(String.valueOf(key), "UTF-8") + - "&value=" + URLEncoder.encode(String.valueOf(value), "UTF-8") + - "&script=" + scriptID - ) - ); - if ((boolean) result.get("result")) { - this.properties.put(key, value); - } - } catch (ParseException | MalformedURLException | UnsupportedEncodingException e) { - e.printStackTrace(); - } - } - - private void updateSettings() { - properties = new Properties(); - try { - JSONObject result = (JSONObject) WebUtil.getJsonParser().parse( - WebUtil.getContents("http://bdn.parabot.org/api/v2/user/preferences/" + scriptID, - "apikey=" + manager.getAccount().getApi()) - ); - - JSONArray resultArray; - if ((resultArray = ((JSONArray) result.get("result"))) != null) { - for (Object rObject : resultArray) { - JSONObject resultObject = (JSONObject) rObject; - for (Object map : resultObject.entrySet()) { - Map.Entry pairs = (Map.Entry) map; - properties.put(pairs.getKey(), pairs.getValue()); - } - } - } - } catch (IOException | ParseException e) { - e.printStackTrace(); - } } } diff --git a/src/main/java/org/parabot/environment/scripts/executers/BDNScriptsExecuter.java b/src/main/java/org/parabot/environment/scripts/executers/BDNScriptsExecuter.java deleted file mode 100644 index 997ba3f..0000000 --- a/src/main/java/org/parabot/environment/scripts/executers/BDNScriptsExecuter.java +++ /dev/null @@ -1,95 +0,0 @@ -package org.parabot.environment.scripts.executers; - -import org.parabot.core.Configuration; -import org.parabot.core.classpath.ClassPath; -import org.parabot.core.forum.AccountManager; -import org.parabot.core.forum.AccountManagerAccess; -import org.parabot.core.ui.utils.UILog; -import org.parabot.environment.api.utils.WebUtil; -import org.parabot.environment.scripts.Script; -import org.parabot.environment.scripts.loader.JavaScriptLoader; - -import java.lang.reflect.Constructor; -import java.net.URL; -import java.net.URLConnection; - -import javax.swing.JOptionPane; - -/** - * Loads a script from the BDN - * - * @author Everel - */ -public class BDNScriptsExecuter extends ScriptExecuter { - - private static AccountManager manager; - - public static final AccountManagerAccess MANAGER_FETCHER = new AccountManagerAccess() { - - @Override - public final void setManager(AccountManager manager) { - BDNScriptsExecuter.manager = manager; - } - - }; - - private int id = -1; - - public BDNScriptsExecuter(final int id) { - this.id = id; - } - - @Override - public void run(ThreadGroup tg) { - try { - final URLConnection urlConnection = WebUtil.getConnection(new URL( - Configuration.GET_SCRIPT + this.id), manager.getAccount().getURLUsername(), manager.getAccount().getURLPassword()); - - final String contentType = urlConnection.getHeaderField("Content-type"); - switch (contentType) { - case "text/html": - // failed to fetch script - UILog.log("Error", "Failed to load BDN script, error: [Page returned: " + WebUtil.getContents(urlConnection) + "]", JOptionPane.ERROR_MESSAGE); - break; - case "application/jar": - //// JAR LOADING PART //////// - // succesfull request, jar returned - final ClassPath classPath = new ClassPath(); - classPath.addJar(urlConnection); - - final JavaScriptLoader loader = new JavaScriptLoader(classPath); - final String[] scriptClasses = loader.getScriptClassNames(); - if (scriptClasses == null || scriptClasses.length == 0) { - UILog.log("Error", "Failed to load BDN script, error: [No script found in jar file.]", JOptionPane.ERROR_MESSAGE); - return; - } else if (scriptClasses.length > 1) { - UILog.log("Error", "Failed to load BDN script, error: [Multiple scripts found in jar file.]"); - return; - } - - final String className = scriptClasses[0]; - try { - final Class scriptClass = loader.loadClass(className); - final Constructor con = scriptClass.getConstructor(); - final Script script = (Script) con.newInstance(); - script.setScriptID(this.id); - super.finalize(tg, script); - - } catch (NoClassDefFoundError | ClassNotFoundException ignored) { - UILog.log("Error", "Failed to load BDN script, error: [This server provider does not support this script]", JOptionPane.ERROR_MESSAGE); - } catch (Throwable t) { - t.printStackTrace(); - UILog.log("Error", "Failed to load BDN script, post the stacktrace/error on the parabot forums.", JOptionPane.ERROR_MESSAGE); - } - //// END JAR LOADING //// - break; - default: - UILog.log("Error", "Failed to load BDN script, error: [Unknown content type: " + contentType + "]", JOptionPane.ERROR_MESSAGE); - break; - } - } catch (Throwable t) { - t.printStackTrace(); - UILog.log("Error", "Failed to load BDN script, post the stacktrace/error on the parabot forums.", JOptionPane.ERROR_MESSAGE); - } - } -} diff --git a/src/main/java/org/parabot/environment/servers/executers/PublicServerExecuter.java b/src/main/java/org/parabot/environment/servers/executers/PublicServerExecuter.java deleted file mode 100644 index de6fc65..0000000 --- a/src/main/java/org/parabot/environment/servers/executers/PublicServerExecuter.java +++ /dev/null @@ -1,137 +0,0 @@ -package org.parabot.environment.servers.executers; - -import org.parabot.core.Configuration; -import org.parabot.core.Context; -import org.parabot.core.Core; -import org.parabot.core.Directories; -import org.parabot.core.build.BuildPath; -import org.parabot.core.classpath.ClassPath; -import org.parabot.core.desc.ServerProviderInfo; -import org.parabot.core.forum.AccountManager; -import org.parabot.core.forum.AccountManagerAccess; -import org.parabot.core.ui.components.VerboseLoader; -import org.parabot.core.ui.utils.UILog; -import org.parabot.environment.api.utils.PBLocalPreferences; -import org.parabot.environment.api.utils.WebUtil; -import org.parabot.environment.servers.ServerProvider; -import org.parabot.environment.servers.loader.ServerLoader; - -import java.io.File; -import java.lang.reflect.Constructor; -import java.net.URL; - -import javax.swing.JOptionPane; - -/** - * Fetches a server provider from the Parabot BDN - * - * @author Everel - */ -public class PublicServerExecuter extends ServerExecuter { - private static AccountManager manager; - public static final AccountManagerAccess MANAGER_FETCHER = new AccountManagerAccess() { - - @Override - public final void setManager(AccountManager manager) { - PublicServerExecuter.manager = manager; - } - - }; - private final String cacheVersionKey = "cachedProviderVersion"; - private final String serverName; - private PBLocalPreferences settings; - - public PublicServerExecuter(final String serverName) { - this.serverName = serverName; - } - - @Override - public void run() { - try { - ServerProviderInfo serverProviderInfo = new ServerProviderInfo(new URL(Configuration.GET_SERVER_PROVIDER_INFO - + this.serverName), manager.getAccount().getURLUsername(), manager.getAccount().getURLPassword()); - - final File destination = new File(Directories.getCachePath(), - serverProviderInfo.getCRC32() + ".jar"); - final String jarUrl = String.format(Configuration.GET_SERVER_PROVIDER, Configuration.BOT_VERSION.isNightly(), serverName); - - Core.verbose("Downloading: " + jarUrl + " ..."); - - String providerVersion = serverProviderInfo.getProviderVersion(); - if (providerVersion == null) { - providerVersion = "error"; - } - - settings = new PBLocalPreferences(serverProviderInfo.getClientCRC32() + ".json"); - if (settings.getSetting(cacheVersionKey) != null) { - Core.verbose(String.format("Latest provider version: %s, local provider version: %s", settings.getSetting(cacheVersionKey), providerVersion)); - if (!settings.getSetting(cacheVersionKey).equals(providerVersion)) { - Core.verbose("Local provider outdated, clearing cache."); - Directories.clearCache(); - } - } else { - Core.verbose("No local provider version in settings, adding to settings file"); - } - - settings.addSetting(cacheVersionKey, providerVersion); - - if (destination.exists()) { - Core.verbose("Found cached server provider [CRC32: " + serverProviderInfo.getCRC32() + "]"); - } else { - WebUtil.downloadFile(new URL(jarUrl), destination, - VerboseLoader.get()); - Core.verbose("Server provider downloaded..."); - } - - final ClassPath classPath = new ClassPath(); - classPath.addJar(destination); - - BuildPath.add(destination.toURI().toURL()); - - ServerLoader serverLoader = new ServerLoader(classPath); - final String[] classNames = serverLoader.getServerClassNames(); - if (classNames == null || classNames.length == 0) { - UILog.log( - "Error", - "Failed to load server provider, error: [No provider found in jar file.]", - JOptionPane.ERROR_MESSAGE); - return; - } else if (classNames.length > 1) { - UILog.log( - "Error", - "Failed to load server provider, error: [Multiple providers found in jar file.]"); - return; - } - - final String className = classNames[0]; - try { - final Class providerClass = serverLoader - .loadClass(className); - final Constructor con = providerClass.getConstructor(); - final ServerProvider serverProvider = (ServerProvider) con - .newInstance(); - Context.getInstance(serverProvider).setProviderInfo(serverProviderInfo); - super.finalize(serverProvider, this.serverName); - } catch (NoClassDefFoundError | ClassNotFoundException ignored) { - UILog.log( - "Error", - "Failed to load server provider, error: [This server provider is not compitable with this version of parabot]", - JOptionPane.ERROR_MESSAGE); - } catch (Throwable t) { - t.printStackTrace(); - UILog.log( - "Error", - "Failed to load server provider, post the stacktrace/error on the parabot forums.", - JOptionPane.ERROR_MESSAGE); - } - - } catch (Exception e) { - e.printStackTrace(); - UILog.log( - "Error", - "Failed to load server provider, post the stacktrace/error on the parabot forums.", - JOptionPane.ERROR_MESSAGE); - } - - } -}