Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.*;
- import java.io.*;
- import org.osbot.rs07.api.model.Player;
- import org.osbot.rs07.api.ui.Message;
- import org.osbot.rs07.script.Script;
- import org.osbot.rs07.script.ScriptManifest;
- import org.osbot.rs07.api.map.Area;
- @ScriptManifest(author = "Magarac", info = "Bowstring Mule", name = "BSMule", version = 1.0, logo = "")
- public class BSMule extends Script {
- private long startTime;
- private String state;
- private String signalIn;
- private long coinsStart = 0;
- private long coinsNew = 0;
- private String user = getParameters().split(".")[0];
- private String pass = getParameters().split(".")[1];
- private String bot1 = getParameters().split(".")[2];
- private String bot2 = getParameters().split(".")[3];
- private String bot3 = getParameters().split(".")[4];
- private String bot4 = getParameters().split(".")[5];
- private Area meetupSpot = new Area(3146, 3479, 3154, 3474);
- private boolean read = false;
- private boolean traded = false;
- @Override
- public void onStart()
- {
- // time
- startTime = System.currentTimeMillis();
- // message listener
- getBot().addMessageListener(this);
- }
- @Override
- public int onLoop() throws InterruptedException {
- if (!read) {
- state = "Checking file for a signal.";
- ReadFromFile();
- }
- if (signalIn != null && signalIn == "Ready") {
- state = "Got a signal!";
- read = true;
- if (!getClient().isLoggedIn()) {
- state = "Logging in.";
- LoginEvent loginEvent = new LoginEvent(user, pass);
- getBot().addLoginListener(loginEvent);
- execute(loginEvent);
- }
- else {
- if (!meetupSpot.contains(myPlayer())) {
- state = "Walking to meet-up spot.";
- getWalking().webWalk(meetupSpot);
- } else {
- if (traded) {
- coinsStart = getInventory().getAmount("Coins");
- Player trader = getPlayers().closest(player -> player != null && player.isInteracting(myPlayer()) && player.getName() == bot1 ||
- player.getName() == bot2 || player.getName() == bot3 || player.getName() == bot4);
- if (!trade.isCurrentlyTrading()) {
- trader.interact("Trade with");
- } else {
- if (trade.isFirstInterfaceOpen()) {
- new org.osbot.rs07.utility.ConditionalSleep(20000) {
- @Override
- public boolean condition() throws InterruptedException {
- return trade.getTheirOffers().contains("Coins");
- }
- }.sleep();
- if (trade.getTheirOffers().contains("Coins")) {
- trade.acceptTrade();
- }
- } else if (trade.isSecondInterfaceOpen()) {
- trade.acceptTrade();
- }
- if (!trade.isCurrentlyTrading()) {
- coinsNew = getInventory().getAmount("Coins");
- }
- }
- }
- }
- if (coinsNew > coinsStart) {
- state = "Done trading with mule, logging out.";
- WriteToFile();
- read = false;
- getLogoutTab().logOut();
- }
- }
- }
- return 200;
- }
- private void WriteToFile() throws InterruptedException {
- // name of file to open
- String fileName = "bsfarm1.txt";
- try {
- // using filewriter, declaring a new one
- FileWriter fileWriter =
- new FileWriter(new File("C:\\Users\\Faris\\OSBot\\Data", fileName));
- // wrapping in bufferedfilter
- BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
- // writing
- bufferedWriter.write("");
- // closing the file
- bufferedWriter.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- private void ReadFromFile() throws InterruptedException {
- // name of file to open
- String fileName = "bsfarm1.txt";
- // string to read
- String line = null;
- try {
- // using filereader, declaring a new one
- FileReader fileReader =
- new FileReader(new File("C:\\Users\\Faris\\OSBot\\Data", fileName));
- // wrapping in bufferedfilter
- BufferedReader bufferedReader = new BufferedReader(fileReader);
- // reading
- while((line = bufferedReader.readLine()) != null) {
- signalIn = line;
- }
- // closing the file
- bufferedReader.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- @Override
- public void onMessage(Message msg) throws InterruptedException {
- if (msg.getType().equals(Message.MessageType.RECEIVE_TRADE)) {
- traded = true;
- }
- }
- @Override
- public void onPaint(final Graphics2D g) {
- Point mP = getMouse().getPosition();
- g.drawLine(mP.x - 5, mP.y + 5, mP.x + 5, mP.y - 5);
- g.drawLine(mP.x + 5, mP.y + 5, mP.x - 5, mP.y - 5);
- Font font1 = new Font("Sans-Serif", Font.BOLD, 12);
- g.setFont(font1);
- g.setColor(Color.WHITE);
- g.drawString("Mule: " + state, 18, 280);
- g.drawString("" + formatTime(System.currentTimeMillis() - startTime), 18, 300);
- }
- public void onExit() throws InterruptedException {}
- // Converts ms to a timestamp
- private String formatTime(long ms) {
- long s = ms / 1000, m = s / 60, h = m / 60, d = h / 24;
- s %= 60;
- m %= 60;
- h %= 24;
- return d > 0 ? String.format("%02d:%02d:%02d:%02d", d, h, m, s) :
- h > 0 ? String.format("%02d:%02d:%02d", h, m, s) :
- String.format("%02d:%02d", m, s);
- }
- // Converts a value to m or k
- private String formatValue(long v) {
- return (v > 1_000_000) ? String.format("%.2fm", (double) (v / 1_000_000)) :
- (v > 1000) ? String.format("%.1fk", (double) (v / 1000)) :
- v + "";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement