Advertisement
Guest User

MuleTest1

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