Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.rsbot.event.events.MessageEvent;
- import org.rsbot.event.listeners.MessageListener;
- import org.rsbot.event.listeners.PaintListener;
- import org.rsbot.script.Script;
- import org.rsbot.script.ScriptManifest;
- import org.rsbot.script.methods.Skills;
- import org.rsbot.script.wrappers.RSObject;
- import org.rsbot.script.wrappers.RSTile;
- import org.rsbot.script.wrappers.RSTilePath;
- import java.awt.*;
- import java.awt.event.*;
- import java.awt.BasicStroke;
- import javax.swing.*;
- import javax.swing.GroupLayout;
- import javax.swing.LayoutStyle;
- @ScriptManifest(
- authors = {"Ecstacy"},
- version = 1,
- keywords = {"mining", "banking", "money", "tin"},
- description = "Start either by East Varrock Mine or the Bank",
- name = "AIOVarrockMiner"
- )
- public class AIOVarrockMiner extends Script implements PaintListener, MessageListener {
- int boothID = 782;
- int[] TIN_ID = {11959, 11957, 11058};
- int[] COPPER_ID = {11962, 11960, 11961};
- int[] IRON_ID = {11954, 11955, 11956};
- int[] SILVER_ID = {};
- int[] CLAY_ID = {};
- int miningAnimation = 625;
- int[] pickID = {1275};
- int TIN_ORE = 438;
- int COPPER_ORE = 0;
- int IRON_ORE = 440;
- int SILVER_ORE = 0;
- int CLAY_ORE = 434;
- RSTile[] tilesToBank = {new RSTile(3285, 3366), new RSTile(3286, 3372), new RSTile(3291, 3377),
- new RSTile(3292, 3387), new RSTile(3291, 3396), new RSTile(3291, 3403), new RSTile(3288, 3411),
- new RSTile(3287, 3419), new RSTile(3284, 3426), new RSTile(3276, 3428), new RSTile(3268, 3428), new RSTile(3258, 3429), new RSTile(3254, 3425), new RSTile(3252, 3420)};
- RSTilePath pathToBank;
- long startTime;
- int expGained = 0;
- int startExp = 0;
- int oresMined = 0;
- int[] oresToMine;
- int oreID = 0;
- boolean guiWait = true;
- gui g = new gui();
- public boolean onStart() {
- pathToBank = walking.newTilePath(tilesToBank);
- startTime = System.currentTimeMillis();
- startExp = skills.getCurrentExp(skills.MINING);
- g.setVisible(true);
- while(guiWait) sleep(500);
- return true;
- }
- @Override
- public int loop() {
- if(inventory.isFull()) {
- if(atBank()) {
- doBank();
- } else {
- walk();
- }
- } else {
- if(atMine()) {
- try {
- mineOres();
- } catch (Exception e) {
- }
- } else {
- walkR();
- }
- }
- return random(600, 800);
- }
- private void mineOres() {
- RSObject rock = objects.getNearest(oresToMine);
- if(getMyPlayer().getAnimation() != miningAnimation) {
- rock.doAction("Mine");
- }
- sleep(1800, 2000);
- }
- private void walkR() {
- pathToBank.reverse();
- pathToBank.traverse();
- pathToBank.reverse();
- }
- private void walk() {
- pathToBank.traverse();
- }
- public void onFinish() {
- log("Thank you for using AIOVarrockMiner!");
- }
- private boolean atBank() {
- RSObject bank = objects.getNearest(boothID);
- if(bank != null) {
- if(bank.isOnScreen()) {
- return true;
- }
- }
- return false;
- }
- private void doBank() {
- if(bank.isOpen()) {
- bank.depositAllExcept(pickID);
- sleep(800, 1200);
- } else {
- bank.open();
- sleep(1800, 2200);
- }
- }
- private boolean atMine() {
- RSObject ore = objects.getNearest(oresToMine);
- if(ore != null) {
- if(ore.isOnScreen()) {
- return true;
- }
- }
- return false;
- }
- //START: Code generated using Enfilade's Easel
- private final Color color1 = new Color(242, 230, 244);
- private final Color color2 = new Color(0, 0, 0);
- private final Color color3 = new Color(102, 5, 117);
- private final BasicStroke stroke1 = new BasicStroke(1);
- private final Font font1 = new Font("Arial", 0, 12);
- //END: Code generated using Enfilade's Easel
- /*
- * ----- PAINT -----
- */
- @Override
- public void onRepaint(Graphics g) {
- final int percent = skills.getPercentToNextLevel(skills.MINING);
- expGained = skills.getCurrentExp(Skills.MINING) - startExp;
- long millis = System.currentTimeMillis() - startTime;
- long hours = millis / (1000 * 60 * 60);
- millis -= hours * (1000 * 60 * 60);
- long minutes = millis / (1000 * 60);
- millis -= minutes * (1000 * 60);
- long seconds = millis / 1000;
- float xpsec = 0;
- if ((minutes > 0 || hours > 0 || seconds > 0) && expGained > 0) {
- xpsec = ((float) expGained)/(float)(seconds + (minutes*60) + (hours*60*60));
- }
- float xpmin = xpsec * 60;
- float xphour = xpmin * 60;
- float oresec = 0;
- if ((minutes > 0 || hours > 0 || seconds > 0) && oresMined > 0) {
- oresec = ((float) oresMined)/(float)(seconds + (minutes*60) + (hours*60*60));
- }
- float oremin = oresec * 60;
- float orehour = oremin * 60;
- Graphics2D g1 = (Graphics2D)g;
- g.setColor(color1);
- g.fillRect(263, 351, 223, 99);
- g.setColor(color2);
- g.drawRect(263, 351, 223, 99);
- g.setFont(font1);
- g.setColor(color3);
- g.drawString("Runtime:" + hours + ":" + minutes + ":" + seconds, 268, 366);
- g.drawString("Experience Gained:" + expGained + " Exp/h: " + (int)xphour, 268, 382);
- g.drawString("Ores Mined:" + oresMined + " Ores/h: " + (int)orehour, 268, 397);
- g.setColor(Color.red);
- g.fillRoundRect(268, 425, 101, 11, 16, 16); //these must be on same cordinates
- g.setColor(Color.black);
- g.fillRoundRect(268, 425, percent, 11, 16, 16); //these must be on same cordinates
- g.setColor(Color.white);
- g.drawString("" + percent + "%", 317, 435); //this must be in the center of the bar
- g.setColor(Color.blue);
- g.setColor(Color.black);
- g.drawRoundRect(268, 425, 101, 11, 16, 16); //these must be on same cordinates
- }
- @Override
- public void messageReceived(MessageEvent e) {
- String txt = e.getMessage();
- if(txt.contains("You manage to mine")) {
- oresMined++;
- }
- }
- class gui extends JFrame {
- public gui() {
- initComponents();
- }
- private void startButtonActionPerformed(ActionEvent e) {
- String chosen = oreSelected.getSelectedItem().toString();
- if(chosen.equals("Tin")) {
- oreID = TIN_ORE;
- oresToMine = TIN_ID;
- } else if(chosen.equals("Copper")) {
- oreID = COPPER_ORE;
- oresToMine = COPPER_ID;
- } else if(chosen.equals("Iron")) {
- oreID = IRON_ORE;
- oresToMine = IRON_ID;
- } else if(chosen.equals("Silver")) {
- oreID = SILVER_ORE;
- oresToMine = SILVER_ID;
- } else {
- oreID = CLAY_ORE;
- oresToMine = CLAY_ID;
- }
- guiWait = false;
- g.dispose();
- }
- private void initComponents() {
- // JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
- // Generated using JFormDesigner Evaluation license - eric fatasscartmanfff
- label1 = new JLabel();
- label2 = new JLabel();
- oreSelected = new JComboBox();
- label3 = new JLabel();
- startButton = new JButton();
- //======== this ========
- setBackground(Color.black);
- Container contentPane = getContentPane();
- //---- label1 ----
- label1.setText("AIOVarrockMiner");
- label1.setFont(new Font("Arial", Font.ITALIC, 12));
- label1.setForeground(Color.cyan);
- label1.setHorizontalAlignment(SwingConstants.CENTER);
- //---- label2 ----
- label2.setText("Ores to Mine: ");
- label2.setFont(new Font("Arial", Font.ITALIC, 12));
- label2.setForeground(Color.cyan);
- //---- oreSelected ----
- oreSelected.setForeground(Color.cyan);
- oreSelected.setBackground(Color.black);
- oreSelected.setFont(new Font("Arial", Font.ITALIC, 11));
- oreSelected.setModel(new DefaultComboBoxModel(new String[] {
- "Tin",
- "Copper",
- "Iron",
- }));
- //---- label3 ----
- label3.setText("Made by: Ecstacy");
- label3.setFont(new Font("Arial", Font.BOLD, 11));
- label3.setForeground(Color.cyan);
- //---- startButton ----
- startButton.setText("Start");
- startButton.setFont(new Font("Arial", Font.ITALIC, 12));
- startButton.setForeground(Color.cyan);
- startButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- startButtonActionPerformed(e);
- }
- });
- GroupLayout contentPaneLayout = new GroupLayout(contentPane);
- contentPane.setLayout(contentPaneLayout);
- contentPaneLayout.setHorizontalGroup(
- contentPaneLayout.createParallelGroup()
- .addGroup(contentPaneLayout.createSequentialGroup()
- .addGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.LEADING, false)
- .addGroup(contentPaneLayout.createSequentialGroup()
- .addGap(64, 64, 64)
- .addComponent(label1))
- .addGroup(contentPaneLayout.createSequentialGroup()
- .addContainerGap()
- .addComponent(label2)
- .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(oreSelected, 0, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
- .addContainerGap(71, Short.MAX_VALUE))
- .addGroup(GroupLayout.Alignment.TRAILING, contentPaneLayout.createSequentialGroup()
- .addContainerGap(136, Short.MAX_VALUE)
- .addComponent(label3))
- .addGroup(GroupLayout.Alignment.TRAILING, contentPaneLayout.createSequentialGroup()
- .addContainerGap(162, Short.MAX_VALUE)
- .addComponent(startButton)
- .addContainerGap())
- );
- contentPaneLayout.setVerticalGroup(
- contentPaneLayout.createParallelGroup()
- .addGroup(contentPaneLayout.createSequentialGroup()
- .addContainerGap()
- .addComponent(label1)
- .addGap(18, 18, 18)
- .addGroup(contentPaneLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
- .addComponent(label2)
- .addComponent(oreSelected, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 22, Short.MAX_VALUE)
- .addComponent(startButton)
- .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(label3))
- );
- pack();
- setLocationRelativeTo(getOwner());
- // JFormDesigner - End of component initialization //GEN-END:initComponents
- }
- // JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
- // Generated using JFormDesigner Evaluation license - eric fatasscartmanfff
- private JLabel label1;
- private JLabel label2;
- private JComboBox oreSelected;
- private JLabel label3;
- private JButton startButton;
- // JFormDesigner - End of variables declaration //GEN-END:variables
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement