Advertisement
Guest User

MuleTest

a guest
Mar 28th, 2017
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.68 KB | None | 0 0
  1. import java.awt.*;
  2. import java.io.*;
  3. import org.osbot.rs07.api.model.Player;
  4. import org.osbot.rs07.api.ui.Message;
  5. import org.osbot.rs07.script.Script;
  6. import org.osbot.rs07.script.ScriptManifest;
  7. import org.osbot.rs07.api.map.Area;
  8.  
  9.  
  10. @ScriptManifest(author = "Magarac", info = "Bowstring Mule", name = "BSMule", version = 1.0, logo = "")
  11. public class BSMule extends Script {
  12.  
  13.     private long startTime;
  14.     private String state;
  15.     private String signalIn;
  16.     private long coinsStart = 0;
  17.     private long coinsNew = 0;
  18.  
  19.     private String user = getParameters().split(".")[0];
  20.     private String pass = getParameters().split(".")[1];
  21.     private String bot1 = getParameters().split(".")[2];
  22.     private String bot2 = getParameters().split(".")[3];
  23.     private String bot3 = getParameters().split(".")[4];
  24.     private String bot4 = getParameters().split(".")[5];
  25.  
  26.     private Area meetupSpot = new Area(3146, 3479, 3154, 3474);
  27.  
  28.     private boolean read = false;
  29.     private boolean traded = false;
  30.  
  31.     @Override
  32.     public void onStart()
  33.     {
  34.         // time
  35.         startTime = System.currentTimeMillis();
  36.         // message listener
  37.         getBot().addMessageListener(this);
  38.     }
  39.  
  40.     @Override
  41.     public int onLoop() throws InterruptedException {
  42.         if (!read) {
  43.             state = "Checking file for a signal.";
  44.             ReadFromFile();
  45.         }
  46.         if (signalIn != null && signalIn == "Ready") {
  47.             state = "Got a signal!";
  48.             read = true;
  49.             if (!getClient().isLoggedIn()) {
  50.                 state = "Logging in.";
  51.                 LoginEvent loginEvent = new LoginEvent(user, pass);
  52.                 getBot().addLoginListener(loginEvent);
  53.                 execute(loginEvent);
  54.             }
  55.             else {
  56.                 if (!meetupSpot.contains(myPlayer())) {
  57.                     state = "Walking to meet-up spot.";
  58.                     getWalking().webWalk(meetupSpot);
  59.                 } else {
  60.                     if (traded) {
  61.                         coinsStart = getInventory().getAmount("Coins");
  62.                         Player trader = getPlayers().closest(player -> player != null && player.isInteracting(myPlayer()) && player.getName() == bot1 ||
  63.                                 player.getName() == bot2 || player.getName() == bot3 || player.getName() == bot4);
  64.                         if (!trade.isCurrentlyTrading()) {
  65.                             trader.interact("Trade with");
  66.                         } else {
  67.                             if (trade.isFirstInterfaceOpen()) {
  68.                                 new org.osbot.rs07.utility.ConditionalSleep(20000) {
  69.                                     @Override
  70.                                     public boolean condition() throws InterruptedException {
  71.                                         return trade.getTheirOffers().contains("Coins");
  72.                                     }
  73.                                 }.sleep();
  74.                                 if (trade.getTheirOffers().contains("Coins")) {
  75.                                     trade.acceptTrade();
  76.                                 }
  77.                             } else if (trade.isSecondInterfaceOpen()) {
  78.                                 trade.acceptTrade();
  79.                             }
  80.                             if (!trade.isCurrentlyTrading()) {
  81.                                 coinsNew = getInventory().getAmount("Coins");
  82.                             }
  83.                         }
  84.                     }
  85.                 }
  86.                 if (coinsNew > coinsStart) {
  87.                     state = "Done trading with mule, logging out.";
  88.                     WriteToFile();
  89.                     read = false;
  90.                     getLogoutTab().logOut();
  91.                 }
  92.             }
  93.         }
  94.         return 200;
  95.     }
  96.  
  97.     private void WriteToFile() throws InterruptedException {
  98.         // name of file to open
  99.         String fileName = "bsfarm1.txt";
  100.         try {
  101.             // using filewriter, declaring a new one
  102.             FileWriter fileWriter =
  103.                     new FileWriter(new File("C:\\Users\\Faris\\OSBot\\Data", fileName));
  104.  
  105.             // wrapping in bufferedfilter
  106.             BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
  107.  
  108.             // writing
  109.             bufferedWriter.write("");
  110.  
  111.             // closing the file
  112.             bufferedWriter.close();
  113.         } catch (IOException e) {
  114.             e.printStackTrace();
  115.         }
  116.     }
  117.  
  118.     private void ReadFromFile() throws InterruptedException {
  119.         // name of file to open
  120.         String fileName = "bsfarm1.txt";
  121.         // string to read
  122.         String line = null;
  123.         try {
  124.             // using filereader, declaring a new one
  125.             FileReader fileReader =
  126.                     new FileReader(new File("C:\\Users\\Faris\\OSBot\\Data", fileName));
  127.  
  128.             // wrapping in bufferedfilter
  129.             BufferedReader bufferedReader = new BufferedReader(fileReader);
  130.  
  131.             // reading
  132.             while((line = bufferedReader.readLine()) != null) {
  133.                 signalIn = line;
  134.             }
  135.  
  136.             // closing the file
  137.             bufferedReader.close();
  138.         } catch (IOException e) {
  139.             e.printStackTrace();
  140.         }
  141.     }
  142.  
  143.     @Override
  144.     public void onMessage(Message msg) throws InterruptedException {
  145.         if (msg.getType().equals(Message.MessageType.RECEIVE_TRADE)) {
  146.             traded = true;
  147.         }
  148.     }
  149.  
  150.     @Override
  151.     public void onPaint(final Graphics2D g) {
  152.         Point mP = getMouse().getPosition();
  153.         g.drawLine(mP.x - 5, mP.y + 5, mP.x + 5, mP.y - 5);
  154.         g.drawLine(mP.x + 5, mP.y + 5, mP.x - 5, mP.y - 5);
  155.         Font font1 = new Font("Sans-Serif", Font.BOLD, 12);
  156.         g.setFont(font1);
  157.         g.setColor(Color.WHITE);
  158.         g.drawString("Mule: " + state, 18, 280);
  159.         g.drawString("" + formatTime(System.currentTimeMillis() - startTime), 18, 300);
  160.     }
  161.  
  162.     public void onExit() throws InterruptedException {}
  163.  
  164.     // Converts ms to a timestamp
  165.     private String formatTime(long ms) {
  166.  
  167.         long s = ms / 1000, m = s / 60, h = m / 60, d = h / 24;
  168.         s %= 60;
  169.         m %= 60;
  170.         h %= 24;
  171.  
  172.         return d > 0 ? String.format("%02d:%02d:%02d:%02d", d, h, m, s) :
  173.                 h > 0 ? String.format("%02d:%02d:%02d", h, m, s) :
  174.                         String.format("%02d:%02d", m, s);
  175.     }
  176.  
  177.     // Converts a value to m or k
  178.     private String formatValue(long v) {
  179.         return (v > 1_000_000) ? String.format("%.2fm", (double) (v / 1_000_000)) :
  180.                 (v > 1000) ? String.format("%.1fk", (double) (v / 1000)) :
  181.                         v + "";
  182.     }
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement