mirror of
https://github.com/2006-Scape/Parabot.git
synced 2026-07-03 00:37:55 +00:00
Merge branch 'master' of github.com:Parabot/Parabot
This commit is contained in:
+10
-3
@@ -7,9 +7,9 @@ notifications:
|
|||||||
secure: ciAOsdv9lf/IbAwyzeR/z2nlBSevmBHBqca6tf0Yh2DIyAx/uUo1ojon0W7Kv6tCECGhSTdfQAnZ+nFjjqaRs+Jq4svd9WKYrFuZyOWmT31iSJ/nvPymRvevSsgwpSKr0nJS9dxePKto/T3ozW29kx88eaJQH17zOaX2rfuIje4=
|
secure: ciAOsdv9lf/IbAwyzeR/z2nlBSevmBHBqca6tf0Yh2DIyAx/uUo1ojon0W7Kv6tCECGhSTdfQAnZ+nFjjqaRs+Jq4svd9WKYrFuZyOWmT31iSJ/nvPymRvevSsgwpSKr0nJS9dxePKto/T3ozW29kx88eaJQH17zOaX2rfuIje4=
|
||||||
webhooks:
|
webhooks:
|
||||||
urls:
|
urls:
|
||||||
- http://v3.bdn.parabot.org/api/client/build
|
- https://dockbit.com/webhooks/7PrMKazLtLw5hhpXvakVKWoq
|
||||||
on_success: always
|
on_success: always
|
||||||
on_failure: never
|
on_failure: always
|
||||||
on_start: never
|
on_start: never
|
||||||
|
|
||||||
env:
|
env:
|
||||||
@@ -20,5 +20,12 @@ env:
|
|||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- chmod +x ./.travis/artifact-upload.sh
|
- chmod +x ./.travis/artifact-upload.sh
|
||||||
|
|
||||||
|
addons:
|
||||||
|
artifacts: true
|
||||||
|
s3_region: "us-west-1"
|
||||||
|
|
||||||
after_success: sh ./.travis/artifact-upload.sh
|
cache:
|
||||||
|
directories:
|
||||||
|
- .autoconf
|
||||||
|
- $HOME/.m2
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Parabot
|
# Parabot
|
||||||
|
|
||||||
Parabot V2.4.
|
Parabot V2.5.
|
||||||
|
|
||||||
#### Website
|
#### Website
|
||||||
|
|
||||||
|
|||||||
@@ -73,6 +73,11 @@
|
|||||||
<artifactId>bugsnag</artifactId>
|
<artifactId>bugsnag</artifactId>
|
||||||
<version>1.2.8</version>
|
<version>1.2.8</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>4.11</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@@ -163,6 +163,7 @@ public class Context {
|
|||||||
* Loads the game
|
* Loads the game
|
||||||
*/
|
*/
|
||||||
public void load() {
|
public void load() {
|
||||||
|
BotUI.getInstance().getJMenuBar().remove(2);
|
||||||
Core.verbose("Parsing server jar...");
|
Core.verbose("Parsing server jar...");
|
||||||
serverProvider.init();
|
serverProvider.init();
|
||||||
serverProvider.parseJar();
|
serverProvider.parseJar();
|
||||||
|
|||||||
@@ -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
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,17 +1,23 @@
|
|||||||
package org.parabot.core.ui;
|
package org.parabot.core.ui;
|
||||||
|
|
||||||
import org.parabot.core.Context;
|
import org.parabot.core.Context;
|
||||||
|
import org.parabot.core.Directories;
|
||||||
import org.parabot.core.ui.components.GamePanel;
|
import org.parabot.core.ui.components.GamePanel;
|
||||||
import org.parabot.core.ui.components.VerboseLoader;
|
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.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -25,7 +31,7 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener,
|
|||||||
private static BotUI instance;
|
private static BotUI instance;
|
||||||
private static JDialog dialog;
|
private static JDialog dialog;
|
||||||
|
|
||||||
private JMenuItem run, pause, stop;
|
private JMenuItem run, pause, stop, cacheClear;
|
||||||
private boolean runScript, pauseScript;
|
private boolean runScript, pauseScript;
|
||||||
|
|
||||||
public BotUI(String username, String password) {
|
public BotUI(String username, String password) {
|
||||||
@@ -64,11 +70,13 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener,
|
|||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void createMenu() {
|
private void createMenu() {
|
||||||
JMenuBar menuBar = new JMenuBar();
|
JMenuBar menuBar = new JMenuBar();
|
||||||
|
|
||||||
JMenu file = new JMenu("File");
|
JMenu file = new JMenu("File");
|
||||||
JMenu scripts = new JMenu("Script");
|
JMenu scripts = new JMenu("Script");
|
||||||
|
JMenu features = new JMenu("Features");
|
||||||
|
|
||||||
JMenuItem screenshot = new JMenuItem("Create screenshot");
|
JMenuItem screenshot = new JMenuItem("Create screenshot");
|
||||||
JMenuItem proxy = new JMenuItem("Network");
|
JMenuItem proxy = new JMenuItem("Network");
|
||||||
@@ -94,6 +102,9 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener,
|
|||||||
stop.setEnabled(false);
|
stop.setEnabled(false);
|
||||||
stop.setIcon(new ImageIcon(Images.getResource("/storage/images/stop.png")));
|
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);
|
screenshot.addActionListener(this);
|
||||||
proxy.addActionListener(this);
|
proxy.addActionListener(this);
|
||||||
randoms.addActionListener(this);
|
randoms.addActionListener(this);
|
||||||
@@ -101,6 +112,7 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener,
|
|||||||
logger.addActionListener(this);
|
logger.addActionListener(this);
|
||||||
explorer.addActionListener(this);
|
explorer.addActionListener(this);
|
||||||
exit.addActionListener(this);
|
exit.addActionListener(this);
|
||||||
|
cacheClear.addActionListener(this);
|
||||||
|
|
||||||
run.addActionListener(this);
|
run.addActionListener(this);
|
||||||
pause.addActionListener(this);
|
pause.addActionListener(this);
|
||||||
@@ -118,8 +130,12 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener,
|
|||||||
scripts.add(pause);
|
scripts.add(pause);
|
||||||
scripts.add(stop);
|
scripts.add(stop);
|
||||||
|
|
||||||
|
features.add(cacheClear);
|
||||||
|
|
||||||
menuBar.add(file);
|
menuBar.add(file);
|
||||||
menuBar.add(scripts);
|
menuBar.add(scripts);
|
||||||
|
menuBar.add(features);
|
||||||
|
|
||||||
|
|
||||||
setJMenuBar(menuBar);
|
setJMenuBar(menuBar);
|
||||||
}
|
}
|
||||||
@@ -130,7 +146,33 @@ 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);
|
||||||
|
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;
|
break;
|
||||||
case "Exit":
|
case "Exit":
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
@@ -173,7 +215,7 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener,
|
|||||||
BotUI.getInstance().revalidate();
|
BotUI.getInstance().revalidate();
|
||||||
if (!Logger.getInstance().isClearable()) {
|
if (!Logger.getInstance().isClearable()) {
|
||||||
Logger.getInstance().setClearable();
|
Logger.getInstance().setClearable();
|
||||||
} else if(Logger.getInstance().isClearable() && !Logger.getInstance().isVisible()) {
|
} else if (Logger.getInstance().isClearable() && !Logger.getInstance().isVisible()) {
|
||||||
Logger.clearLogger();
|
Logger.clearLogger();
|
||||||
Logger.addMessage("Logger started", false);
|
Logger.addMessage("Logger started", false);
|
||||||
}
|
}
|
||||||
@@ -181,6 +223,9 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener,
|
|||||||
case "Disable dialog":
|
case "Disable dialog":
|
||||||
BotDialog.getInstance().setVisible(!dialog.isVisible());
|
BotDialog.getInstance().setVisible(!dialog.isVisible());
|
||||||
break;
|
break;
|
||||||
|
case "Clear cache":
|
||||||
|
Directories.clearCache();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
System.out.println("Invalid command: " + command);
|
System.out.println("Invalid command: " + command);
|
||||||
}
|
}
|
||||||
@@ -274,4 +319,5 @@ public class BotUI extends JFrame implements ActionListener, ComponentListener,
|
|||||||
@Override
|
@Override
|
||||||
public void windowOpened(WindowEvent arg0) {
|
public void windowOpened(WindowEvent arg0) {
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
}
|
||||||
@@ -21,7 +21,7 @@ import java.awt.image.RescaleOp;
|
|||||||
/**
|
/**
|
||||||
* An informative JPanel which tells the user what bot is doing
|
* An informative JPanel which tells the user what bot is doing
|
||||||
*
|
*
|
||||||
* @author Everel
|
* @author Everel, EmmaStone
|
||||||
*/
|
*/
|
||||||
public class VerboseLoader extends JPanel implements ProgressListener {
|
public class VerboseLoader extends JPanel implements ProgressListener {
|
||||||
private static final long serialVersionUID = 7412412644921803896L;
|
private static final long serialVersionUID = 7412412644921803896L;
|
||||||
@@ -144,7 +144,6 @@ public class VerboseLoader extends JPanel implements ProgressListener {
|
|||||||
login.setOpaque(false);
|
login.setOpaque(false);
|
||||||
|
|
||||||
login.addActionListener(new ActionListener() {
|
login.addActionListener(new ActionListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
if (manager.login(userInput.getText(), passInput.getText(), false)) {
|
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(usernameLabel);
|
||||||
loginPanel.add(Box.createRigidArea(new Dimension(0, 5)));
|
loginPanel.add(Box.createRigidArea(new Dimension(0, 4)));
|
||||||
loginPanel.add(userInput);
|
loginPanel.add(userInput);
|
||||||
loginPanel.add(Box.createRigidArea(new Dimension(0, 5)));
|
loginPanel.add(Box.createRigidArea(new Dimension(0, 4)));
|
||||||
loginPanel.add(passwordLabel);
|
loginPanel.add(passwordLabel);
|
||||||
loginPanel.add(Box.createRigidArea(new Dimension(0, 5)));
|
loginPanel.add(Box.createRigidArea(new Dimension(0, 4)));
|
||||||
loginPanel.add(passInput);
|
loginPanel.add(passInput);
|
||||||
loginPanel.add(Box.createRigidArea(new Dimension(0, 5)));
|
loginPanel.add(Box.createRigidArea(new Dimension(0, 2)));
|
||||||
loginPanel.add(login);
|
loginPanel.add(login);
|
||||||
loginPanel.add(Box.createRigidArea(new Dimension(0, 5)));
|
loginPanel.add(Box.createRigidArea(new Dimension(0, 4)));
|
||||||
|
|
||||||
add(loginPanel, new GridBagConstraints());
|
add(loginPanel, new GridBagConstraints());
|
||||||
}
|
}
|
||||||
@@ -205,10 +204,10 @@ public class VerboseLoader extends JPanel implements ProgressListener {
|
|||||||
g.setStroke(new BasicStroke(5));
|
g.setStroke(new BasicStroke(5));
|
||||||
g.setPaint(Color.WHITE);
|
g.setPaint(Color.WHITE);
|
||||||
|
|
||||||
g.draw(new Line2D.Float(0, 0, this.getWidth(), 0));
|
g.draw(new Line2D.Float(0, 1, this.getWidth(), 1)); //TOP
|
||||||
g.draw(new Line2D.Float(0, 0, 0, 120));
|
g.draw(new Line2D.Float(0, 0, 0, 120)); //LEFT
|
||||||
g.draw(new Line2D.Float(0, 120, this.getWidth(), 120));
|
g.draw(new Line2D.Float(0, 120, this.getWidth(), 120)); //BOTTOM
|
||||||
g.draw(new Line2D.Float(this.getWidth() - 6, 0, this.getWidth() - 6, 120));
|
g.draw(new Line2D.Float(this.getWidth() - 6, 0, this.getWidth() - 6, 120)); //RIGHT
|
||||||
|
|
||||||
g.setColor(Color.white);
|
g.setColor(Color.white);
|
||||||
|
|
||||||
@@ -284,4 +283,4 @@ public class VerboseLoader extends JPanel implements ProgressListener {
|
|||||||
public void updateDownloadSpeed(double mbPerSecond) {
|
public void updateDownloadSpeed(double mbPerSecond) {
|
||||||
progressBar.setText(String.format("(%.2fMB/s)", mbPerSecond));
|
progressBar.setText(String.format("(%.2fMB/s)", mbPerSecond));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user