Added screenshot feature

This commit is contained in:
Eric-Turner
2016-05-20 02:35:05 -04:00
parent 23a97695f2
commit 389f2bf50e
2 changed files with 243 additions and 220 deletions
@@ -40,6 +40,7 @@ public class Directories {
cached.put("Settings", new File(cached.get("Root"), "/Parabot/settings/")); cached.put("Settings", new File(cached.get("Root"), "/Parabot/settings/"));
cached.put("Servers", new File(cached.get("Root"), "/Parabot/servers/")); cached.put("Servers", new File(cached.get("Root"), "/Parabot/servers/"));
cached.put("Cache", new File(cached.get("Root"), "/Parabot/cache/")); cached.put("Cache", new File(cached.get("Root"), "/Parabot/cache/"));
cached.put("Screenshots", new File(cached.get("Root"), "/Parabot/screenshots/"));
Core.verbose("Directories cached."); Core.verbose("Directories cached.");
clearCache(259200); clearCache(259200);
@@ -192,6 +193,16 @@ public class Directories {
return cached.get("Home"); 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 * Validates all directories and makes them if necessary
*/ */
+14 -2
View File
@@ -7,13 +7,17 @@ import org.parabot.core.ui.components.VerboseLoader;
import org.parabot.core.ui.images.Images; import org.parabot.core.ui.images.Images;
import org.parabot.core.ui.utils.SwingUtil; import org.parabot.core.ui.utils.SwingUtil;
import org.parabot.environment.OperatingSystem; import org.parabot.environment.OperatingSystem;
import org.parabot.environment.api.utils.StringUtils;
import org.parabot.environment.scripts.Script; import org.parabot.environment.scripts.Script;
import org.parabot.environment.scripts.randoms.Random; import org.parabot.environment.scripts.randoms.Random;
import javax.imageio.ImageIO;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
/** /**
@@ -67,7 +71,6 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener,
} }
private void createMenu() { private void createMenu() {
JMenuBar menuBar = new JMenuBar(); JMenuBar menuBar = new JMenuBar();
@@ -143,7 +146,16 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener,
switch (command) { switch (command) {
case "Create screenshot": 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);
ImageIO.write(image, "png", new File(Directories.getScreenshotDir().getPath() + "/" + StringUtils.randomString(10) + ".png"));
} catch (IOException k) {
k.printStackTrace();
} catch (AWTException e1) {
e1.printStackTrace();
}
break; break;
case "Exit": case "Exit":
System.exit(0); System.exit(0);