diff --git a/src/main/java/org/parabot/core/Directories.java b/src/main/java/org/parabot/core/Directories.java index 8b04584..d18ae07 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..532e52b 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; /** @@ -67,7 +71,6 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, } - private void createMenu() { JMenuBar menuBar = new JMenuBar(); @@ -143,7 +146,33 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, switch (command) { case "Create screenshot": - JOptionPane.showMessageDialog(this, "We are still working on this..."); + try { + Robot robot = new Robot(); + 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; + 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); + + } catch (IOException | AWTException k) { + k.printStackTrace(); + } break; case "Exit": System.exit(0); @@ -291,4 +320,4 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener, public void windowOpened(WindowEvent arg0) { } -} +} \ No newline at end of file