From 85440d8272449ff9dfde326a57f49bf7134ede44 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Wed, 27 Apr 2016 02:31:23 +0200 Subject: [PATCH 01/20] [TASK] Added unit test for mac address --- pom.xml | 5 +++ .../java/org/parabot/MacAddressUnitTest.java | 34 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 src/test/java/org/parabot/MacAddressUnitTest.java diff --git a/pom.xml b/pom.xml index 2fd0d1e..1bf4a9f 100644 --- a/pom.xml +++ b/pom.xml @@ -72,6 +72,11 @@ bugsnag 1.2.8 + + junit + junit + 4.11 + diff --git a/src/test/java/org/parabot/MacAddressUnitTest.java b/src/test/java/org/parabot/MacAddressUnitTest.java new file mode 100644 index 0000000..ba93ff1 --- /dev/null +++ b/src/test/java/org/parabot/MacAddressUnitTest.java @@ -0,0 +1,34 @@ +package org.parabot; + +import org.junit.Assert; +import org.junit.Test; +import org.parabot.core.network.NetworkInterface; + +import java.util.Arrays; + +/** + * @author JKetelaar + */ +public class MacAddressUnitTest { + + @Test + public void test(){ + String[] macString = new String[]{ + "19", + "5C", + "11", + "19", + "5C", + "11" + }; + NetworkInterface networkInterface = new NetworkInterface(); + + byte[] mac = new byte[6]; + for (int j = 0; j < 6; j++) { + mac[j] = Byte.parseByte(macString[j], 16); // parses a hex number + } + NetworkInterface.setMac(mac); + + Assert.assertArrayEquals(networkInterface.getHardwareAddress(), mac); + } +} From 6831424db47eaa01d2436b263872ad176489dc7a Mon Sep 17 00:00:00 2001 From: Emmastone Date: Tue, 17 May 2016 18:37:48 +0100 Subject: [PATCH 02/20] [BUGFIX] Minor issues with new Interface --- pom.xml | 2 +- .../core/ui/components/VerboseLoader.java | 23 +++++++++---------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/pom.xml b/pom.xml index 8d585f9..24cc3d4 100755 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.parabot client - 2.4.5 + 2.5 jar 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 c08e9a5..4756bb4 100755 --- a/src/main/java/org/parabot/core/ui/components/VerboseLoader.java +++ b/src/main/java/org/parabot/core/ui/components/VerboseLoader.java @@ -21,7 +21,7 @@ import java.awt.image.RescaleOp; /** * An informative JPanel which tells the user what bot is doing * - * @author Everel + * @author Everel, EmmaStone */ public class VerboseLoader extends JPanel implements ProgressListener { private static final long serialVersionUID = 7412412644921803896L; @@ -144,7 +144,6 @@ public class VerboseLoader extends JPanel implements ProgressListener { login.setOpaque(false); login.addActionListener(new ActionListener() { - @Override public void actionPerformed(ActionEvent e) { if (manager.login(userInput.getText(), passInput.getText(), false)) { @@ -157,17 +156,17 @@ public class VerboseLoader extends JPanel implements ProgressListener { }); - loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 8))); loginPanel.add(usernameLabel); - loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 4))); loginPanel.add(userInput); - loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 4))); loginPanel.add(passwordLabel); - loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 4))); loginPanel.add(passInput); - loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 2))); loginPanel.add(login); - loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 4))); add(loginPanel, new GridBagConstraints()); } @@ -205,10 +204,10 @@ public class VerboseLoader extends JPanel implements ProgressListener { g.setStroke(new BasicStroke(5)); g.setPaint(Color.WHITE); - g.draw(new Line2D.Float(0, 0, this.getWidth(), 0)); - g.draw(new Line2D.Float(0, 0, 0, 120)); - g.draw(new Line2D.Float(0, 120, this.getWidth(), 120)); - g.draw(new Line2D.Float(this.getWidth() - 6, 0, this.getWidth() - 6, 120)); + g.draw(new Line2D.Float(0, 1, this.getWidth(), 1)); //TOP + g.draw(new Line2D.Float(0, 0, 0, 120)); //LEFT + g.draw(new Line2D.Float(0, 120, this.getWidth(), 120)); //BOTTOM + g.draw(new Line2D.Float(this.getWidth() - 6, 0, this.getWidth() - 6, 120)); //RIGHT g.setColor(Color.white); From 18bc7b7070fcf7b0ede780445770c7707378dc11 Mon Sep 17 00:00:00 2001 From: Eric-Turner Date: Wed, 18 May 2016 06:13:18 -0400 Subject: [PATCH 03/20] Added cache removal menu option --- BotUI.java | 314 +++++++++++++++++++++++++++++++++++++++++++ Context.java | 372 +++++++++++++++++++++++++++++++++++++++++++++++++++ trash.png | Bin 0 -> 3615 bytes 3 files changed, 686 insertions(+) create mode 100644 BotUI.java create mode 100644 Context.java create mode 100644 trash.png diff --git a/BotUI.java b/BotUI.java new file mode 100644 index 0000000..7b170da --- /dev/null +++ b/BotUI.java @@ -0,0 +1,314 @@ +package org.parabot.core.ui; + +import org.parabot.core.Context; +import org.parabot.core.ui.components.GamePanel; +import org.parabot.core.ui.components.VerboseLoader; +import org.parabot.core.ui.images.Images; +import org.parabot.core.ui.utils.SwingUtil; +import org.parabot.environment.OperatingSystem; +import org.parabot.environment.scripts.Script; +import org.parabot.environment.scripts.randoms.Random; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +import java.io.File; +import java.util.ArrayList; + +/** + * The bot user interface + * + * @author Dane, Everel, Paradox + */ +public class BotUI extends JFrame implements ActionListener, ComponentListener, WindowListener { + + private static final long serialVersionUID = -2126184292879805519L; + private static BotUI instance; + private static JDialog dialog; + + private JMenuItem run, pause, stop, cacheClear; + private boolean runScript, pauseScript; + + public BotUI(String username, String password) { + if (instance != null) { + throw new IllegalStateException("BotUI already created"); + } + instance = this; + //WebLookAndFeel.install(); + JPopupMenu.setDefaultLightWeightPopupEnabled(false); + + setTitle("Parabot"); + setResizable(false); + setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + createMenu(); + + setLayout(new BorderLayout()); + addComponentListener(this); + addWindowListener(this); + + add(GamePanel.getInstance()); + GamePanel.getInstance().add(VerboseLoader.get(username, password), BorderLayout.CENTER); + add(Logger.getInstance(), BorderLayout.SOUTH); + + SwingUtil.setParabotIcons(this); + + pack(); + setLocationRelativeTo(null); + BotDialog.getInstance(this); + + if (!OperatingSystem.getOS().equals(OperatingSystem.WINDOWS)) { + BotDialog.getInstance().setVisible(false); + } + } + + public static BotUI getInstance() { + return instance; + } + + public static boolean deleteDirectory(File directory) { + if (directory.exists()) { + File[] files = directory.listFiles(); + if (files != null) { + for (int i = 0; i < files.length; i++) { + if (files[i].isDirectory()) { + deleteDirectory(files[i]); + } else { + files[i].delete(); + } + } + } + } + return (directory.delete()); + } + + public static void createDirectory(File directory) { + if (!directory.exists()) { + directory.mkdir(); + } + } + + private void createMenu() { + JMenuBar menuBar = new JMenuBar(); + + JMenu file = new JMenu("File"); + JMenu scripts = new JMenu("Script"); + JMenu features = new JMenu("Features"); + + JMenuItem screenshot = new JMenuItem("Create screenshot"); + JMenuItem proxy = new JMenuItem("Network"); + JMenuItem randoms = new JMenuItem("Randoms"); + JMenuItem dialog = new JCheckBoxMenuItem("Disable dialog"); + JMenuItem logger = new JCheckBoxMenuItem("Logger"); + + if (!OperatingSystem.getOS().equals(OperatingSystem.WINDOWS)) { + dialog.setSelected(true); + } + + JMenuItem explorer = new JMenuItem("Reflection explorer"); + JMenuItem exit = new JMenuItem("Exit"); + + run = new JMenuItem("Run"); + run.setIcon(new ImageIcon(Images.getResource("/storage/images/run.png"))); + + pause = new JMenuItem("Pause"); + pause.setEnabled(false); + pause.setIcon(new ImageIcon(Images.getResource("/storage/images/pause.png"))); + + stop = new JMenuItem("Stop"); + stop.setEnabled(false); + stop.setIcon(new ImageIcon(Images.getResource("/storage/images/stop.png"))); + + cacheClear = new JMenuItem("Clear cache"); + cacheClear.setIcon(new ImageIcon(Images.getResource("/storage/images/trash.png"))); + + screenshot.addActionListener(this); + proxy.addActionListener(this); + randoms.addActionListener(this); + dialog.addActionListener(this); + logger.addActionListener(this); + explorer.addActionListener(this); + exit.addActionListener(this); + cacheClear.addActionListener(this); + + run.addActionListener(this); + pause.addActionListener(this); + stop.addActionListener(this); + + file.add(screenshot); + file.add(proxy); + file.add(randoms); + file.add(dialog); + file.add(logger); + file.add(explorer); + file.add(exit); + + scripts.add(run); + scripts.add(pause); + scripts.add(stop); + + features.add(cacheClear); + + menuBar.add(file); + menuBar.add(scripts); + menuBar.add(features); + + + setJMenuBar(menuBar); + } + + @Override + public void actionPerformed(ActionEvent e) { + String command = e.getActionCommand(); + + switch (command) { + case "Create screenshot": + JOptionPane.showMessageDialog(this, "We are still working on this..."); + break; + case "Exit": + System.exit(0); + break; + case "Network": + NetworkUI.getInstance().setVisible(true); + break; + case "Randoms": + ArrayList randoms = new ArrayList<>(); + for (Random r : Context.getInstance().getRandomHandler().getRandoms()) { + randoms.add(r.getName()); + } + RandomUI.getInstance().openFrame(randoms); + break; + case "Reflection explorer": + new ReflectUI().setVisible(true); + break; + case "Run": + if (pauseScript) { + pauseScript = false; + pause.setEnabled(true); + run.setEnabled(false); + setScriptState(Script.STATE_RUNNING); + break; + } + new ScriptSelector().setVisible(true); + break; + case "Pause": + setScriptState(Script.STATE_PAUSE); + pause.setEnabled(false); + run.setEnabled(true); + pauseScript = true; + break; + case "Stop": + setScriptState(Script.STATE_STOPPED); + break; + case "Logger": + Logger.getInstance().setVisible(!Logger.getInstance().isVisible()); + BotUI.getInstance().pack(); + BotUI.getInstance().revalidate(); + if (!Logger.getInstance().isClearable()) { + Logger.getInstance().setClearable(); + } else if (Logger.getInstance().isClearable() && !Logger.getInstance().isVisible()) { + Logger.clearLogger(); + Logger.addMessage("Logger started", false); + } + break; + case "Disable dialog": + BotDialog.getInstance().setVisible(!dialog.isVisible()); + break; + case "Clear cache": + deleteDirectory(new File("C:/Users/Eric/Documents/Parabot/cache")); + createDirectory(new File("C:/Users/Eric/Documents/Parabot/cache")); + break; + default: + System.out.println("Invalid command: " + command); + } + } + + protected void setDialog(JDialog dialog) { + BotUI.dialog = dialog; + } + + @Override + public void componentMoved(ComponentEvent e) { + if (dialog == null || !isVisible()) { + return; + } + Point gameLocation = GamePanel.getInstance().getLocationOnScreen(); + dialog.setLocation(gameLocation.x, gameLocation.y); + } + + public void toggleRun() { + runScript = !runScript; + if (runScript) { + scriptRunning(); + } else { + scriptStopped(); + } + } + + private void scriptRunning() { + run.setEnabled(false); + pause.setEnabled(true); + stop.setEnabled(true); + } + + private void scriptStopped() { + run.setEnabled(true); + pause.setEnabled(false); + stop.setEnabled(false); + } + + private void setScriptState(int state) { + if (Context.getInstance().getRunningScript() != null) { + Context.getInstance().getRunningScript().setState(state); + } + } + + @Override + public void componentResized(ComponentEvent e) { + if (isVisible()) { + BotDialog.getInstance().setSize(getSize()); + } + } + + @Override + public void componentShown(ComponentEvent e) { + } + + @Override + public void componentHidden(ComponentEvent e) { + } + + @Override + public void windowActivated(WindowEvent arg0) { + } + + @Override + public void windowClosed(WindowEvent arg0) { + } + + @Override + public void windowClosing(WindowEvent e) { + } + + @Override + public void windowDeactivated(WindowEvent arg0) { + + } + + @Override + public void windowDeiconified(WindowEvent arg0) { + if (isVisible()) { + BotDialog.getInstance().setVisible(false); + BotDialog.getInstance().setVisible(true); + } + } + + @Override + public void windowIconified(WindowEvent arg0) { + + } + + @Override + public void windowOpened(WindowEvent arg0) { + } + +} diff --git a/Context.java b/Context.java new file mode 100644 index 0000000..532955c --- /dev/null +++ b/Context.java @@ -0,0 +1,372 @@ +package org.parabot.core; + +import org.json.simple.parser.JSONParser; +import org.parabot.core.asm.ASMClassLoader; +import org.parabot.core.classpath.ClassPath; +import org.parabot.core.desc.ServerProviderInfo; +import org.parabot.core.paint.PaintDebugger; +import org.parabot.core.parsers.hooks.HookParser; +import org.parabot.core.ui.BotDialog; +import org.parabot.core.ui.BotUI; +import org.parabot.core.ui.components.GamePanel; +import org.parabot.environment.api.interfaces.Paintable; +import org.parabot.environment.input.Keyboard; +import org.parabot.environment.input.Mouse; +import org.parabot.environment.scripts.Script; +import org.parabot.environment.scripts.randoms.RandomHandler; +import org.parabot.environment.scripts.uliratha.UlirathaClient; +import org.parabot.environment.servers.ServerProvider; + +import java.applet.Applet; +import java.awt.*; +import java.io.File; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.TimerTask; + +/** + * Game context + * + * @author Everel, JKetelaar, Matt + */ +public class Context { + public static final HashMap threadGroups = new HashMap(); + private static ArrayList paintables = new ArrayList(); + + private static Context instance; + private static String username; + + private ASMClassLoader classLoader; + private ClassPath classPath; + private ServerProvider serverProvider; + private Applet gameApplet; + private HookParser hookParser; + private Script runningScript; + private RandomHandler randomHandler; + private Object clientInstance; + private PaintDebugger paintDebugger; + private Mouse mouse; + private Keyboard keyboard; + private ServerProviderInfo providerInfo; + private UlirathaClient ulirathaClient; + private JSONParser jsonParser; + + private PrintStream defaultOut; + private PrintStream defaultErr = System.err; + + private Context(final ServerProvider serverProvider) { + threadGroups.put(Thread.currentThread().getThreadGroup(), this); + + System.setProperty("sun.java.command", ""); + this.serverProvider = serverProvider; + this.paintDebugger = new PaintDebugger(); + this.classPath = new ClassPath(); + this.classLoader = new ASMClassLoader(classPath); + this.randomHandler = new RandomHandler(); + + this.jsonParser = new JSONParser(); + + this.defaultOut = System.out; + this.defaultErr = System.err; + } + + public static Context getInstance(ServerProvider serverProvider) { + return instance == null ? instance = new Context(serverProvider) : instance; + } + + public static Context getInstance() { + return getInstance(null); + } + + /** + * Sets the main client instance + */ + public void setClientInstance(Object object) { + this.clientInstance = object; + } + + /** + * Sets the hook parser + * + * @param hookParser + */ + public void setHookParser(final HookParser hookParser) { + this.hookParser = hookParser; + } + + /** + * Sets the mouse + * + * @param mouse + */ + public void setMouse(final Mouse mouse) { + this.mouse = mouse; + } + + /** + * Gets the mouse + * + * @return mouse + */ + public Mouse getMouse() { + return mouse; + } + + + /** + * Sets the keyboard + * + * @param keyboard + */ + public void setKeyboard(final Keyboard keyboard) { + this.keyboard = keyboard; + } + + /** + * Gets the keyboard + * + * @return keyboard + */ + public Keyboard getKeyboard() { + return keyboard; + } + + /** + * ClassPath + * + * @return classpath + */ + public ClassPath getClassPath() { + return classPath; + } + + /** + * Determines if applet has been set + * + * @return true if set + */ + public boolean appletSet() { + return gameApplet != null; + } + + /** + * Gets game applet + * + * @return applet + */ + public Applet getApplet() { + return gameApplet; + } + + /** + * Loads the game + */ + public void load() { + BotUI.getInstance().getJMenuBar().remove(2); + Core.verbose("Parsing server jar..."); + serverProvider.init(); + serverProvider.parseJar(); + Core.verbose("Done."); + Core.verbose("Injecting hooks..."); + serverProvider.injectHooks(); + Core.verbose("Done."); + Core.verbose("Fetching game applet..."); + if(Core.shouldDump()) { + Core.verbose("Dumping injected client..."); + classPath.dump(new File(Directories.getWorkspace(), "dump.jar")); + Core.verbose("Done."); + } + Applet applet = serverProvider.fetchApplet(); + // if applet is null the server provider will call setApplet itself + if(applet != null) { + setApplet(applet); + } + } + + /** + * Sets the bot target applet + * @param applet + */ + public void setApplet(final Applet applet) { + gameApplet = applet; + + if (getClient() == null) { + setClientInstance(gameApplet); + } + + Core.verbose("Applet fetched."); + + final GamePanel panel = GamePanel.getInstance(); + final Dimension appletSize = serverProvider.getGameDimensions(); + + panel.setPreferredSize(appletSize); + serverProvider.addMenuItems(BotUI.getInstance().getJMenuBar()); + BotUI.getInstance().pack(); + BotUI.getInstance().validate(); + + panel.removeComponents(); + gameApplet.setSize(appletSize); + panel.add(gameApplet); + panel.validate(); + + gameApplet.init(); + gameApplet.start(); + + java.util.Timer t = new java.util.Timer(); + t.schedule(new TimerTask() { + @Override + public void run() { + gameApplet.setBounds(0, 0, appletSize.width, appletSize.height); + } + }, 1000); + + Core.verbose("Initializing mouse..."); + serverProvider.initMouse(); + Core.verbose("Done."); + Core.verbose("Initializing keyboard..."); + serverProvider.initKeyboard(); + Core.verbose("Done."); + + BotDialog.getInstance().validate(); + System.setOut(this.defaultOut); + System.setErr(this.defaultErr); + } + + /** + * Gets the server prodiver belonging to this context + * + * @return server provider + */ + public ServerProvider getServerProvider() { + return serverProvider; + } + + /** + * + * Sets provider info of this context + * + * @param providerInfo + */ + public void setProviderInfo(ServerProviderInfo providerInfo) { + this.providerInfo = providerInfo; + } + + /** + * Gets ServerProvider info + * Can be null if this is not a public server provider + * @return info about this provider + */ + public ServerProviderInfo getServerProviderInfo() { + return this.providerInfo; + } + + /** + * Gets class loader of server from this context + * + * @return class loader + */ + public ASMClassLoader getASMClassLoader() { + return classLoader; + } + + /** + * Adds a paintable instance to the paintables + * + * @param paintable + */ + public void addPaintable(Paintable paintable) { + paintables.add(paintable); + } + + /** + * Removes a paintable instance from the paintables + * + * @param paintable + */ + public void removePaintable(Paintable paintable) { + paintables.remove(paintable); + } + + /** + * Gets the paintable instances + * + * @return array of paintable instances + */ + public Paintable[] getPaintables() { + return paintables.toArray(new Paintable[paintables.size()]); + } + + /** + * The client debug painter + * + * @return debug painter + */ + public PaintDebugger getPaintDebugger() { + return paintDebugger; + } + + /** + * Gets the main/client instance + * + * @return instance of the the client + */ + public Object getClient() { + return this.clientInstance; + } + + /** + * Gets the hook parser, may be null if injection is not used or a custom hook parser is used for injecting + * + * @return hook parser + */ + public HookParser getHookParser() { + return hookParser; + } + + /** + * Sets the current running script, if a script stops it will call this method with a null argument + * + * @param script + */ + public void setRunningScript(final Script script) { + this.runningScript = script; + } + + /** + * Gets the current running script + * + * @return script + */ + public Script getRunningScript() { + return this.runningScript; + } + + /** + * Gets the random handler + * @return random handler + */ + public RandomHandler getRandomHandler() { + return this.randomHandler; + } + + public static String getUsername() { + return username; + } + + public UlirathaClient getUlirathaClient() { + return ulirathaClient; + } + + public void setUlirathaClient(UlirathaClient ulirathaClient) { + this.ulirathaClient = ulirathaClient; + } + + public static void setUsername(String username) { + Context.username = username; + } + + public JSONParser getJsonParser() { + return jsonParser; + } +} diff --git a/trash.png b/trash.png new file mode 100644 index 0000000000000000000000000000000000000000..53867b6548c245ee1d6b52ba1696eb075a313081 GIT binary patch literal 3615 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 literal 0 HcmV?d00001 From 5f83bf6e6a10133cfedd72f83949c770fd3deac8 Mon Sep 17 00:00:00 2001 From: Jeroen Ketelaar Date: Thu, 19 May 2016 12:50:02 +0200 Subject: [PATCH 04/20] [TASK] Updated version to V2.5 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 51ffee5..ef23a16 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # Parabot -Parabot V2.4. +Parabot V2.5. #### Website From 56afdcdb20db5f83438fddb518b76e1dd3a08234 Mon Sep 17 00:00:00 2001 From: Eric-Turner Date: Thu, 19 May 2016 06:50:49 -0400 Subject: [PATCH 05/20] Fixed my wrong file placement --- BotUI.java | 314 --------------- Context.java | 372 ------------------ src/main/java/org/parabot/core/Context.java | 1 + src/main/java/org/parabot/core/ui/BotUI.java | 41 +- .../core/ui/components/VerboseLoader.java | 23 +- .../java/org/parabot/core/ui/images/trash.png | Bin src/main/resources/storage/images/trash.png | Bin 0 -> 3615 bytes 7 files changed, 52 insertions(+), 699 deletions(-) delete mode 100644 BotUI.java delete mode 100644 Context.java rename trash.png => src/main/java/org/parabot/core/ui/images/trash.png (100%) create mode 100644 src/main/resources/storage/images/trash.png diff --git a/BotUI.java b/BotUI.java deleted file mode 100644 index 7b170da..0000000 --- a/BotUI.java +++ /dev/null @@ -1,314 +0,0 @@ -package org.parabot.core.ui; - -import org.parabot.core.Context; -import org.parabot.core.ui.components.GamePanel; -import org.parabot.core.ui.components.VerboseLoader; -import org.parabot.core.ui.images.Images; -import org.parabot.core.ui.utils.SwingUtil; -import org.parabot.environment.OperatingSystem; -import org.parabot.environment.scripts.Script; -import org.parabot.environment.scripts.randoms.Random; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.*; -import java.io.File; -import java.util.ArrayList; - -/** - * The bot user interface - * - * @author Dane, Everel, Paradox - */ -public class BotUI extends JFrame implements ActionListener, ComponentListener, WindowListener { - - private static final long serialVersionUID = -2126184292879805519L; - private static BotUI instance; - private static JDialog dialog; - - private JMenuItem run, pause, stop, cacheClear; - private boolean runScript, pauseScript; - - public BotUI(String username, String password) { - if (instance != null) { - throw new IllegalStateException("BotUI already created"); - } - instance = this; - //WebLookAndFeel.install(); - JPopupMenu.setDefaultLightWeightPopupEnabled(false); - - setTitle("Parabot"); - setResizable(false); - setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - createMenu(); - - setLayout(new BorderLayout()); - addComponentListener(this); - addWindowListener(this); - - add(GamePanel.getInstance()); - GamePanel.getInstance().add(VerboseLoader.get(username, password), BorderLayout.CENTER); - add(Logger.getInstance(), BorderLayout.SOUTH); - - SwingUtil.setParabotIcons(this); - - pack(); - setLocationRelativeTo(null); - BotDialog.getInstance(this); - - if (!OperatingSystem.getOS().equals(OperatingSystem.WINDOWS)) { - BotDialog.getInstance().setVisible(false); - } - } - - public static BotUI getInstance() { - return instance; - } - - public static boolean deleteDirectory(File directory) { - if (directory.exists()) { - File[] files = directory.listFiles(); - if (files != null) { - for (int i = 0; i < files.length; i++) { - if (files[i].isDirectory()) { - deleteDirectory(files[i]); - } else { - files[i].delete(); - } - } - } - } - return (directory.delete()); - } - - public static void createDirectory(File directory) { - if (!directory.exists()) { - directory.mkdir(); - } - } - - private void createMenu() { - JMenuBar menuBar = new JMenuBar(); - - JMenu file = new JMenu("File"); - JMenu scripts = new JMenu("Script"); - JMenu features = new JMenu("Features"); - - JMenuItem screenshot = new JMenuItem("Create screenshot"); - JMenuItem proxy = new JMenuItem("Network"); - JMenuItem randoms = new JMenuItem("Randoms"); - JMenuItem dialog = new JCheckBoxMenuItem("Disable dialog"); - JMenuItem logger = new JCheckBoxMenuItem("Logger"); - - if (!OperatingSystem.getOS().equals(OperatingSystem.WINDOWS)) { - dialog.setSelected(true); - } - - JMenuItem explorer = new JMenuItem("Reflection explorer"); - JMenuItem exit = new JMenuItem("Exit"); - - run = new JMenuItem("Run"); - run.setIcon(new ImageIcon(Images.getResource("/storage/images/run.png"))); - - pause = new JMenuItem("Pause"); - pause.setEnabled(false); - pause.setIcon(new ImageIcon(Images.getResource("/storage/images/pause.png"))); - - stop = new JMenuItem("Stop"); - stop.setEnabled(false); - stop.setIcon(new ImageIcon(Images.getResource("/storage/images/stop.png"))); - - cacheClear = new JMenuItem("Clear cache"); - cacheClear.setIcon(new ImageIcon(Images.getResource("/storage/images/trash.png"))); - - screenshot.addActionListener(this); - proxy.addActionListener(this); - randoms.addActionListener(this); - dialog.addActionListener(this); - logger.addActionListener(this); - explorer.addActionListener(this); - exit.addActionListener(this); - cacheClear.addActionListener(this); - - run.addActionListener(this); - pause.addActionListener(this); - stop.addActionListener(this); - - file.add(screenshot); - file.add(proxy); - file.add(randoms); - file.add(dialog); - file.add(logger); - file.add(explorer); - file.add(exit); - - scripts.add(run); - scripts.add(pause); - scripts.add(stop); - - features.add(cacheClear); - - menuBar.add(file); - menuBar.add(scripts); - menuBar.add(features); - - - setJMenuBar(menuBar); - } - - @Override - public void actionPerformed(ActionEvent e) { - String command = e.getActionCommand(); - - switch (command) { - case "Create screenshot": - JOptionPane.showMessageDialog(this, "We are still working on this..."); - break; - case "Exit": - System.exit(0); - break; - case "Network": - NetworkUI.getInstance().setVisible(true); - break; - case "Randoms": - ArrayList randoms = new ArrayList<>(); - for (Random r : Context.getInstance().getRandomHandler().getRandoms()) { - randoms.add(r.getName()); - } - RandomUI.getInstance().openFrame(randoms); - break; - case "Reflection explorer": - new ReflectUI().setVisible(true); - break; - case "Run": - if (pauseScript) { - pauseScript = false; - pause.setEnabled(true); - run.setEnabled(false); - setScriptState(Script.STATE_RUNNING); - break; - } - new ScriptSelector().setVisible(true); - break; - case "Pause": - setScriptState(Script.STATE_PAUSE); - pause.setEnabled(false); - run.setEnabled(true); - pauseScript = true; - break; - case "Stop": - setScriptState(Script.STATE_STOPPED); - break; - case "Logger": - Logger.getInstance().setVisible(!Logger.getInstance().isVisible()); - BotUI.getInstance().pack(); - BotUI.getInstance().revalidate(); - if (!Logger.getInstance().isClearable()) { - Logger.getInstance().setClearable(); - } else if (Logger.getInstance().isClearable() && !Logger.getInstance().isVisible()) { - Logger.clearLogger(); - Logger.addMessage("Logger started", false); - } - break; - case "Disable dialog": - BotDialog.getInstance().setVisible(!dialog.isVisible()); - break; - case "Clear cache": - deleteDirectory(new File("C:/Users/Eric/Documents/Parabot/cache")); - createDirectory(new File("C:/Users/Eric/Documents/Parabot/cache")); - break; - default: - System.out.println("Invalid command: " + command); - } - } - - protected void setDialog(JDialog dialog) { - BotUI.dialog = dialog; - } - - @Override - public void componentMoved(ComponentEvent e) { - if (dialog == null || !isVisible()) { - return; - } - Point gameLocation = GamePanel.getInstance().getLocationOnScreen(); - dialog.setLocation(gameLocation.x, gameLocation.y); - } - - public void toggleRun() { - runScript = !runScript; - if (runScript) { - scriptRunning(); - } else { - scriptStopped(); - } - } - - private void scriptRunning() { - run.setEnabled(false); - pause.setEnabled(true); - stop.setEnabled(true); - } - - private void scriptStopped() { - run.setEnabled(true); - pause.setEnabled(false); - stop.setEnabled(false); - } - - private void setScriptState(int state) { - if (Context.getInstance().getRunningScript() != null) { - Context.getInstance().getRunningScript().setState(state); - } - } - - @Override - public void componentResized(ComponentEvent e) { - if (isVisible()) { - BotDialog.getInstance().setSize(getSize()); - } - } - - @Override - public void componentShown(ComponentEvent e) { - } - - @Override - public void componentHidden(ComponentEvent e) { - } - - @Override - public void windowActivated(WindowEvent arg0) { - } - - @Override - public void windowClosed(WindowEvent arg0) { - } - - @Override - public void windowClosing(WindowEvent e) { - } - - @Override - public void windowDeactivated(WindowEvent arg0) { - - } - - @Override - public void windowDeiconified(WindowEvent arg0) { - if (isVisible()) { - BotDialog.getInstance().setVisible(false); - BotDialog.getInstance().setVisible(true); - } - } - - @Override - public void windowIconified(WindowEvent arg0) { - - } - - @Override - public void windowOpened(WindowEvent arg0) { - } - -} diff --git a/Context.java b/Context.java deleted file mode 100644 index 532955c..0000000 --- a/Context.java +++ /dev/null @@ -1,372 +0,0 @@ -package org.parabot.core; - -import org.json.simple.parser.JSONParser; -import org.parabot.core.asm.ASMClassLoader; -import org.parabot.core.classpath.ClassPath; -import org.parabot.core.desc.ServerProviderInfo; -import org.parabot.core.paint.PaintDebugger; -import org.parabot.core.parsers.hooks.HookParser; -import org.parabot.core.ui.BotDialog; -import org.parabot.core.ui.BotUI; -import org.parabot.core.ui.components.GamePanel; -import org.parabot.environment.api.interfaces.Paintable; -import org.parabot.environment.input.Keyboard; -import org.parabot.environment.input.Mouse; -import org.parabot.environment.scripts.Script; -import org.parabot.environment.scripts.randoms.RandomHandler; -import org.parabot.environment.scripts.uliratha.UlirathaClient; -import org.parabot.environment.servers.ServerProvider; - -import java.applet.Applet; -import java.awt.*; -import java.io.File; -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.TimerTask; - -/** - * Game context - * - * @author Everel, JKetelaar, Matt - */ -public class Context { - public static final HashMap threadGroups = new HashMap(); - private static ArrayList paintables = new ArrayList(); - - private static Context instance; - private static String username; - - private ASMClassLoader classLoader; - private ClassPath classPath; - private ServerProvider serverProvider; - private Applet gameApplet; - private HookParser hookParser; - private Script runningScript; - private RandomHandler randomHandler; - private Object clientInstance; - private PaintDebugger paintDebugger; - private Mouse mouse; - private Keyboard keyboard; - private ServerProviderInfo providerInfo; - private UlirathaClient ulirathaClient; - private JSONParser jsonParser; - - private PrintStream defaultOut; - private PrintStream defaultErr = System.err; - - private Context(final ServerProvider serverProvider) { - threadGroups.put(Thread.currentThread().getThreadGroup(), this); - - System.setProperty("sun.java.command", ""); - this.serverProvider = serverProvider; - this.paintDebugger = new PaintDebugger(); - this.classPath = new ClassPath(); - this.classLoader = new ASMClassLoader(classPath); - this.randomHandler = new RandomHandler(); - - this.jsonParser = new JSONParser(); - - this.defaultOut = System.out; - this.defaultErr = System.err; - } - - public static Context getInstance(ServerProvider serverProvider) { - return instance == null ? instance = new Context(serverProvider) : instance; - } - - public static Context getInstance() { - return getInstance(null); - } - - /** - * Sets the main client instance - */ - public void setClientInstance(Object object) { - this.clientInstance = object; - } - - /** - * Sets the hook parser - * - * @param hookParser - */ - public void setHookParser(final HookParser hookParser) { - this.hookParser = hookParser; - } - - /** - * Sets the mouse - * - * @param mouse - */ - public void setMouse(final Mouse mouse) { - this.mouse = mouse; - } - - /** - * Gets the mouse - * - * @return mouse - */ - public Mouse getMouse() { - return mouse; - } - - - /** - * Sets the keyboard - * - * @param keyboard - */ - public void setKeyboard(final Keyboard keyboard) { - this.keyboard = keyboard; - } - - /** - * Gets the keyboard - * - * @return keyboard - */ - public Keyboard getKeyboard() { - return keyboard; - } - - /** - * ClassPath - * - * @return classpath - */ - public ClassPath getClassPath() { - return classPath; - } - - /** - * Determines if applet has been set - * - * @return true if set - */ - public boolean appletSet() { - return gameApplet != null; - } - - /** - * Gets game applet - * - * @return applet - */ - public Applet getApplet() { - return gameApplet; - } - - /** - * Loads the game - */ - public void load() { - BotUI.getInstance().getJMenuBar().remove(2); - Core.verbose("Parsing server jar..."); - serverProvider.init(); - serverProvider.parseJar(); - Core.verbose("Done."); - Core.verbose("Injecting hooks..."); - serverProvider.injectHooks(); - Core.verbose("Done."); - Core.verbose("Fetching game applet..."); - if(Core.shouldDump()) { - Core.verbose("Dumping injected client..."); - classPath.dump(new File(Directories.getWorkspace(), "dump.jar")); - Core.verbose("Done."); - } - Applet applet = serverProvider.fetchApplet(); - // if applet is null the server provider will call setApplet itself - if(applet != null) { - setApplet(applet); - } - } - - /** - * Sets the bot target applet - * @param applet - */ - public void setApplet(final Applet applet) { - gameApplet = applet; - - if (getClient() == null) { - setClientInstance(gameApplet); - } - - Core.verbose("Applet fetched."); - - final GamePanel panel = GamePanel.getInstance(); - final Dimension appletSize = serverProvider.getGameDimensions(); - - panel.setPreferredSize(appletSize); - serverProvider.addMenuItems(BotUI.getInstance().getJMenuBar()); - BotUI.getInstance().pack(); - BotUI.getInstance().validate(); - - panel.removeComponents(); - gameApplet.setSize(appletSize); - panel.add(gameApplet); - panel.validate(); - - gameApplet.init(); - gameApplet.start(); - - java.util.Timer t = new java.util.Timer(); - t.schedule(new TimerTask() { - @Override - public void run() { - gameApplet.setBounds(0, 0, appletSize.width, appletSize.height); - } - }, 1000); - - Core.verbose("Initializing mouse..."); - serverProvider.initMouse(); - Core.verbose("Done."); - Core.verbose("Initializing keyboard..."); - serverProvider.initKeyboard(); - Core.verbose("Done."); - - BotDialog.getInstance().validate(); - System.setOut(this.defaultOut); - System.setErr(this.defaultErr); - } - - /** - * Gets the server prodiver belonging to this context - * - * @return server provider - */ - public ServerProvider getServerProvider() { - return serverProvider; - } - - /** - * - * Sets provider info of this context - * - * @param providerInfo - */ - public void setProviderInfo(ServerProviderInfo providerInfo) { - this.providerInfo = providerInfo; - } - - /** - * Gets ServerProvider info - * Can be null if this is not a public server provider - * @return info about this provider - */ - public ServerProviderInfo getServerProviderInfo() { - return this.providerInfo; - } - - /** - * Gets class loader of server from this context - * - * @return class loader - */ - public ASMClassLoader getASMClassLoader() { - return classLoader; - } - - /** - * Adds a paintable instance to the paintables - * - * @param paintable - */ - public void addPaintable(Paintable paintable) { - paintables.add(paintable); - } - - /** - * Removes a paintable instance from the paintables - * - * @param paintable - */ - public void removePaintable(Paintable paintable) { - paintables.remove(paintable); - } - - /** - * Gets the paintable instances - * - * @return array of paintable instances - */ - public Paintable[] getPaintables() { - return paintables.toArray(new Paintable[paintables.size()]); - } - - /** - * The client debug painter - * - * @return debug painter - */ - public PaintDebugger getPaintDebugger() { - return paintDebugger; - } - - /** - * Gets the main/client instance - * - * @return instance of the the client - */ - public Object getClient() { - return this.clientInstance; - } - - /** - * Gets the hook parser, may be null if injection is not used or a custom hook parser is used for injecting - * - * @return hook parser - */ - public HookParser getHookParser() { - return hookParser; - } - - /** - * Sets the current running script, if a script stops it will call this method with a null argument - * - * @param script - */ - public void setRunningScript(final Script script) { - this.runningScript = script; - } - - /** - * Gets the current running script - * - * @return script - */ - public Script getRunningScript() { - return this.runningScript; - } - - /** - * Gets the random handler - * @return random handler - */ - public RandomHandler getRandomHandler() { - return this.randomHandler; - } - - public static String getUsername() { - return username; - } - - public UlirathaClient getUlirathaClient() { - return ulirathaClient; - } - - public void setUlirathaClient(UlirathaClient ulirathaClient) { - this.ulirathaClient = ulirathaClient; - } - - public static void setUsername(String username) { - Context.username = username; - } - - public JSONParser getJsonParser() { - return jsonParser; - } -} diff --git a/src/main/java/org/parabot/core/Context.java b/src/main/java/org/parabot/core/Context.java index c895f1d..8cfd7b7 100644 --- a/src/main/java/org/parabot/core/Context.java +++ b/src/main/java/org/parabot/core/Context.java @@ -163,6 +163,7 @@ public class Context { * Loads the game */ public void load() { + BotUI.getInstance().getJMenuBar().remove(2); Core.verbose("Parsing server jar..."); serverProvider.init(); serverProvider.parseJar(); diff --git a/src/main/java/org/parabot/core/ui/BotUI.java b/src/main/java/org/parabot/core/ui/BotUI.java index 2d4bece..5c7041a 100644 --- a/src/main/java/org/parabot/core/ui/BotUI.java +++ b/src/main/java/org/parabot/core/ui/BotUI.java @@ -12,6 +12,7 @@ import org.parabot.environment.scripts.randoms.Random; import javax.swing.*; import java.awt.*; import java.awt.event.*; +import java.io.File; import java.util.ArrayList; /** @@ -25,7 +26,7 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, private static BotUI instance; private static JDialog dialog; - private JMenuItem run, pause, stop; + private JMenuItem run, pause, stop, cacheClear; private boolean runScript, pauseScript; public BotUI(String username, String password) { @@ -64,11 +65,34 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, return instance; } + public static boolean deleteDirectory(File directory) { + if (directory.exists()) { + File[] files = directory.listFiles(); + if (files != null) { + for (int i = 0; i < files.length; i++) { + if (files[i].isDirectory()) { + deleteDirectory(files[i]); + } else { + files[i].delete(); + } + } + } + } + return (directory.delete()); + } + + public static void createDirectory(File directory) { + if (!directory.exists()) { + directory.mkdir(); + } + } + private void createMenu() { JMenuBar menuBar = new JMenuBar(); JMenu file = new JMenu("File"); JMenu scripts = new JMenu("Script"); + JMenu features = new JMenu("Features"); JMenuItem screenshot = new JMenuItem("Create screenshot"); JMenuItem proxy = new JMenuItem("Network"); @@ -94,6 +118,9 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, stop.setEnabled(false); stop.setIcon(new ImageIcon(Images.getResource("/storage/images/stop.png"))); + cacheClear = new JMenuItem("Clear cache"); + cacheClear.setIcon(new ImageIcon(Images.getResource("/storage/images/trash.png"))); + screenshot.addActionListener(this); proxy.addActionListener(this); randoms.addActionListener(this); @@ -101,6 +128,7 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, logger.addActionListener(this); explorer.addActionListener(this); exit.addActionListener(this); + cacheClear.addActionListener(this); run.addActionListener(this); pause.addActionListener(this); @@ -118,8 +146,12 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, scripts.add(pause); scripts.add(stop); + features.add(cacheClear); + menuBar.add(file); menuBar.add(scripts); + menuBar.add(features); + setJMenuBar(menuBar); } @@ -173,7 +205,7 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, BotUI.getInstance().revalidate(); if (!Logger.getInstance().isClearable()) { Logger.getInstance().setClearable(); - } else if(Logger.getInstance().isClearable() && !Logger.getInstance().isVisible()) { + } else if (Logger.getInstance().isClearable() && !Logger.getInstance().isVisible()) { Logger.clearLogger(); Logger.addMessage("Logger started", false); } @@ -181,6 +213,10 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, case "Disable dialog": BotDialog.getInstance().setVisible(!dialog.isVisible()); break; + case "Clear cache": + deleteDirectory(new File("C:/Users/Eric/Documents/Parabot/cache")); + createDirectory(new File("C:/Users/Eric/Documents/Parabot/cache")); + break; default: System.out.println("Invalid command: " + command); } @@ -274,4 +310,5 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, @Override public void windowOpened(WindowEvent arg0) { } + } 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 4756bb4..c08e9a5 100755 --- a/src/main/java/org/parabot/core/ui/components/VerboseLoader.java +++ b/src/main/java/org/parabot/core/ui/components/VerboseLoader.java @@ -21,7 +21,7 @@ import java.awt.image.RescaleOp; /** * An informative JPanel which tells the user what bot is doing * - * @author Everel, EmmaStone + * @author Everel */ public class VerboseLoader extends JPanel implements ProgressListener { private static final long serialVersionUID = 7412412644921803896L; @@ -144,6 +144,7 @@ public class VerboseLoader extends JPanel implements ProgressListener { login.setOpaque(false); login.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { if (manager.login(userInput.getText(), passInput.getText(), false)) { @@ -156,17 +157,17 @@ public class VerboseLoader extends JPanel implements ProgressListener { }); - loginPanel.add(Box.createRigidArea(new Dimension(0, 8))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); loginPanel.add(usernameLabel); - loginPanel.add(Box.createRigidArea(new Dimension(0, 4))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); loginPanel.add(userInput); - loginPanel.add(Box.createRigidArea(new Dimension(0, 4))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); loginPanel.add(passwordLabel); - loginPanel.add(Box.createRigidArea(new Dimension(0, 4))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); loginPanel.add(passInput); - loginPanel.add(Box.createRigidArea(new Dimension(0, 2))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); loginPanel.add(login); - loginPanel.add(Box.createRigidArea(new Dimension(0, 4))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); add(loginPanel, new GridBagConstraints()); } @@ -204,10 +205,10 @@ public class VerboseLoader extends JPanel implements ProgressListener { g.setStroke(new BasicStroke(5)); g.setPaint(Color.WHITE); - g.draw(new Line2D.Float(0, 1, this.getWidth(), 1)); //TOP - g.draw(new Line2D.Float(0, 0, 0, 120)); //LEFT - g.draw(new Line2D.Float(0, 120, this.getWidth(), 120)); //BOTTOM - g.draw(new Line2D.Float(this.getWidth() - 6, 0, this.getWidth() - 6, 120)); //RIGHT + g.draw(new Line2D.Float(0, 0, this.getWidth(), 0)); + g.draw(new Line2D.Float(0, 0, 0, 120)); + g.draw(new Line2D.Float(0, 120, this.getWidth(), 120)); + g.draw(new Line2D.Float(this.getWidth() - 6, 0, this.getWidth() - 6, 120)); g.setColor(Color.white); diff --git a/trash.png b/src/main/java/org/parabot/core/ui/images/trash.png similarity index 100% rename from trash.png rename to src/main/java/org/parabot/core/ui/images/trash.png diff --git a/src/main/resources/storage/images/trash.png b/src/main/resources/storage/images/trash.png new file mode 100644 index 0000000000000000000000000000000000000000..53867b6548c245ee1d6b52ba1696eb075a313081 GIT binary patch literal 3615 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 literal 0 HcmV?d00001 From 243ffd849b806115fb0b27b2cb9c8e6cbf9bf205 Mon Sep 17 00:00:00 2001 From: Eric-Turner Date: Thu, 19 May 2016 07:04:45 -0400 Subject: [PATCH 06/20] Added changes requested --- src/main/java/org/parabot/core/ui/BotUI.java | 24 ++---------------- .../core/ui/components/VerboseLoader.java | 25 +++++++++---------- 2 files changed, 14 insertions(+), 35 deletions(-) diff --git a/src/main/java/org/parabot/core/ui/BotUI.java b/src/main/java/org/parabot/core/ui/BotUI.java index 5c7041a..0456cf9 100644 --- a/src/main/java/org/parabot/core/ui/BotUI.java +++ b/src/main/java/org/parabot/core/ui/BotUI.java @@ -1,6 +1,7 @@ package org.parabot.core.ui; import org.parabot.core.Context; +import org.parabot.core.Directories; import org.parabot.core.ui.components.GamePanel; import org.parabot.core.ui.components.VerboseLoader; import org.parabot.core.ui.images.Images; @@ -65,27 +66,7 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, return instance; } - public static boolean deleteDirectory(File directory) { - if (directory.exists()) { - File[] files = directory.listFiles(); - if (files != null) { - for (int i = 0; i < files.length; i++) { - if (files[i].isDirectory()) { - deleteDirectory(files[i]); - } else { - files[i].delete(); - } - } - } - } - return (directory.delete()); - } - public static void createDirectory(File directory) { - if (!directory.exists()) { - directory.mkdir(); - } - } private void createMenu() { JMenuBar menuBar = new JMenuBar(); @@ -214,8 +195,7 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, BotDialog.getInstance().setVisible(!dialog.isVisible()); break; case "Clear cache": - deleteDirectory(new File("C:/Users/Eric/Documents/Parabot/cache")); - createDirectory(new File("C:/Users/Eric/Documents/Parabot/cache")); + Directories.clearCache(); break; default: System.out.println("Invalid command: " + command); 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 c08e9a5..9d9e102 100755 --- a/src/main/java/org/parabot/core/ui/components/VerboseLoader.java +++ b/src/main/java/org/parabot/core/ui/components/VerboseLoader.java @@ -21,7 +21,7 @@ import java.awt.image.RescaleOp; /** * An informative JPanel which tells the user what bot is doing * - * @author Everel + * @author Everel, EmmaStone */ public class VerboseLoader extends JPanel implements ProgressListener { private static final long serialVersionUID = 7412412644921803896L; @@ -144,7 +144,6 @@ public class VerboseLoader extends JPanel implements ProgressListener { login.setOpaque(false); login.addActionListener(new ActionListener() { - @Override public void actionPerformed(ActionEvent e) { if (manager.login(userInput.getText(), passInput.getText(), false)) { @@ -157,17 +156,17 @@ public class VerboseLoader extends JPanel implements ProgressListener { }); - loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 8))); loginPanel.add(usernameLabel); - loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 4))); loginPanel.add(userInput); - loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 4))); loginPanel.add(passwordLabel); - loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 4))); loginPanel.add(passInput); - loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 2))); loginPanel.add(login); - loginPanel.add(Box.createRigidArea(new Dimension(0, 5))); + loginPanel.add(Box.createRigidArea(new Dimension(0, 4))); add(loginPanel, new GridBagConstraints()); } @@ -205,10 +204,10 @@ public class VerboseLoader extends JPanel implements ProgressListener { g.setStroke(new BasicStroke(5)); g.setPaint(Color.WHITE); - g.draw(new Line2D.Float(0, 0, this.getWidth(), 0)); - g.draw(new Line2D.Float(0, 0, 0, 120)); - g.draw(new Line2D.Float(0, 120, this.getWidth(), 120)); - g.draw(new Line2D.Float(this.getWidth() - 6, 0, this.getWidth() - 6, 120)); + g.draw(new Line2D.Float(0, 1, this.getWidth(), 1)); //TOP + g.draw(new Line2D.Float(0, 0, 0, 120)); //LEFT + g.draw(new Line2D.Float(0, 120, this.getWidth(), 120)); //BOTTOM + g.draw(new Line2D.Float(this.getWidth() - 6, 0, this.getWidth() - 6, 120)); //RIGHT g.setColor(Color.white); @@ -284,4 +283,4 @@ public class VerboseLoader extends JPanel implements ProgressListener { public void updateDownloadSpeed(double mbPerSecond) { progressBar.setText(String.format("(%.2fMB/s)", mbPerSecond)); } -} +} \ No newline at end of file From f2379a657ef96597374b21c8b67087bb77624b3d Mon Sep 17 00:00:00 2001 From: Jeroen Ketelaar Date: Fri, 20 May 2016 00:32:17 +0200 Subject: [PATCH 07/20] [BUGFIX] Temporary disabled uploading of artifacts --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index eb316e8..4a3e47b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,5 +20,3 @@ env: before_install: - chmod +x ./.travis/artifact-upload.sh - -after_success: sh ./.travis/artifact-upload.sh \ No newline at end of file From 389f2bf50e6d9e3b4988609b5e61c6b67fa145af Mon Sep 17 00:00:00 2001 From: Eric-Turner Date: Fri, 20 May 2016 02:35:05 -0400 Subject: [PATCH 08/20] Added screenshot feature --- .../java/org/parabot/core/Directories.java | 11 + src/main/java/org/parabot/core/ui/BotUI.java | 452 +++++++++--------- 2 files changed, 243 insertions(+), 220 deletions(-) diff --git a/src/main/java/org/parabot/core/Directories.java b/src/main/java/org/parabot/core/Directories.java index 8b04584..e4e5204 100644 --- a/src/main/java/org/parabot/core/Directories.java +++ b/src/main/java/org/parabot/core/Directories.java @@ -40,6 +40,7 @@ public class Directories { cached.put("Settings", new File(cached.get("Root"), "/Parabot/settings/")); cached.put("Servers", new File(cached.get("Root"), "/Parabot/servers/")); cached.put("Cache", new File(cached.get("Root"), "/Parabot/cache/")); + cached.put("Screenshots", new File(cached.get("Root"), "/Parabot/screenshots/")); Core.verbose("Directories cached."); clearCache(259200); @@ -192,6 +193,16 @@ public class Directories { return cached.get("Home"); } + + /** + * Returns the screenshot folder. + * + * @return + */ + public static File getScreenshotDir() { + return cached.get("Screenshots"); + } + /** * Validates all directories and makes them if necessary */ diff --git a/src/main/java/org/parabot/core/ui/BotUI.java b/src/main/java/org/parabot/core/ui/BotUI.java index 0456cf9..d65c7c5 100644 --- a/src/main/java/org/parabot/core/ui/BotUI.java +++ b/src/main/java/org/parabot/core/ui/BotUI.java @@ -7,13 +7,17 @@ import org.parabot.core.ui.components.VerboseLoader; import org.parabot.core.ui.images.Images; import org.parabot.core.ui.utils.SwingUtil; import org.parabot.environment.OperatingSystem; +import org.parabot.environment.api.utils.StringUtils; import org.parabot.environment.scripts.Script; import org.parabot.environment.scripts.randoms.Random; +import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.event.*; +import java.awt.image.BufferedImage; import java.io.File; +import java.io.IOException; import java.util.ArrayList; /** @@ -23,272 +27,280 @@ import java.util.ArrayList; */ public class BotUI extends JFrame implements ActionListener, ComponentListener, WindowListener { - private static final long serialVersionUID = -2126184292879805519L; - private static BotUI instance; - private static JDialog dialog; + private static final long serialVersionUID = -2126184292879805519L; + private static BotUI instance; + private static JDialog dialog; - private JMenuItem run, pause, stop, cacheClear; - private boolean runScript, pauseScript; + private JMenuItem run, pause, stop, cacheClear; + private boolean runScript, pauseScript; - public BotUI(String username, String password) { - if (instance != null) { - throw new IllegalStateException("BotUI already created"); - } - instance = this; - //WebLookAndFeel.install(); - JPopupMenu.setDefaultLightWeightPopupEnabled(false); + public BotUI(String username, String password) { + if (instance != null) { + throw new IllegalStateException("BotUI already created"); + } + instance = this; + //WebLookAndFeel.install(); + JPopupMenu.setDefaultLightWeightPopupEnabled(false); - setTitle("Parabot"); - setResizable(false); - setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - createMenu(); + setTitle("Parabot"); + setResizable(false); + setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + createMenu(); - setLayout(new BorderLayout()); - addComponentListener(this); - addWindowListener(this); + setLayout(new BorderLayout()); + addComponentListener(this); + addWindowListener(this); - add(GamePanel.getInstance()); - GamePanel.getInstance().add(VerboseLoader.get(username, password), BorderLayout.CENTER); - add(Logger.getInstance(), BorderLayout.SOUTH); + add(GamePanel.getInstance()); + GamePanel.getInstance().add(VerboseLoader.get(username, password), BorderLayout.CENTER); + add(Logger.getInstance(), BorderLayout.SOUTH); - SwingUtil.setParabotIcons(this); + SwingUtil.setParabotIcons(this); - pack(); - setLocationRelativeTo(null); - BotDialog.getInstance(this); + pack(); + setLocationRelativeTo(null); + BotDialog.getInstance(this); - if (!OperatingSystem.getOS().equals(OperatingSystem.WINDOWS)) { - BotDialog.getInstance().setVisible(false); - } - } + if (!OperatingSystem.getOS().equals(OperatingSystem.WINDOWS)) { + BotDialog.getInstance().setVisible(false); + } + } - public static BotUI getInstance() { - return instance; - } + public static BotUI getInstance() { + return instance; + } + private void createMenu() { + JMenuBar menuBar = new JMenuBar(); - private void createMenu() { - JMenuBar menuBar = new JMenuBar(); + JMenu file = new JMenu("File"); + JMenu scripts = new JMenu("Script"); + JMenu features = new JMenu("Features"); - JMenu file = new JMenu("File"); - JMenu scripts = new JMenu("Script"); - JMenu features = new JMenu("Features"); + JMenuItem screenshot = new JMenuItem("Create screenshot"); + JMenuItem proxy = new JMenuItem("Network"); + JMenuItem randoms = new JMenuItem("Randoms"); + JMenuItem dialog = new JCheckBoxMenuItem("Disable dialog"); + JMenuItem logger = new JCheckBoxMenuItem("Logger"); - JMenuItem screenshot = new JMenuItem("Create screenshot"); - JMenuItem proxy = new JMenuItem("Network"); - JMenuItem randoms = new JMenuItem("Randoms"); - JMenuItem dialog = new JCheckBoxMenuItem("Disable dialog"); - JMenuItem logger = new JCheckBoxMenuItem("Logger"); + if (!OperatingSystem.getOS().equals(OperatingSystem.WINDOWS)) { + dialog.setSelected(true); + } - if (!OperatingSystem.getOS().equals(OperatingSystem.WINDOWS)) { - dialog.setSelected(true); - } + JMenuItem explorer = new JMenuItem("Reflection explorer"); + JMenuItem exit = new JMenuItem("Exit"); - JMenuItem explorer = new JMenuItem("Reflection explorer"); - JMenuItem exit = new JMenuItem("Exit"); + run = new JMenuItem("Run"); + run.setIcon(new ImageIcon(Images.getResource("/storage/images/run.png"))); - run = new JMenuItem("Run"); - run.setIcon(new ImageIcon(Images.getResource("/storage/images/run.png"))); + pause = new JMenuItem("Pause"); + pause.setEnabled(false); + pause.setIcon(new ImageIcon(Images.getResource("/storage/images/pause.png"))); - pause = new JMenuItem("Pause"); - pause.setEnabled(false); - pause.setIcon(new ImageIcon(Images.getResource("/storage/images/pause.png"))); + stop = new JMenuItem("Stop"); + stop.setEnabled(false); + stop.setIcon(new ImageIcon(Images.getResource("/storage/images/stop.png"))); - stop = new JMenuItem("Stop"); - stop.setEnabled(false); - stop.setIcon(new ImageIcon(Images.getResource("/storage/images/stop.png"))); + cacheClear = new JMenuItem("Clear cache"); + cacheClear.setIcon(new ImageIcon(Images.getResource("/storage/images/trash.png"))); - cacheClear = new JMenuItem("Clear cache"); - cacheClear.setIcon(new ImageIcon(Images.getResource("/storage/images/trash.png"))); + screenshot.addActionListener(this); + proxy.addActionListener(this); + randoms.addActionListener(this); + dialog.addActionListener(this); + logger.addActionListener(this); + explorer.addActionListener(this); + exit.addActionListener(this); + cacheClear.addActionListener(this); - screenshot.addActionListener(this); - proxy.addActionListener(this); - randoms.addActionListener(this); - dialog.addActionListener(this); - logger.addActionListener(this); - explorer.addActionListener(this); - exit.addActionListener(this); - cacheClear.addActionListener(this); + run.addActionListener(this); + pause.addActionListener(this); + stop.addActionListener(this); - run.addActionListener(this); - pause.addActionListener(this); - stop.addActionListener(this); + file.add(screenshot); + file.add(proxy); + file.add(randoms); + file.add(dialog); + file.add(logger); + file.add(explorer); + file.add(exit); - file.add(screenshot); - file.add(proxy); - file.add(randoms); - file.add(dialog); - file.add(logger); - file.add(explorer); - file.add(exit); + scripts.add(run); + scripts.add(pause); + scripts.add(stop); - scripts.add(run); - scripts.add(pause); - scripts.add(stop); + features.add(cacheClear); - features.add(cacheClear); - - menuBar.add(file); - menuBar.add(scripts); - menuBar.add(features); + menuBar.add(file); + menuBar.add(scripts); + menuBar.add(features); - setJMenuBar(menuBar); - } + setJMenuBar(menuBar); + } - @Override - public void actionPerformed(ActionEvent e) { - String command = e.getActionCommand(); + @Override + public void actionPerformed(ActionEvent e) { + String command = e.getActionCommand(); - switch (command) { - case "Create screenshot": - JOptionPane.showMessageDialog(this, "We are still working on this..."); - break; - case "Exit": - System.exit(0); - break; - case "Network": - NetworkUI.getInstance().setVisible(true); - break; - case "Randoms": - ArrayList randoms = new ArrayList<>(); - for (Random r : Context.getInstance().getRandomHandler().getRandoms()) { - randoms.add(r.getName()); - } - RandomUI.getInstance().openFrame(randoms); - break; - case "Reflection explorer": - new ReflectUI().setVisible(true); - break; - case "Run": - if (pauseScript) { - pauseScript = false; - pause.setEnabled(true); - run.setEnabled(false); - setScriptState(Script.STATE_RUNNING); - break; - } - new ScriptSelector().setVisible(true); - break; - case "Pause": - setScriptState(Script.STATE_PAUSE); - pause.setEnabled(false); - run.setEnabled(true); - pauseScript = true; - break; - case "Stop": - setScriptState(Script.STATE_STOPPED); - break; - case "Logger": - Logger.getInstance().setVisible(!Logger.getInstance().isVisible()); - BotUI.getInstance().pack(); - BotUI.getInstance().revalidate(); - if (!Logger.getInstance().isClearable()) { - Logger.getInstance().setClearable(); - } else if (Logger.getInstance().isClearable() && !Logger.getInstance().isVisible()) { - Logger.clearLogger(); - Logger.addMessage("Logger started", false); - } - break; - case "Disable dialog": - BotDialog.getInstance().setVisible(!dialog.isVisible()); - break; - case "Clear cache": - Directories.clearCache(); - break; - default: - System.out.println("Invalid command: " + command); - } - } + switch (command) { + case "Create screenshot": + try { + Robot robot = new Robot(); + Rectangle parabotScreen = new Rectangle((int) getLocation().getX(), (int) getLocation().getY(), getWidth(), getHeight()); + BufferedImage image = robot.createScreenCapture(parabotScreen); + ImageIO.write(image, "png", new File(Directories.getScreenshotDir().getPath() + "/" + StringUtils.randomString(10) + ".png")); + } catch (IOException k) { + k.printStackTrace(); + } catch (AWTException e1) { + e1.printStackTrace(); + } + break; + case "Exit": + System.exit(0); + break; + case "Network": + NetworkUI.getInstance().setVisible(true); + break; + case "Randoms": + ArrayList randoms = new ArrayList<>(); + for (Random r : Context.getInstance().getRandomHandler().getRandoms()) { + randoms.add(r.getName()); + } + RandomUI.getInstance().openFrame(randoms); + break; + case "Reflection explorer": + new ReflectUI().setVisible(true); + break; + case "Run": + if (pauseScript) { + pauseScript = false; + pause.setEnabled(true); + run.setEnabled(false); + setScriptState(Script.STATE_RUNNING); + break; + } + new ScriptSelector().setVisible(true); + break; + case "Pause": + setScriptState(Script.STATE_PAUSE); + pause.setEnabled(false); + run.setEnabled(true); + pauseScript = true; + break; + case "Stop": + setScriptState(Script.STATE_STOPPED); + break; + case "Logger": + Logger.getInstance().setVisible(!Logger.getInstance().isVisible()); + BotUI.getInstance().pack(); + BotUI.getInstance().revalidate(); + if (!Logger.getInstance().isClearable()) { + Logger.getInstance().setClearable(); + } else if (Logger.getInstance().isClearable() && !Logger.getInstance().isVisible()) { + Logger.clearLogger(); + Logger.addMessage("Logger started", false); + } + break; + case "Disable dialog": + BotDialog.getInstance().setVisible(!dialog.isVisible()); + break; + case "Clear cache": + Directories.clearCache(); + break; + default: + System.out.println("Invalid command: " + command); + } + } - protected void setDialog(JDialog dialog) { - BotUI.dialog = dialog; - } + protected void setDialog(JDialog dialog) { + BotUI.dialog = dialog; + } - @Override - public void componentMoved(ComponentEvent e) { - if (dialog == null || !isVisible()) { - return; - } - Point gameLocation = GamePanel.getInstance().getLocationOnScreen(); - dialog.setLocation(gameLocation.x, gameLocation.y); - } + @Override + public void componentMoved(ComponentEvent e) { + if (dialog == null || !isVisible()) { + return; + } + Point gameLocation = GamePanel.getInstance().getLocationOnScreen(); + dialog.setLocation(gameLocation.x, gameLocation.y); + } - public void toggleRun() { - runScript = !runScript; - if (runScript) { - scriptRunning(); - } else { - scriptStopped(); - } - } + public void toggleRun() { + runScript = !runScript; + if (runScript) { + scriptRunning(); + } else { + scriptStopped(); + } + } - private void scriptRunning() { - run.setEnabled(false); - pause.setEnabled(true); - stop.setEnabled(true); - } + private void scriptRunning() { + run.setEnabled(false); + pause.setEnabled(true); + stop.setEnabled(true); + } - private void scriptStopped() { - run.setEnabled(true); - pause.setEnabled(false); - stop.setEnabled(false); - } + private void scriptStopped() { + run.setEnabled(true); + pause.setEnabled(false); + stop.setEnabled(false); + } - private void setScriptState(int state) { - if (Context.getInstance().getRunningScript() != null) { - Context.getInstance().getRunningScript().setState(state); - } - } + private void setScriptState(int state) { + if (Context.getInstance().getRunningScript() != null) { + Context.getInstance().getRunningScript().setState(state); + } + } - @Override - public void componentResized(ComponentEvent e) { - if (isVisible()) { - BotDialog.getInstance().setSize(getSize()); - } - } + @Override + public void componentResized(ComponentEvent e) { + if (isVisible()) { + BotDialog.getInstance().setSize(getSize()); + } + } - @Override - public void componentShown(ComponentEvent e) { - } + @Override + public void componentShown(ComponentEvent e) { + } - @Override - public void componentHidden(ComponentEvent e) { - } + @Override + public void componentHidden(ComponentEvent e) { + } - @Override - public void windowActivated(WindowEvent arg0) { - } + @Override + public void windowActivated(WindowEvent arg0) { + } - @Override - public void windowClosed(WindowEvent arg0) { - } + @Override + public void windowClosed(WindowEvent arg0) { + } - @Override - public void windowClosing(WindowEvent e) { - } + @Override + public void windowClosing(WindowEvent e) { + } - @Override - public void windowDeactivated(WindowEvent arg0) { + @Override + public void windowDeactivated(WindowEvent arg0) { - } + } - @Override - public void windowDeiconified(WindowEvent arg0) { - if (isVisible()) { - BotDialog.getInstance().setVisible(false); - BotDialog.getInstance().setVisible(true); - } - } + @Override + public void windowDeiconified(WindowEvent arg0) { + if (isVisible()) { + BotDialog.getInstance().setVisible(false); + BotDialog.getInstance().setVisible(true); + } + } - @Override - public void windowIconified(WindowEvent arg0) { + @Override + public void windowIconified(WindowEvent arg0) { - } + } - @Override - public void windowOpened(WindowEvent arg0) { - } + @Override + public void windowOpened(WindowEvent arg0) { + } } From bae14acfbab336d0e3d8a6d2dda7f74b84a2fdf3 Mon Sep 17 00:00:00 2001 From: Eric-Turner Date: Fri, 20 May 2016 05:55:28 -0400 Subject: [PATCH 09/20] Indentation fixerino --- src/main/java/org/parabot/core/Directories.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/parabot/core/Directories.java b/src/main/java/org/parabot/core/Directories.java index e4e5204..d18ae07 100644 --- a/src/main/java/org/parabot/core/Directories.java +++ b/src/main/java/org/parabot/core/Directories.java @@ -194,8 +194,8 @@ public class Directories { } - /** - * Returns the screenshot folder. + /** + * Returns the screenshot folder. * * @return */ From e8b1c28eae77eabd5344b32ff4ede4f6f50a1c1a Mon Sep 17 00:00:00 2001 From: Eric-Turner Date: Fri, 20 May 2016 05:59:30 -0400 Subject: [PATCH 10/20] Indention fix v2 --- src/main/java/org/parabot/core/ui/BotUI.java | 458 +++++++++---------- 1 file changed, 229 insertions(+), 229 deletions(-) diff --git a/src/main/java/org/parabot/core/ui/BotUI.java b/src/main/java/org/parabot/core/ui/BotUI.java index d65c7c5..04c993b 100644 --- a/src/main/java/org/parabot/core/ui/BotUI.java +++ b/src/main/java/org/parabot/core/ui/BotUI.java @@ -27,280 +27,280 @@ import java.util.ArrayList; */ public class BotUI extends JFrame implements ActionListener, ComponentListener, WindowListener { - private static final long serialVersionUID = -2126184292879805519L; - private static BotUI instance; - private static JDialog dialog; + private static final long serialVersionUID = -2126184292879805519L; + private static BotUI instance; + private static JDialog dialog; - private JMenuItem run, pause, stop, cacheClear; - private boolean runScript, pauseScript; + private JMenuItem run, pause, stop, cacheClear; + private boolean runScript, pauseScript; - public BotUI(String username, String password) { - if (instance != null) { - throw new IllegalStateException("BotUI already created"); - } - instance = this; - //WebLookAndFeel.install(); - JPopupMenu.setDefaultLightWeightPopupEnabled(false); + public BotUI(String username, String password) { + if (instance != null) { + throw new IllegalStateException("BotUI already created"); + } + instance = this; + //WebLookAndFeel.install(); + JPopupMenu.setDefaultLightWeightPopupEnabled(false); - setTitle("Parabot"); - setResizable(false); - setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - createMenu(); + setTitle("Parabot"); + setResizable(false); + setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + createMenu(); - setLayout(new BorderLayout()); - addComponentListener(this); - addWindowListener(this); + setLayout(new BorderLayout()); + addComponentListener(this); + addWindowListener(this); - add(GamePanel.getInstance()); - GamePanel.getInstance().add(VerboseLoader.get(username, password), BorderLayout.CENTER); - add(Logger.getInstance(), BorderLayout.SOUTH); + add(GamePanel.getInstance()); + GamePanel.getInstance().add(VerboseLoader.get(username, password), BorderLayout.CENTER); + add(Logger.getInstance(), BorderLayout.SOUTH); - SwingUtil.setParabotIcons(this); + SwingUtil.setParabotIcons(this); - pack(); - setLocationRelativeTo(null); - BotDialog.getInstance(this); + pack(); + setLocationRelativeTo(null); + BotDialog.getInstance(this); - if (!OperatingSystem.getOS().equals(OperatingSystem.WINDOWS)) { - BotDialog.getInstance().setVisible(false); - } - } + if (!OperatingSystem.getOS().equals(OperatingSystem.WINDOWS)) { + BotDialog.getInstance().setVisible(false); + } + } - public static BotUI getInstance() { - return instance; - } + public static BotUI getInstance() { + return instance; + } - private void createMenu() { - JMenuBar menuBar = new JMenuBar(); + private void createMenu() { + JMenuBar menuBar = new JMenuBar(); - JMenu file = new JMenu("File"); - JMenu scripts = new JMenu("Script"); - JMenu features = new JMenu("Features"); + JMenu file = new JMenu("File"); + JMenu scripts = new JMenu("Script"); + JMenu features = new JMenu("Features"); - JMenuItem screenshot = new JMenuItem("Create screenshot"); - JMenuItem proxy = new JMenuItem("Network"); - JMenuItem randoms = new JMenuItem("Randoms"); - JMenuItem dialog = new JCheckBoxMenuItem("Disable dialog"); - JMenuItem logger = new JCheckBoxMenuItem("Logger"); + JMenuItem screenshot = new JMenuItem("Create screenshot"); + JMenuItem proxy = new JMenuItem("Network"); + JMenuItem randoms = new JMenuItem("Randoms"); + JMenuItem dialog = new JCheckBoxMenuItem("Disable dialog"); + JMenuItem logger = new JCheckBoxMenuItem("Logger"); - if (!OperatingSystem.getOS().equals(OperatingSystem.WINDOWS)) { - dialog.setSelected(true); - } + if (!OperatingSystem.getOS().equals(OperatingSystem.WINDOWS)) { + dialog.setSelected(true); + } - JMenuItem explorer = new JMenuItem("Reflection explorer"); - JMenuItem exit = new JMenuItem("Exit"); + JMenuItem explorer = new JMenuItem("Reflection explorer"); + JMenuItem exit = new JMenuItem("Exit"); - run = new JMenuItem("Run"); - run.setIcon(new ImageIcon(Images.getResource("/storage/images/run.png"))); + run = new JMenuItem("Run"); + run.setIcon(new ImageIcon(Images.getResource("/storage/images/run.png"))); - pause = new JMenuItem("Pause"); - pause.setEnabled(false); - pause.setIcon(new ImageIcon(Images.getResource("/storage/images/pause.png"))); + pause = new JMenuItem("Pause"); + pause.setEnabled(false); + pause.setIcon(new ImageIcon(Images.getResource("/storage/images/pause.png"))); - stop = new JMenuItem("Stop"); - stop.setEnabled(false); - stop.setIcon(new ImageIcon(Images.getResource("/storage/images/stop.png"))); + stop = new JMenuItem("Stop"); + stop.setEnabled(false); + stop.setIcon(new ImageIcon(Images.getResource("/storage/images/stop.png"))); - cacheClear = new JMenuItem("Clear cache"); - cacheClear.setIcon(new ImageIcon(Images.getResource("/storage/images/trash.png"))); + cacheClear = new JMenuItem("Clear cache"); + cacheClear.setIcon(new ImageIcon(Images.getResource("/storage/images/trash.png"))); - screenshot.addActionListener(this); - proxy.addActionListener(this); - randoms.addActionListener(this); - dialog.addActionListener(this); - logger.addActionListener(this); - explorer.addActionListener(this); - exit.addActionListener(this); - cacheClear.addActionListener(this); + screenshot.addActionListener(this); + proxy.addActionListener(this); + randoms.addActionListener(this); + dialog.addActionListener(this); + logger.addActionListener(this); + explorer.addActionListener(this); + exit.addActionListener(this); + cacheClear.addActionListener(this); - run.addActionListener(this); - pause.addActionListener(this); - stop.addActionListener(this); + run.addActionListener(this); + pause.addActionListener(this); + stop.addActionListener(this); - file.add(screenshot); - file.add(proxy); - file.add(randoms); - file.add(dialog); - file.add(logger); - file.add(explorer); - file.add(exit); + file.add(screenshot); + file.add(proxy); + file.add(randoms); + file.add(dialog); + file.add(logger); + file.add(explorer); + file.add(exit); - scripts.add(run); - scripts.add(pause); - scripts.add(stop); + scripts.add(run); + scripts.add(pause); + scripts.add(stop); - features.add(cacheClear); + features.add(cacheClear); - menuBar.add(file); - menuBar.add(scripts); - menuBar.add(features); + menuBar.add(file); + menuBar.add(scripts); + menuBar.add(features); - setJMenuBar(menuBar); - } + setJMenuBar(menuBar); + } - @Override - public void actionPerformed(ActionEvent e) { - String command = e.getActionCommand(); + @Override + public void actionPerformed(ActionEvent e) { + String command = e.getActionCommand(); - switch (command) { - case "Create screenshot": - try { - Robot robot = new Robot(); - Rectangle parabotScreen = new Rectangle((int) getLocation().getX(), (int) getLocation().getY(), getWidth(), getHeight()); - BufferedImage image = robot.createScreenCapture(parabotScreen); - ImageIO.write(image, "png", new File(Directories.getScreenshotDir().getPath() + "/" + StringUtils.randomString(10) + ".png")); - } catch (IOException k) { - k.printStackTrace(); - } catch (AWTException e1) { - e1.printStackTrace(); - } - break; - case "Exit": - System.exit(0); - break; - case "Network": - NetworkUI.getInstance().setVisible(true); - break; - case "Randoms": - ArrayList randoms = new ArrayList<>(); - for (Random r : Context.getInstance().getRandomHandler().getRandoms()) { - randoms.add(r.getName()); - } - RandomUI.getInstance().openFrame(randoms); - break; - case "Reflection explorer": - new ReflectUI().setVisible(true); - break; - case "Run": - if (pauseScript) { - pauseScript = false; - pause.setEnabled(true); - run.setEnabled(false); - setScriptState(Script.STATE_RUNNING); - break; - } - new ScriptSelector().setVisible(true); - break; - case "Pause": - setScriptState(Script.STATE_PAUSE); - pause.setEnabled(false); - run.setEnabled(true); - pauseScript = true; - break; - case "Stop": - setScriptState(Script.STATE_STOPPED); - break; - case "Logger": - Logger.getInstance().setVisible(!Logger.getInstance().isVisible()); - BotUI.getInstance().pack(); - BotUI.getInstance().revalidate(); - if (!Logger.getInstance().isClearable()) { - Logger.getInstance().setClearable(); - } else if (Logger.getInstance().isClearable() && !Logger.getInstance().isVisible()) { - Logger.clearLogger(); - Logger.addMessage("Logger started", false); - } - break; - case "Disable dialog": - BotDialog.getInstance().setVisible(!dialog.isVisible()); - break; - case "Clear cache": - Directories.clearCache(); - break; - default: - System.out.println("Invalid command: " + command); - } - } + switch (command) { + case "Create screenshot": + try { + Robot robot = new Robot(); + Rectangle parabotScreen = new Rectangle((int) getLocation().getX(), (int) getLocation().getY(), getWidth(), getHeight()); + BufferedImage image = robot.createScreenCapture(parabotScreen); + ImageIO.write(image, "png", new File(Directories.getScreenshotDir().getPath() + "/" + StringUtils.randomString(10) + ".png")); + } catch (IOException k) { + k.printStackTrace(); + } catch (AWTException e1) { + e1.printStackTrace(); + } + break; + case "Exit": + System.exit(0); + break; + case "Network": + NetworkUI.getInstance().setVisible(true); + break; + case "Randoms": + ArrayList randoms = new ArrayList<>(); + for (Random r : Context.getInstance().getRandomHandler().getRandoms()) { + randoms.add(r.getName()); + } + RandomUI.getInstance().openFrame(randoms); + break; + case "Reflection explorer": + new ReflectUI().setVisible(true); + break; + case "Run": + if (pauseScript) { + pauseScript = false; + pause.setEnabled(true); + run.setEnabled(false); + setScriptState(Script.STATE_RUNNING); + break; + } + new ScriptSelector().setVisible(true); + break; + case "Pause": + setScriptState(Script.STATE_PAUSE); + pause.setEnabled(false); + run.setEnabled(true); + pauseScript = true; + break; + case "Stop": + setScriptState(Script.STATE_STOPPED); + break; + case "Logger": + Logger.getInstance().setVisible(!Logger.getInstance().isVisible()); + BotUI.getInstance().pack(); + BotUI.getInstance().revalidate(); + if (!Logger.getInstance().isClearable()) { + Logger.getInstance().setClearable(); + } else if (Logger.getInstance().isClearable() && !Logger.getInstance().isVisible()) { + Logger.clearLogger(); + Logger.addMessage("Logger started", false); + } + break; + case "Disable dialog": + BotDialog.getInstance().setVisible(!dialog.isVisible()); + break; + case "Clear cache": + Directories.clearCache(); + break; + default: + System.out.println("Invalid command: " + command); + } + } - protected void setDialog(JDialog dialog) { - BotUI.dialog = dialog; - } + protected void setDialog(JDialog dialog) { + BotUI.dialog = dialog; + } - @Override - public void componentMoved(ComponentEvent e) { - if (dialog == null || !isVisible()) { - return; - } - Point gameLocation = GamePanel.getInstance().getLocationOnScreen(); - dialog.setLocation(gameLocation.x, gameLocation.y); - } + @Override + public void componentMoved(ComponentEvent e) { + if (dialog == null || !isVisible()) { + return; + } + Point gameLocation = GamePanel.getInstance().getLocationOnScreen(); + dialog.setLocation(gameLocation.x, gameLocation.y); + } - public void toggleRun() { - runScript = !runScript; - if (runScript) { - scriptRunning(); - } else { - scriptStopped(); - } - } + public void toggleRun() { + runScript = !runScript; + if (runScript) { + scriptRunning(); + } else { + scriptStopped(); + } + } - private void scriptRunning() { - run.setEnabled(false); - pause.setEnabled(true); - stop.setEnabled(true); - } + private void scriptRunning() { + run.setEnabled(false); + pause.setEnabled(true); + stop.setEnabled(true); + } - private void scriptStopped() { - run.setEnabled(true); - pause.setEnabled(false); - stop.setEnabled(false); - } + private void scriptStopped() { + run.setEnabled(true); + pause.setEnabled(false); + stop.setEnabled(false); + } - private void setScriptState(int state) { - if (Context.getInstance().getRunningScript() != null) { - Context.getInstance().getRunningScript().setState(state); - } - } + private void setScriptState(int state) { + if (Context.getInstance().getRunningScript() != null) { + Context.getInstance().getRunningScript().setState(state); + } + } - @Override - public void componentResized(ComponentEvent e) { - if (isVisible()) { - BotDialog.getInstance().setSize(getSize()); - } - } + @Override + public void componentResized(ComponentEvent e) { + if (isVisible()) { + BotDialog.getInstance().setSize(getSize()); + } + } - @Override - public void componentShown(ComponentEvent e) { - } + @Override + public void componentShown(ComponentEvent e) { + } - @Override - public void componentHidden(ComponentEvent e) { - } + @Override + public void componentHidden(ComponentEvent e) { + } - @Override - public void windowActivated(WindowEvent arg0) { - } + @Override + public void windowActivated(WindowEvent arg0) { + } - @Override - public void windowClosed(WindowEvent arg0) { - } + @Override + public void windowClosed(WindowEvent arg0) { + } - @Override - public void windowClosing(WindowEvent e) { - } + @Override + public void windowClosing(WindowEvent e) { + } - @Override - public void windowDeactivated(WindowEvent arg0) { + @Override + public void windowDeactivated(WindowEvent arg0) { - } + } - @Override - public void windowDeiconified(WindowEvent arg0) { - if (isVisible()) { - BotDialog.getInstance().setVisible(false); - BotDialog.getInstance().setVisible(true); - } - } + @Override + public void windowDeiconified(WindowEvent arg0) { + if (isVisible()) { + BotDialog.getInstance().setVisible(false); + BotDialog.getInstance().setVisible(true); + } + } - @Override - public void windowIconified(WindowEvent arg0) { + @Override + public void windowIconified(WindowEvent arg0) { - } + } - @Override - public void windowOpened(WindowEvent arg0) { - } + @Override + public void windowOpened(WindowEvent arg0) { + } -} +} \ No newline at end of file From df6a34420f409f3921c28aaad643c615a249fe95 Mon Sep 17 00:00:00 2001 From: Eric-Turner Date: Fri, 20 May 2016 06:24:36 -0400 Subject: [PATCH 11/20] Merged the two stacktraces --- src/main/java/org/parabot/core/ui/BotUI.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/org/parabot/core/ui/BotUI.java b/src/main/java/org/parabot/core/ui/BotUI.java index 04c993b..3a0d669 100644 --- a/src/main/java/org/parabot/core/ui/BotUI.java +++ b/src/main/java/org/parabot/core/ui/BotUI.java @@ -151,10 +151,8 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, Rectangle parabotScreen = new Rectangle((int) getLocation().getX(), (int) getLocation().getY(), getWidth(), getHeight()); BufferedImage image = robot.createScreenCapture(parabotScreen); ImageIO.write(image, "png", new File(Directories.getScreenshotDir().getPath() + "/" + StringUtils.randomString(10) + ".png")); - } catch (IOException k) { + } catch (IOException | AWTException k) { k.printStackTrace(); - } catch (AWTException e1) { - e1.printStackTrace(); } break; case "Exit": From 0dfc4d854e2c0c459a1379eca659bfb4f8375f6b Mon Sep 17 00:00:00 2001 From: Eric-Turner Date: Fri, 20 May 2016 22:03:01 -0400 Subject: [PATCH 12/20] Made a file name duplication prevention --- src/main/java/org/parabot/core/ui/BotUI.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/parabot/core/ui/BotUI.java b/src/main/java/org/parabot/core/ui/BotUI.java index 3a0d669..9ec3a56 100644 --- a/src/main/java/org/parabot/core/ui/BotUI.java +++ b/src/main/java/org/parabot/core/ui/BotUI.java @@ -150,7 +150,15 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, Robot robot = new Robot(); Rectangle parabotScreen = new Rectangle((int) getLocation().getX(), (int) getLocation().getY(), getWidth(), getHeight()); BufferedImage image = robot.createScreenCapture(parabotScreen); - ImageIO.write(image, "png", new File(Directories.getScreenshotDir().getPath() + "/" + StringUtils.randomString(10) + ".png")); + String randString = StringUtils.randomString(10); + for (int x = 0; x < Directories.getScreenshotDir().listFiles().length; x++) { + if (Directories.getScreenshotDir().listFiles()[x].getAbsoluteFile().getName().contains(randString)) { + randString = randString + StringUtils.randomString(4); + } + } + File file = new File(Directories.getScreenshotDir().getPath() + "/" + randString + ".png"); + ImageIO.write(image, "png", file); + } catch (IOException | AWTException k) { k.printStackTrace(); } From 327d0ca8f93ffb8e215ce80f66a12ab597e749e6 Mon Sep 17 00:00:00 2001 From: Eric-Turner Date: Sun, 22 May 2016 09:13:47 -0400 Subject: [PATCH 13/20] Fixed the dupe check code --- src/main/java/org/parabot/core/ui/BotUI.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/parabot/core/ui/BotUI.java b/src/main/java/org/parabot/core/ui/BotUI.java index 9ec3a56..0adb473 100644 --- a/src/main/java/org/parabot/core/ui/BotUI.java +++ b/src/main/java/org/parabot/core/ui/BotUI.java @@ -151,11 +151,22 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, Rectangle parabotScreen = new Rectangle((int) getLocation().getX(), (int) getLocation().getY(), getWidth(), getHeight()); BufferedImage image = robot.createScreenCapture(parabotScreen); String randString = StringUtils.randomString(10); - for (int x = 0; x < Directories.getScreenshotDir().listFiles().length; x++) { - if (Directories.getScreenshotDir().listFiles()[x].getAbsoluteFile().getName().contains(randString)) { - randString = randString + StringUtils.randomString(4); + boolean search = true; + boolean duplicate = false; + while(search == true){ + for (File f : Directories.getScreenshotDir().listFiles()){ + if (f.getAbsoluteFile().getName().contains(randString)) { + duplicate = true; + break; + } + } + if (!duplicate){ + search = false; + } else { + randString = StringUtils.randomString(10); + duplicate = false; + } } - } File file = new File(Directories.getScreenshotDir().getPath() + "/" + randString + ".png"); ImageIO.write(image, "png", file); From 6ac2df4555f41113c16986cd0e3a879edc12eeb2 Mon Sep 17 00:00:00 2001 From: Eric-Turner Date: Sun, 22 May 2016 09:16:54 -0400 Subject: [PATCH 14/20] FukinBitch --- src/main/java/org/parabot/core/ui/BotUI.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/parabot/core/ui/BotUI.java b/src/main/java/org/parabot/core/ui/BotUI.java index 0adb473..14a775a 100644 --- a/src/main/java/org/parabot/core/ui/BotUI.java +++ b/src/main/java/org/parabot/core/ui/BotUI.java @@ -151,8 +151,8 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, Rectangle parabotScreen = new Rectangle((int) getLocation().getX(), (int) getLocation().getY(), getWidth(), getHeight()); BufferedImage image = robot.createScreenCapture(parabotScreen); String randString = StringUtils.randomString(10); - boolean search = true; - boolean duplicate = false; + boolean search = true; + boolean duplicate = false; while(search == true){ for (File f : Directories.getScreenshotDir().listFiles()){ if (f.getAbsoluteFile().getName().contains(randString)) { From c7dc9a466139fdeae33d646cc722cbb8f8ef32ce Mon Sep 17 00:00:00 2001 From: Eric-Turner Date: Sun, 22 May 2016 09:19:11 -0400 Subject: [PATCH 15/20] Its finished --- src/main/java/org/parabot/core/ui/BotUI.java | 24 ++++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/parabot/core/ui/BotUI.java b/src/main/java/org/parabot/core/ui/BotUI.java index 14a775a..532e52b 100644 --- a/src/main/java/org/parabot/core/ui/BotUI.java +++ b/src/main/java/org/parabot/core/ui/BotUI.java @@ -153,20 +153,20 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, String randString = StringUtils.randomString(10); boolean search = true; boolean duplicate = false; - while(search == true){ - for (File f : Directories.getScreenshotDir().listFiles()){ - if (f.getAbsoluteFile().getName().contains(randString)) { - duplicate = true; - break; - } - } - if (!duplicate){ - search = false; - } else { - randString = StringUtils.randomString(10); - duplicate = false; + while (search == true) { + for (File f : Directories.getScreenshotDir().listFiles()) { + if (f.getAbsoluteFile().getName().contains(randString)) { + duplicate = true; + break; } } + if (!duplicate) { + search = false; + } else { + randString = StringUtils.randomString(10); + duplicate = false; + } + } File file = new File(Directories.getScreenshotDir().getPath() + "/" + randString + ".png"); ImageIO.write(image, "png", file); From c58746e0dfffecdfb6adcc46bcaf4c0cb40f6ab2 Mon Sep 17 00:00:00 2001 From: Jeroen Ketelaar Date: Mon, 23 May 2016 15:31:50 +0200 Subject: [PATCH 16/20] [TASK] Added Dockbit notification URL to Travis --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 4a3e47b..3960d78 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,7 @@ jdk: - oraclejdk7 script: mvn -U package notifications: + webhooks: https://dockbit.com/webhooks/7PrMKazLtLw5hhpXvakVKWoq slack: secure: ciAOsdv9lf/IbAwyzeR/z2nlBSevmBHBqca6tf0Yh2DIyAx/uUo1ojon0W7Kv6tCECGhSTdfQAnZ+nFjjqaRs+Jq4svd9WKYrFuZyOWmT31iSJ/nvPymRvevSsgwpSKr0nJS9dxePKto/T3ozW29kx88eaJQH17zOaX2rfuIje4= webhooks: From 1b4e62ee233ac33da91fb4e2b8bca781a036357e Mon Sep 17 00:00:00 2001 From: Jeroen Ketelaar Date: Mon, 23 May 2016 15:36:21 +0200 Subject: [PATCH 17/20] [BUGFIX] Merged webhooks together --- .travis.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3960d78..c177060 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,14 +3,13 @@ jdk: - oraclejdk7 script: mvn -U package notifications: - webhooks: https://dockbit.com/webhooks/7PrMKazLtLw5hhpXvakVKWoq slack: secure: ciAOsdv9lf/IbAwyzeR/z2nlBSevmBHBqca6tf0Yh2DIyAx/uUo1ojon0W7Kv6tCECGhSTdfQAnZ+nFjjqaRs+Jq4svd9WKYrFuZyOWmT31iSJ/nvPymRvevSsgwpSKr0nJS9dxePKto/T3ozW29kx88eaJQH17zOaX2rfuIje4= webhooks: urls: - - http://v3.bdn.parabot.org/api/client/build + - https://dockbit.com/webhooks/7PrMKazLtLw5hhpXvakVKWoq on_success: always - on_failure: never + on_failure: always on_start: never env: From f4a82f4c530a74e03e8feadf4275aa6c532a2952 Mon Sep 17 00:00:00 2001 From: Jeroen Ketelaar Date: Mon, 23 May 2016 15:54:11 +0200 Subject: [PATCH 18/20] [TASK] Added artifacts setting --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index c177060..28a01c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,3 +20,6 @@ env: before_install: - chmod +x ./.travis/artifact-upload.sh + +addons: + artifacts: true From bcc9d80a254bcb6780a733405c9debe0652adcc4 Mon Sep 17 00:00:00 2001 From: Jeroen Ketelaar Date: Mon, 23 May 2016 17:17:27 +0200 Subject: [PATCH 19/20] [BUGFIX] Updated S3 region to us-west-1 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 28a01c9..73bb134 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,3 +23,4 @@ before_install: addons: artifacts: true + s3_region: "us-west-1" From 34f5692d5c8b7c567213e19f3e5dea8373b3d9f6 Mon Sep 17 00:00:00 2001 From: Jeroen Ketelaar Date: Mon, 23 May 2016 17:22:05 +0200 Subject: [PATCH 20/20] [TASK] Added cache to Travis builds --- .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.travis.yml b/.travis.yml index 73bb134..f66b18d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,3 +24,8 @@ before_install: addons: artifacts: true s3_region: "us-west-1" + +cache: + directories: + - .autoconf + - $HOME/.m2