Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package scripts.Decanter;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.Image;
- import java.awt.Toolkit;
- import java.io.IOException;
- import java.net.URL;
- import javax.imageio.ImageIO;
- import javax.swing.JFrame;
- import org.tribot.api.General;
- import org.tribot.api.Timing;
- import org.tribot.api.input.Mouse;
- import org.tribot.api.types.generic.Filter;
- import org.tribot.api.util.ABCUtil;
- import org.tribot.api2007.Banking;
- import org.tribot.api2007.Game;
- import org.tribot.api2007.Inventory;
- import org.tribot.api2007.WebWalking;
- import org.tribot.api2007.types.RSItem;
- import org.tribot.api2007.types.RSItemDefinition;
- import org.tribot.script.Script;
- import org.tribot.script.ScriptManifest;
- import org.tribot.script.interfaces.MessageListening07;
- import org.tribot.script.interfaces.Painting;
- @ScriptManifest(authors = { "Netami" }, category = "Tools", name = "Single Dose Maker", version = 1.00, description = "Turns potions into single doses!", gameMode = 1)
- public class Decanter extends Script implements MessageListening07, Painting{
- public int twoDoseID = 123;
- public int threeDoseID = 121;
- public int fourDoseID = 2428;
- public static int vialID = 229;
- public static boolean runScript = true;
- public boolean GUI_COMPLETE = false;
- public boolean potionCreated = false;
- public static String potionToDecant = "";
- public static String fourDose;
- public static String threeDose;
- public static String twoDose;
- public int decantsPerformed = 0;
- public ABCUtil abc = new ABCUtil();
- @Override
- public void run() {
- Mouse.setSpeed(100);
- Decanter_GUI GUI = new Decanter_GUI();
- JFrame f = new JFrame();
- f.getContentPane();
- f.add(GUI);
- Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
- int screenW = (screensize.width) / 2;
- int screenH = (screensize.height / 2);
- f.setVisible(true);
- f.setLocation(screenW / 2, screenH / 2);
- f.setSize(425,250);
- while(!GUI_COMPLETE){
- sleep(300);
- }
- f.setVisible(false);
- fourDose = potionToDecant + "(4)";
- threeDose = potionToDecant + "(3)";
- twoDose = potionToDecant + "(2)";
- println("Time to decant - thanks for using my script!");
- while(runScript){
- sleep(50,100);
- stateHandler();
- }
- }
- public static boolean potionExists(String potionName){
- return getPotionsWithout(potionName,1,false).length > 0;
- }
- enum State {
- CLICK_POTION,
- CLICK_VIAL,
- OPEN_BANK,
- WALK_TO_BANK,
- BANK_ITEMS
- }
- private static State getState(){
- if (Banking.isInBank()) {
- if (potionExists(potionToDecant)) {
- if (Game.isUptext("Use")) {
- return State.CLICK_VIAL;
- } else {
- return State.CLICK_POTION;
- }
- } else {
- if (!Banking.isBankScreenOpen()) {
- return State.OPEN_BANK;
- } else {
- return State.BANK_ITEMS;
- }
- }
- } else {
- return State.WALK_TO_BANK;
- }
- }
- public static void stateHandler(){
- switch (getState()) {
- case CLICK_POTION:
- Clicking.clickUsePotion(potionToDecant);
- break;
- case CLICK_VIAL:
- Clicking.usePotionOnVial();
- break;
- case BANK_ITEMS:
- Bank();
- break;
- case WALK_TO_BANK:
- WebWalking.walkToBank();
- break;
- case OPEN_BANK:
- Banking.openBank();
- break;
- }
- }
- public static RSItem[] getPotionsWithout(final String potionName, final int exceptedDose, boolean bank) {
- if(bank){
- return Banking.find(new Filter<RSItem>() {
- @Override
- public boolean accept(RSItem rsItem) {
- RSItemDefinition definition;
- String name;
- return rsItem != null
- && (definition = rsItem.getDefinition()) != null
- && (name = definition.getName()) != null
- && name.contains(potionName)
- && !name.contains(Integer.toString(exceptedDose));
- }
- });
- }else{
- return Inventory.find(new Filter<RSItem>() {
- @Override
- public boolean accept(RSItem rsItem) {
- RSItemDefinition definition;
- String name;
- return rsItem != null
- && (definition = rsItem.getDefinition()) != null
- && (name = definition.getName()) != null
- && name.contains(potionName)
- && !name.contains(Integer.toString(exceptedDose));
- }
- });
- }
- }
- public static void withdraw(String dosage){
- General.sleep(200,2000);
- Banking.withdraw(0, vialID);
- General.sleep(200,2000);
- Banking.close();
- Antiban.AFK();
- }
- public static void Bank(){
- General.sleep(200,500);
- Banking.depositAll();
- RSItem[] bankPotions;
- RSItem[] bankVials;
- if((bankPotions = Banking.find(fourDose)).length > 0 && Banking.find(fourDose)[0].getStack() >= 7 && (bankVials = Banking.find(vialID)).length > 0 && Banking.find(vialID)[0].getStack() > 21){
- Banking.withdraw(7, fourDose);
- withdraw(fourDose);
- }else if((bankPotions = Banking.find(threeDose)).length > 0 && Banking.find(threeDose)[0].getStack() >= 9 && (bankVials = Banking.find(vialID)).length > 0 && Banking.find(vialID)[0].getStack() > 19){
- Banking.withdraw(9, threeDose);
- withdraw(threeDose);
- }else if((bankPotions = Banking.find(twoDose)).length > 0 && Banking.find(twoDose)[0].getStack() >= 11 && (bankVials = Banking.find(vialID)).length > 0 && Banking.find(vialID)[0].getStack() > 17){
- Banking.withdraw(11,twoDose);
- withdraw(twoDose);
- }else{
- General.println("Could not find specified potions/vials in bank!");
- runScript = false;
- }
- }
- @SuppressWarnings("serial")
- public class Decanter_GUI extends javax.swing.JPanel {
- /**
- * Creates new form Decanter_GUI
- */
- public Decanter_GUI() {
- initComponents();
- }
- /**
- * This method is called from within the constructor to initialize the form.
- * WARNING: Do NOT modify this code. The content of this method is always
- * regenerated by the Form Editor.
- */
- @SuppressWarnings("unchecked")
- private void initComponents() {
- jLabel1 = new javax.swing.JLabel();
- jTextField1 = new javax.swing.JTextField();
- jLabel2 = new javax.swing.JLabel();
- jButton1 = new javax.swing.JButton();
- jLabel1.setFont(new java.awt.Font("Segoe UI", 0, 48)); // NOI18N
- jLabel1.setText("Netami's Decanter");
- jTextField1.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N
- jLabel2.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N
- jLabel2.setText("Potion: ");
- jButton1.setFont(new java.awt.Font("Segoe UI", 0, 24)); // NOI18N
- jButton1.setText("Start");
- jButton1.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- potionToDecant = jTextField1.getText().toString();
- if(!potionToDecant.endsWith(" potion")){
- potionToDecant = potionToDecant + " potion";
- }
- GUI_COMPLETE = true;
- }
- });
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
- this.setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(jLabel1))
- .addGroup(layout.createSequentialGroup()
- .addGap(56, 56, 56)
- .addComponent(jLabel2)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 207, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addGap(0, 0, Short.MAX_VALUE)
- .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 98, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(134, 134, 134))
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(jLabel1)
- .addGap(18, 18, 18)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel2))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- );
- }// </editor-fold>
- // Variables declaration - do not modify
- private javax.swing.JButton jButton1;
- private javax.swing.JLabel jLabel1;
- private javax.swing.JLabel jLabel2;
- private javax.swing.JTextField jTextField1;
- // End of variables declaration
- }
- public void serverMessageReceived(String arg0) {
- if(arg0.contains("divide")){
- decantsPerformed = decantsPerformed + 1;
- }
- }
- private Image getImage(String url) {
- try {
- return ImageIO.read(new URL(url));
- } catch(IOException e) {
- return null;
- }
- }
- private final Image img = getImage("http://www.runehq.com/image/geitems/v/vial.gif");
- Font font = new Font("Verdana", Font.BOLD, 14);
- public void onPaint(Graphics g) {
- Graphics2D gg = (Graphics2D)g;
- gg.drawImage(img, 418, 355, null);
- g.setFont(font);
- g.setColor(new Color(44,44,44));
- g.drawString("Runtime: " + Timing.msToString(getRunningTime()), 248, 400);
- g.drawString("Decants Performed: " + decantsPerformed,248,420);
- }
- public void clanMessageReceived(String arg0, String arg1) {
- }
- public void duelRequestReceived(String arg0, String arg1) {
- }
- public void personalMessageReceived(String arg0, String arg1) {
- }
- public void playerMessageReceived(String arg0, String arg1) {
- }
- public void tradeRequestReceived(String arg0) {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement