Jump to content
View in the app

A better way to browse. Learn more.

OSBot :: 2007 OSRS Botting

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[FREE][OMG] sAIO Fletcher [All-In-One]

Featured Replies

4QDCNiG.png

 

Hi.

The gui:

 http://gyazo.com/708c237d66c86821cae46f538df6ad10

 

 

 

The proggies:

http://gyazo.com/c3a...06ea1f6b25b34a6

http://gyazo.com/87f...fe9b54084d91170

http://gyazo.com/f34...7561fca26b8a7e0

http://gyazo.com/a81...ca82cf10c439b61

http://gyazo.com/7d5...b632936489d4af9

http://gyazo.com/125...c75b8855d7bea26

 
DL Link:
 
IK the code is shitty, but it works.
 
Source:

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import java.io.IOException;
import java.net.URL;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.swing.ButtonGroup;

import org.osbot.script.MethodProvider;
import org.osbot.script.Script;
import org.osbot.script.ScriptManifest;
import org.osbot.script.mouse.MouseDestination;
import org.osbot.script.mouse.RectangleDestination;
import org.osbot.script.rs2.map.Position;
import org.osbot.script.rs2.model.Entity;
import org.osbot.script.rs2.model.NPC;
import org.osbot.script.rs2.model.Player;
import org.osbot.script.rs2.model.RS2Object;
import org.osbot.script.rs2.skill.Skill;
import org.osbot.script.rs2.ui.Bank;
import org.osbot.script.rs2.ui.Inventory;
import org.osbot.script.rs2.ui.RS2InterfaceChild;
import org.osbot.script.rs2.ui.Spell;
import org.osbot.script.rs2.ui.Tab;
import org.osbot.script.rs2.utility.Area;

@ScriptManifest(name = "sAIO Fletcher", author = "Satan", version = 1.2, info = ":)")
public class s extends Script {

	static s.Timer runTime;
	long startTime;
	Condition c;
	String name;
	boolean display = true;
	private final Image show = getImage("http://i.imgur.com/ilR76Fx.png");
	private final Image hide = getImage("http://i.imgur.com/D5N4ahW.png");
	private final Image bg = getImage("http://i.imgur.com/WRklhVC.png");
	private boolean guiWait = true;
	NewJFrame gui = new NewJFrame();
	private String state;
	static String action;
	static String bankentity;
	int arrow = 882;
	int magic = 1513;
	int yew = 1515;
	int maple = 1517;
	int willow = 1519;
	int oak = 1521;
	int normal = 1511;
	int levels;
	int itemsmade;
	int expgained;
	int startExp;
	int startLvl;
	int currentExp;
	static int ubow;
	static int bow;
	static int item1;
	static int item2;
	static int bs = 1777;
	static int knife = 946;
	static int log;
	static Bow b;
	static Bow b1;
	static boolean darts = false;
	static boolean bolts = false;
	static boolean cut = false;
	static boolean string = false;
	static boolean progressive = false;
	static boolean cutstring = false;
	static boolean arrows = false;
	static boolean gemmedbolts = false;
	static boolean banking = false;
	static boolean shafts = false;
	static boolean headless = false;
	static boolean broadbolts = false;
	static boolean broadarrows = false;
	int lb = 305;
	int lb1 = 17;

	private Image getImage(String url) {
		try {
			return ImageIO.read(new URL(url));
		} catch (IOException e) {
		}
		return null;
	}

	public enum Bow { // bolts are used one on one with no interfaces
		HEADLESS(582, 5), // Make 10 sets
		ARROWS(582, 5), // singular choose make 10 sets //All arrows... //
						// Tipped bolts
		STRING(309, 3), // all for all //also cutting gems all
		SHAFT(305, 9), // 305 - 4 opts
		SHORT(305, 13), // TODO darts
		LONGBOW(305, 17), // DONE:
		STOCK(305, 21), // Stringing
		OAK_SHORT(304, 8), // Cutting
		OAK_LONG(304, 12), // Bolts,Gemmed bolts
		OAK_STOCK(304, 16), // headless , shafts
		WILLOW_SHORT(304, 8), // 304 - 3 opts
		WILLOW_LONG(304, 12), WILLOW_STOCK(304, 16), MAPLE_SHORT(304, 8), MAPLE_LONG(
				304, 12), MAPLE_STOCK(304, 16), YEW_SHORT(304, 8), YEW_LONG(
				304, 12), // 2 opts - 303
		YEW_STOCK(304, 16), MAGIC_SHORT(303, 4), MAGIC_LONG(303, 8);

		private int parent;
		private int child;

		Bow(int parent, int child) {
			this.parent = parent;
			this.child = child;

		}

		public int getParent() {
			return parent;

		}

		// 95,
		public int getChild() {
			return child;
		}
	}

	
	// 309, 3 = stringing Make X
	public void make(String a) throws InterruptedException {
		if (isInterfaceVisible(b.getParent(), b.getChild())) {
			client.getInterface(b.getParent()).getChild(b.getChild())
					.interact(a);
			waitFor(new Condition() {
				@Override
				public boolean active() {
					return (isInterfaceVisible(548, 95));
				}
			}, random(2000, 4000));
			if (isInterfaceVisible(548, 95)) {
				client.typeString("77");
				sleep(1000);
			}

		}
	}

	public void makee(String a) throws InterruptedException {
		if (isInterfaceVisible(b1.getParent(), b1.getChild())) {
			client.getInterface(b1.getParent()).getChild(b1.getChild())
					.interact(a);
			waitFor(new Condition() {
				@Override
				public boolean active() {
					return (isInterfaceVisible(548, 95));
				}
			}, random(2000, 4000));
			if (isInterfaceVisible(548, 95)) {
				client.typeString("77");
				sleep(1000);
			}

		}
	}

	public void make10Sets() throws InterruptedException {
		if (isInterfaceVisible(b.getParent(), b.getChild())) {
			client.getInterface(b.getParent()).getChild(b.getChild())
					.interact("Make 10 sets");
			sleep(random(2000, 2500));
		}
	}

	public void combine() throws InterruptedException {
		Inventory i = client.getInventory();
		if (!i.contains(item1) || !i.contains(item2)) {
			log("Ran out of supplies!");
		} else if (i.contains(item1) && i.contains(item2)) {
			this.client.getInventory().interactWithId(item1, "Use");
			sleep(random(100, 200));
			this.client.getInventory().interactWithId(item2, "Use");
			waitFor(new Condition() {
				@Override
				public boolean active() {
					return (isInterfaceVisible(b.getParent(), b.getChild()));
				}
			}, random(2000, 4000));
				make("Make 10 sets");
		}
	}
	public void combiner() throws InterruptedException {
		Inventory i = client.getInventory();
		if (!i.contains(item1) || !i.contains(item2)) {
			log("Ran out of supplies!");
		} else if (i.contains(item1) && i.contains(item2)) {
			this.client.getInventory().interactWithId(item1, "Use");
			sleep(random(100, 200));
			this.client.getInventory().interactWithId(item2, "Use");
		}
	}
	
	
	

	public void string() throws InterruptedException {
		if (this.client.getInventory().contains(bs)
				&& this.client.getInventory().contains(ubow)) {
			this.client.getInventory().interactWithId(bs, "Use");
			sleep(200);
			this.client.getInventory().interactWithId(ubow, "Use");
			waitFor(new Condition() {
				@Override
				public boolean active() {
					return (isInterfaceVisible(b.getParent(), b.getChild()));
				}
			}, random(2000, 4000));
			make("Make All");
		}
	}

	public void stringg() throws InterruptedException {
		if (this.client.getInventory().contains(bs)
				&& this.client.getInventory().contains(ubow)) {
			this.client.getInventory().interactWithId(bs, "Use");
			sleep(200);
			this.client.getInventory().interactWithId(ubow, "Use");
			log("waiting4");
			waitFor(new Condition() {
				@Override
				public boolean active() {
					return (isInterfaceVisible(b1.getParent(), b1.getChild()));
				}
			}, random(2000, 4000));
			log("make");
			makee("Make All");
		}
	}

	private boolean waitFor(Condition c, long timeout) {
		Timer time = new Timer(timeout);
		while ((time.isRunning()) && (!c.active())) {
			random(20);
		}
		c.active();
		return c.active();
	}

	public void oBank() throws InterruptedException {
		RS2Object c = closestObjectForName(bankentity);
		if (c != null && !client.getBank().isOpen()) {
			if (canReach(c)) {
				c.interact(action);
				waitFor(new Condition() {
					@Override
					public boolean active() {
						return (client.getBank().isOpen());
					}
				}, random(2000, 4000));
			}
		}
	}

	public void bank() throws InterruptedException {
		Bank b = client.getBank();
		Inventory i = client.getInventory();
		if (banking == false) {
			log("We're not banking...");
			return;
		} else if (banking && cut && !progressive && !i.contains(log)) {
			if (!b.isOpen()) {
				oBank();
			} else if (b.isOpen()) {
				b.depositAllExcept(knife);
				if (!b.contains(log) && !i.contains(log)) {
					log("Ran out of logs");
					 
				}
				if (!i.contains(knife)) {
					wi(knife, 1);
				}
				if (!i.contains(log)) {
					b.withdrawAll(log);
				}
				if (i.contains(knife) && i.contains(log)) {
					b.close();

				}
			}
		} else if (banking && progressive && !i.contains(log)) {
			if (!b.isOpen()) {
				oBank();
			} else if (b.isOpen()) {
				b.depositAllExcept(knife);
				if (!b.contains(log) && !i.contains(log)) {
					log("Ran out of logs");
					 
				}
				if (!i.contains(knife)) {
					wi(knife, 1);
				}
				if (!i.contains(log)) {
					b.withdrawAll(log);
				}
				if (i.contains(knife) && i.contains(log)) {
					b.close();

				}
			}
		} else if (banking && string && !i.contains(bs) || banking && string
				&& !i.contains(ubow)) {
			if (!b.isOpen()) {
				oBank();
				log("obank");
			} else if (b.isOpen()) {
				if (!b.contains(ubow) && !i.contains(ubow)) {
					log("Ran out of bows(u)");
					 
				}
				if (!b.contains(bs) && !i.contains(bs)) {
					log("Ran out of bs");
					 
				}
				b.depositAll();				
					wi(ubow, 14);
					b.withdrawAll(bs);
					b.close();
				}
		} else if (shafts && !i.contains(log)) {
			if (!b.isOpen()) {
				oBank();
			} else if (b.isOpen()) {

				b.depositAllExcept(knife);
				if (!i.contains(knife)) {
					b.withdraw1(knife);
				}
				if (!i.contains(log)) {
					b.withdrawAll(log);

				}
				if (i.contains(knife) && i.contains(log)) {
					b.close();
				}
			}
		} else if (banking && cutstring) {
			if (!b.isOpen()) {
				oBank();
			} else if (b.isOpen()) {
				b.depositAllExcept(knife);
				if (!i.contains(log)) {
					wi(log, 13);
				}
				if (!i.contains(bs)) {
					wi(bs, 13);
				}
				if (!i.contains(knife)) {
					b.withdraw1(knife);
				}
				if (i.contains(knife) && i.contains(log) && i.contains(bs)) {
					b.close();
				}
			}
		}
	}

	public Bow getBow() {
		log("getBow");
		if (client.getSkills().getLevel(Skill.FLETCHING) < 5) {
			log = normal;
			return b = Bow.SHAFT;

		} else if (client.getSkills().getLevel(Skill.FLETCHING) >= 5
				&& client.getSkills().getLevel(Skill.FLETCHING) < 10) {
			log = normal;
			return b = Bow.SHORT;

		} else if (client.getSkills().getLevel(Skill.FLETCHING) >= 10
				&& client.getSkills().getLevel(Skill.FLETCHING) < 20) {
			log = normal;
			return b = Bow.LONGBOW;

		} else if (client.getSkills().getLevel(Skill.FLETCHING) >= 20
				&& client.getSkills().getLevel(Skill.FLETCHING) < 25) {
			log = oak;
			return b = Bow.OAK_SHORT;

		} else if (client.getSkills().getLevel(Skill.FLETCHING) >= 25
				&& client.getSkills().getLevel(Skill.FLETCHING) < 35) {
			log = oak;
			return b = Bow.OAK_LONG;

		} else if (client.getSkills().getLevel(Skill.FLETCHING) >= 35
				&& client.getSkills().getLevel(Skill.FLETCHING) < 40) {
			log = willow;
			return b = Bow.WILLOW_SHORT;

		} else if (client.getSkills().getLevel(Skill.FLETCHING) >= 40
				&& client.getSkills().getLevel(Skill.FLETCHING) < 50) {
			log = willow;
			return b = Bow.WILLOW_LONG;

		} else if (client.getSkills().getLevel(Skill.FLETCHING) >= 50
				&& client.getSkills().getLevel(Skill.FLETCHING) < 55) {
			log = maple;
			return b = Bow.MAPLE_SHORT;

		} else if (client.getSkills().getLevel(Skill.FLETCHING) >= 55
				&& client.getSkills().getLevel(Skill.FLETCHING) < 65) {
			log = maple;
			return b = Bow.MAPLE_SHORT;

		} else if (client.getSkills().getLevel(Skill.FLETCHING) >= 65
				&& client.getSkills().getLevel(Skill.FLETCHING) < 70) {
			log = yew;
			return b = Bow.YEW_SHORT;

		} else if (client.getSkills().getLevel(Skill.FLETCHING) >= 70
				&& client.getSkills().getLevel(Skill.FLETCHING) < 80) {
			log = yew;
			return b = Bow.YEW_LONG;

		} else if (client.getSkills().getLevel(Skill.FLETCHING) >= 80
				&& client.getSkills().getLevel(Skill.FLETCHING) < 85) {
			log = magic;
			return b = Bow.MAGIC_SHORT;

		} else if (client.getSkills().getLevel(Skill.FLETCHING) >= 85
				&& client.getSkills().getLevel(Skill.FLETCHING) < 100) {
			log = magic;
			return b = Bow.MAGIC_LONG;

		}
		return b = Bow.SHAFT;
	}

	public boolean isInterfaceVisible(int parent, int child) {
		return (this.client.getInterface(parent) != null)
				&& (this.client.getInterface(parent).isVisible())
				&& (this.client.getInterface(parent).getChild(child) != null)
				&& (this.client.getInterface(parent).getChild(child)
						.isVisible());
	}

	public void cutstring() throws InterruptedException {
		Inventory i = client.getInventory();
		if (i.contains(log) && i.contains(knife)) {
			cut();
		} else if (i.contains(ubow) && !i.contains(log) && i.contains(bs)) {
			runStringg();
		}
	}

	public void runString() throws InterruptedException {
		Inventory inven = this.client.getInventory();
		Player player = this.client.getMyPlayer();
		Bank bank = this.client.getBank();

		if ((inven.contains(ubow) && inven.contains(1777))) {
			if (!bank.isOpen()) {
				if (!player.isAnimating()) {
					sleep(random(1200, 1300));
					if (!player.isAnimating())
						string();
				}
			} else
				bank.close();
		} else
			bank();
	}
	public void comb() throws InterruptedException {
		Inventory inven = this.client.getInventory();
		Player player = this.client.getMyPlayer();
		Bank bank = this.client.getBank();
		long z = 0;
		if ((inven.contains(item1) && inven.contains(item2))) {
			if (!bank.isOpen()) {
				if (!player.isAnimating()) {
					long x = inven.getAmount(arrow);
					if(z == x+150){
						combine();
					}
					sleep(random(1200, 1300));
					long y = inven.getAmount(arrow);
					if(y==x || z == x+150){
					if (!player.isAnimating()){
						z = inven.getAmount(arrow);
						combine();
						
				}
				}
					}
			} else
				bank.close();
		}
	}

	public void runStringg() throws InterruptedException {
		Inventory inven = this.client.getInventory();
		Player player = this.client.getMyPlayer();
		Bank bank = this.client.getBank();

		if ((inven.contains(ubow) && inven.contains(1777))) {
			if (!bank.isOpen()) {
				if (!player.isAnimating()) {
					sleep(random(1200, 1300));
					if (!player.isAnimating())
						stringg();
				}
			} else
				bank.close();
		} else
			bank();
	}

	public void useOn(int id1, int id2) throws InterruptedException {
		this.client.getInventory().interactWithId(id1, "Use");
		sleep(200);
		this.client.getInventory().interactWithId(id2, "Use");
	}

	public void cut() throws InterruptedException {
		Player p = client.getMyPlayer();
		Inventory i = client.getInventory();
		if (this.client.getInventory().contains(knife)
				&& this.client.getInventory().contains(log)) {
			useOn(knife, log);
			waitFor(new Condition() {
				@Override
				public boolean active() {
					return (isInterfaceVisible(b.getParent(), b.getChild()));
				}
			}, random(2000, 4000));
			make("Make X");
			if (p.isAnimating() && i.contains(log)) {
				sleep(100);
			} else if (p.isAnimating() && !i.contains(log)) {
				bank();
			}
		}
	}

	public void progressive() throws InterruptedException {
		getBow();
		cut();
	}

	public void onStart() {
		gui.setVisible(true);
		gui.setLocationRelativeTo(null);
		while (guiWait) {
			try {
				sleep(500);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		startExp = client.getSkills().getExperience(Skill.FLETCHING);
		startLvl = client.getSkills().getCurrentLevel(Skill.FLETCHING);
		startTime = System.currentTimeMillis();
		name = client.getBot().getUsername();
		runTime = new s.Timer();
		try {
			openTab(Tab.INVENTORY);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

	public void onMessage(String message) throws InterruptedException {
		if (message.contains("a Fletching level")) {
			levels = +1;
		}
		if (message.contains("You add a string")
				|| message.contains("You carefully cut the wood into a")) {
			itemsmade++;
		}
		if (message.contains("to 15 arrow shafts")) {
			itemsmade = itemsmade + 15;
		}
		if (message.contains("10 bolts.")) {
			itemsmade = itemsmade + 10;
		}

	}

	@Override
	public void mouseClicked(MouseEvent e) {
		Rectangle r = new Rectangle(400, 479, 520, 501); // rectangle positions
															// are positions on
															// the screen
		if (r.contains(e.getPoint())) {
			display = !display;
		}
	}

	public void onPaint(Graphics g) {
		Graphics2D gr = (Graphics2D) g;
		final Color blk = new Color(1, 1, 1);
		final Color wht = new Color(255, 255, 255);
		gr.setColor(blk);
		g.setFont(new Font("Tahoma", Font.BOLD, 18));
		if (display) {
			g.drawImage(hide, 400, 479, null);
			g.drawImage(bg, 0, 294, null);
			gr.setColor(wht);
			g.setFont(new Font("Calibri", 0, 20));
			g.drawString("" + name, 100, 371);
			g.drawString("" + state, 370, 371);
			g.drawString("" + format(System.currentTimeMillis() - startTime),
					115, 411);
			g.drawString("" + itemsmade , 125, 436);
			g.drawString(
					""
							+ (client.getSkills().getExperience(Skill.FLETCHING) - startExp),
					375, 411);
			g.drawString(
					""
							+ getPerHour(client.getSkills().getExperience(
									Skill.FLETCHING)
									- startExp), 360, 436);
			g.drawString("" + getPerHour(itemsmade), 142, 459);
			g.drawString(
					""
							+ (client.getSkills().getLevel(Skill.FLETCHING) - startLvl),
					395, 459);
		} else if (!display) {
			g.drawImage(show, 400, 479, null);
		}
	}

	public int onLoop() throws InterruptedException {
		switch (getState()) {
		case BANK:
			state = "Banking.";
			if (progressive) {
				getBow();
			}
			bank();
			break;
		case FLETCH:
			if (progressive) {
				log("Progressive.");
				state = "Progressive.";
				progressive();
			} else if (cut && !progressive) {
				state = "Cutting.";
				cut();
			} else if (string) {
				state = "Stringing.";
				runString();
			} else if (cutstring) {
				state = "Cut&String.";
				cutstring();
			} else if (bolts) {
				state = "Bolts.";
				combiner();
			} else if (shafts) {
				state = "Shafts.";
				cut();
			}else if(gemmedbolts){
				comb();
			}else if(headless){
				comb();
			}else if(arrows){
				comb();
			}
			antiBan1();
			antiBan2();
			break;
		case SLEEP:
			state = "Sleeping.";
			sleep(100);
			antiBan1();
			antiBan2();
			break;
		case CLOSE:
			state = "Close bank.";
			client.getBank().close();
			break;

		}

		return 0;
	}

	public State getState() throws InterruptedException {
		Inventory i = client.getInventory();
		Player p = client.getMyPlayer();
		if (client.getBank().isOpen() && i.contains(log)
				|| client.getBank().isOpen() && i.contains(bs)) {
			return State.CLOSE;
		} else if (!i.contains(log) && cut || string && !i.contains(bs)
				|| cutstring && !i.contains(bs) || cutstring
				&& !i.contains(knife) || cut && !i.contains(knife) || shafts
				&& !i.contains(log) || shafts && !i.contains(knife)) {
			return State.BANK;
		} else if (p.getAnimation() == -1) {
			if (i.contains(log) && cut 
					|| i.contains(ubow) && string
					|| cutstring && i.contains(log) 
					|| cutstring
					&& i.contains(bs) || shafts && i.contains(log)
					&& i.contains(knife)
					|| headless
					|| bolts
					|| arrows
					|| gemmedbolts
					
					) {
				return State.FLETCH;
			}
		}

		return State.SLEEP;
	}

	public int getPerHour(int gained) {
		return (int) (gained * 3600000.0D / runTime.getElapsed());
	
	}

	String format(final long time) {
		final StringBuilder t = new StringBuilder();
		final long total_secs = time / 1000;
		final long total_mins = total_secs / 60;
		final long total_hrs = total_mins / 60;
		final int secs = (int) total_secs % 60;
		final int mins = (int) total_mins % 60;
		final int hrs = (int) total_hrs % 24;
		if (hrs < 10) {
			t.append("0");
		}
		t.append(hrs);
		t.append(":");
		if (mins < 10) {
			t.append("0");
		}
		t.append(mins);
		t.append(":");
		if (secs < 10) {
			t.append("0");
		} else if (secs < 0) {
			t.append("0");
		} else {
			t.append(secs);
		}
		return t.toString();
	}

	public class Timer {
		private long period, start;

		public Timer() {
			this(0);
		}

		public Timer(long period) {
			this.period = period;
			this.start = System.currentTimeMillis();
		}

		public long getElapsed() {
			return System.currentTimeMillis() - start;
		}

		public long getRemaining() {
			if (period == 0)
				return -1;
			return period - getElapsed();
		}

		public boolean isRunning() {
			return getElapsed() <= period || period == 0;
		}

		public void reset() {
			start = System.currentTimeMillis();
		}

		public void end() {
			start = System.currentTimeMillis() - period;
		}

		public long setEndIn(long ms) {
			start = System.currentTimeMillis() - ms;
			return period = ms;
		}
	}

	public static abstract interface Condition {
		public abstract boolean active();

	}


	public boolean wi(int itemID, int am) throws InterruptedException {
		if ((!this.client.getBank().isOpen())
				|| (!this.client.getBank().contains(itemID))) {
			return false;
		}
		int firstVisibleSlot = -1;
		int lastVisibleSlot = -1;
		int itemSlot = this.client.getBank().getSlotForId(itemID);

		if (!this.client.getBank().isSlotVisible(itemSlot)) {
			for (int i = 0; i < 1000; i++) {
				if ((firstVisibleSlot == -1)
						&& (this.client.getBank().isSlotVisible(i))) {
					firstVisibleSlot = i;
				} else if ((firstVisibleSlot != -1)
						&& (!this.client.getBank().isSlotVisible(i))) {
					lastVisibleSlot = i - 1;
					break;
				}
			}
			if ((itemSlot < firstVisibleSlot) || (itemSlot > lastVisibleSlot)) {
				if (itemSlot < firstVisibleSlot) {
					MouseDestination md = new RectangleDestination(
							new Rectangle(481, 60, 12, 12));
					this.client.moveMouse(md, true);
					while (!this.client.getBank().isSlotVisible(itemSlot))
						this.client.clickMouse(false);
				} else if (itemSlot > lastVisibleSlot) {
					MouseDestination md = new RectangleDestination(
							new Rectangle(481, 272, 12, 12));
					this.client.moveMouse(md, true);
					while (!this.client.getBank().isSlotVisible(itemSlot)) {
						this.client.clickMouse(false);
					}
				}
			}
		}
		return this.client.getBank().withdrawX(itemID, am);
	}

	enum State {
		SLEEP, FLETCH, BANK, CLOSE
	}
	/*
	 * To change this template, choose Tools | Templates
	 * and open the template in the editor.
	 */

	/**
	 *
	 * @author Tomek
	 */
	public class NewJFrame extends javax.swing.JFrame {

	    public NewJFrame() {
	        initComponents();
	        buttongroup();
	    }
	  public void buttongroup(){
		    ButtonGroup group = new ButtonGroup();
		    group.add(CutCB);
		    group.add(jRadioButton1);
		    group.add(CutStringCB);
		    group.add(ArrowsCB);
		    group.add(BoltsCB);
		    group.add(Prog);
		    group.add(ShaftsCB);
		    group.add(TippedBoltsCB);
		    group.add(DartsCB);
		    group.add(HeadlessCB);
		    group.add(BroadArrowsCB);
		    group.add(BroadCB);
		    }
	    @SuppressWarnings("unchecked")
        
	    private void initComponents() {

	        jButton1 = new javax.swing.JButton();
	        jLabel1 = new javax.swing.JLabel();
	        CutCombo = new javax.swing.JComboBox();
	        StringCombo = new javax.swing.JComboBox();
	        CutStringCombo = new javax.swing.JComboBox();
	        ArrowsCombo = new javax.swing.JComboBox();
	        jLabel3 = new javax.swing.JLabel();
	        jLabel2 = new javax.swing.JLabel();
	        BoltsCombo = new javax.swing.JComboBox();
	        DartsCombo = new javax.swing.JComboBox();
	        TippedBoltsCombo = new javax.swing.JComboBox();
	        jSeparator1 = new javax.swing.JSeparator();
	        jSeparator2 = new javax.swing.JSeparator();
	        jLabel4 = new javax.swing.JLabel();
	        jLabel5 = new javax.swing.JLabel();
	        BankName = new javax.swing.JComboBox();
	        jLabel6 = new javax.swing.JLabel();
	        BroadCB = new javax.swing.JRadioButton();
	        HeadlessCB = new javax.swing.JRadioButton();
	        BroadArrowsCB = new javax.swing.JRadioButton();
	        Prog = new javax.swing.JRadioButton();
	        ShaftsCB = new javax.swing.JRadioButton();
	        CutCB = new javax.swing.JRadioButton();
	        jRadioButton1 = new javax.swing.JRadioButton();
	        CutStringCB = new javax.swing.JRadioButton();
	        ArrowsCB = new javax.swing.JRadioButton();
	        BoltsCB = new javax.swing.JRadioButton();
	        TippedBoltsCB = new javax.swing.JRadioButton();
	        DartsCB = new javax.swing.JRadioButton();
	        DartsCB.setEnabled(false);
	        BroadCB.setEnabled(false);
	        BroadArrowsCB.setEnabled(false);
	        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

	        jButton1.setText("START!");
	        jButton1.setToolTipText("");
	        jButton1.addActionListener(new java.awt.event.ActionListener() {
	            public void actionPerformed(java.awt.event.ActionEvent evt) {
	                jButton1ActionPerformed(evt);
	            }
	        });

	        jLabel1.setFont(new java.awt.Font("Trebuchet MS", 1, 48)); // NOI18N
	        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
	        jLabel1.setText("sAIO Fletcher");
	        jLabel1.setToolTipText("");

	        CutCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Magic Longbows", "Magic Shortbows", "Yew Longbows", "Yew Shortbows", "Maple Longbows", "Maple Shortbows", "Willow Longbows", "Willow Shortbows", "Oak Longbows", "Oak Shortbows", "Longbows", "Shortbows" }));

	        StringCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Magic Longbows", "Magic Shortbows", "Yew Longbows", "Yew Shortbows", "Maple Longbows", "Maple Shortbows", "Willow Longbows", "Willow Shortbows", "Oak Longbows", "Oak Shortbows", "Longbows", "Shortbows" }));

	        CutStringCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Magic Longbows", "Magic Shortbows", "Yew Longbows", "Yew Shortbows", "Maple Longbows", "Maple Shortbows", "Willow Longbows", "Willow Shortbows", "Oak Longbows", "Oak Shortbows", "Longbows", "Shortbows" }));

	        ArrowsCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Dragon", "Rune", "Adamant", "Mithril", "Steel", "Iron", "Bronze" }));

	        jLabel3.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
	        jLabel3.setText("General");

	        jLabel2.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
	        jLabel2.setText("Miscellaneous");

	        BoltsCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Runite", "Adamantite", "Mithril", "Steel", "Iron", "Bronze" }));

	        DartsCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Dragon", "Rune", "Adamant", "Mithril", "Steel", "Iron", "Bronze" }));

	        TippedBoltsCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Onyx + Runite", "Dstone + Runite", "Diamond + Adamant", "Ruby + Adamant", "Emerald + Mithril", "Sapphire + Mithril", "Red Topaz + Steel", "Pearl + Iron", "Opal + Bronze" }));

	        jLabel4.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
	        jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
	        jLabel4.setText("Make sure you have materials in inventory when making arrows/darts/bolts/shafts.");

	        jLabel5.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
	        jLabel5.setText("Bank Name :");

	        BankName.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Bank booth", "Bank chest" }));

	        jLabel6.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
	        jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
	        jLabel6.setText("Settings:");

	        BroadCB.setText("Make Broad Bolts?");

	        HeadlessCB.setText("Make Headless Arrows?");

	        BroadArrowsCB.setText("Make Broad Arrows?");

	        Prog.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
	        Prog.setText("Progressive Fletching? [RECOMMENDED][Only Cutting]");

	        ShaftsCB.setText("Make Arrow Shafts?");

	        CutCB.setText("Cut?");

	        jRadioButton1.setText("String?");

	        CutStringCB.setText("Cut&String?");

	        ArrowsCB.setText("Make Arrows?");

	        BoltsCB.setText("Make Bolts?");

	        TippedBoltsCB.setText("Gem-Tip Bolts?");

	        DartsCB.setText("Make Darts?");
	 

	        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
	        getContentPane().setLayout(layout);
	        layout.setHorizontalGroup(
	            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
	            .addGroup(layout.createSequentialGroup()
	                .addContainerGap()
	                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
	                    .addGroup(layout.createSequentialGroup()
	                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
	                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
	                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
	                                    .addComponent(ArrowsCB, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
	                                    .addComponent(CutStringCB, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
	                                    .addComponent(jRadioButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE)
	                                    .addComponent(CutCB, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
	                                .addGap(14, 14, 14)
	                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
	                                    .addComponent(CutCombo, 0, 144, Short.MAX_VALUE)
	                                    .addComponent(StringCombo, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
	                                    .addComponent(CutStringCombo, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
	                                    .addComponent(ArrowsCombo, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
	                            .addGroup(layout.createSequentialGroup()
	                                .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 247, javax.swing.GroupLayout.PREFERRED_SIZE)
	                                .addGap(0, 0, Short.MAX_VALUE))
	                            .addGroup(layout.createSequentialGroup()
	                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
	                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
	                                        .addGroup(layout.createSequentialGroup()
	                                            .addComponent(BoltsCB, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
	                                            .addGap(14, 14, 14))
	                                        .addGroup(layout.createSequentialGroup()
	                                            .addComponent(TippedBoltsCB)
	                                            .addGap(12, 12, 12)))
	                                    .addGroup(layout.createSequentialGroup()
	                                        .addComponent(DartsCB)
	                                        .addGap(14, 14, 14)))
	                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
	                                    .addComponent(DartsCombo, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
	                                    .addComponent(BoltsCombo, javax.swing.GroupLayout.Alignment.TRAILING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
	                                    .addComponent(TippedBoltsCombo, javax.swing.GroupLayout.Alignment.TRAILING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
	                        .addGap(18, 18, 18)
	                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
	                            .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
	                            .addGroup(layout.createSequentialGroup()
	                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
	                                    .addComponent(Prog)
	                                    .addGroup(layout.createSequentialGroup()
	                                        .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
	                                        .addGap(18, 18, 18)
	                                        .addComponent(BankName, javax.swing.GroupLayout.PREFERRED_SIZE, 137, javax.swing.GroupLayout.PREFERRED_SIZE))
	                                    .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 295, javax.swing.GroupLayout.PREFERRED_SIZE))
	                                .addGap(0, 4, Short.MAX_VALUE))
	                            .addGroup(layout.createSequentialGroup()
	                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
	                                    .addComponent(BroadArrowsCB)
	                                    .addComponent(HeadlessCB)
	                                    .addComponent(BroadCB)
	                                    .addComponent(ShaftsCB))
	                                .addContainerGap())))
	                    .addGroup(layout.createSequentialGroup()
	                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
	                            .addComponent(jButton1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
	                            .addComponent(jSeparator2, javax.swing.GroupLayout.Alignment.LEADING)
	                            .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.LEADING)
	                            .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
	                            .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
	                        .addContainerGap())))
	        );
	        layout.setVerticalGroup(
	            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
	            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
	                .addContainerGap()
	                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE)
	                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
	                .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
	                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
	                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
	                    .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE)
	                    .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
	                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
	                .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
	                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
	                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
	                    .addComponent(CutCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
	                    .addComponent(ShaftsCB)
	                    .addComponent(CutCB))
	                .addGap(18, 18, 18)
	                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
	                    .addComponent(StringCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
	                    .addComponent(HeadlessCB)
	                    .addComponent(jRadioButton1))
	                .addGap(18, 18, 18)
	                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
	                    .addComponent(CutStringCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
	                    .addComponent(BroadCB)
	                    .addComponent(CutStringCB))
	                .addGap(18, 18, 18)
	                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
	                    .addComponent(ArrowsCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
	                    .addComponent(BroadArrowsCB)
	                    .addComponent(ArrowsCB))
	                .addGap(18, 18, 18)
	                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
	                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
	                        .addComponent(BoltsCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
	                        .addComponent(BoltsCB))
	                    .addComponent(jLabel6))
	                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
	                    .addGroup(layout.createSequentialGroup()
	                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
	                            .addComponent(BankName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
	                            .addComponent(jLabel5))
	                        .addGap(18, 18, 18)
	                        .addComponent(Prog)
	                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
	                    .addGroup(layout.createSequentialGroup()
	                        .addGap(18, 18, 18)
	                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
	                            .addComponent(DartsCB)
	                            .addComponent(DartsCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
	                        .addGap(18, 18, 18)
	                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
	                            .addComponent(TippedBoltsCB)
	                            .addComponent(TippedBoltsCombo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
	                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
	                .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
	                .addGap(4, 4, 4)
	                .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
	                .addContainerGap())
	        );

	        pack();
	    }// </editor-fold>                        
	  
	  
			private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
				if (Prog.isSelected()) {
					s.progressive = true;
				}
				if (ShaftsCB.isSelected()) {
					s.b = Bow.SHAFT;
					s.log = 1511;
					s.shafts = true;
					s.banking = true;
				}
				if (HeadlessCB.isSelected()) {
					s.b = Bow.HEADLESS;
					s.item1 = 314; // feather
					s.item2 = 52; // shaft
					s.headless = true;
					s.banking = false;
				}
				if (TippedBoltsCB.isSelected()) {
					s.gemmedbolts = true;
					s.banking = false;
					s.b = Bow.ARROWS;
					switch (TippedBoltsCombo.getSelectedIndex()) {
					case 0:
						s.item1 = 9144; // rune
						s.item2 = 9194;
						break;
					case 1:
						s.item1 = 9144; // rune
						s.item2 = 9193;
						break;
					case 2:
						s.item1 = 9143; // addy
						s.item2 = 9192;
						break;
					case 3:
						s.item1 = 9143;
						s.item2 = 9191;
						break;
					case 4:
						s.item1 = 9142;
						s.item2 = 9190;
						break;
					case 5:
						s.item1 = 9142;

						s.item2 = 9189;
						break;
					case 6:
						s.item1 = 9141;
						s.item2 = 9188;
						break;
					case 7:
						s.item1 = 9140;
						s.item2 = 25480;
						break;
					case 8:
						s.item1 = 877;
						s.item2 = 45;
						break;
					}
				}
				if (DartsCB.isSelected()) {
					s.darts = true;
					s.banking = false;
					switch (DartsCombo.getSelectedIndex()) {
					case 0:
						s.item1 = 314;
						s.item2 = 11232;
						break;
					case 1:
						s.item1 = 314;
						s.item2 = 824;
						break;
					case 2:
						s.item1 = 314;
						s.item2 = 823;
						break;
					case 3:
						s.item1 = 314;
						s.item2 = 822;
						break;
					case 4:
						s.item1 = 314;
						s.item2 = 821;
						break;
					case 5:
						s.item1 = 314;
						s.item2 = 820;
						break;
					case 6:
						s.item1 = 314;
						s.item2 = 819;
						break;
					}
				}
				if (BoltsCB.isSelected()) {
					s.bolts = true;
					s.banking = false;
					switch (BoltsCombo.getSelectedIndex()) {
					case 0:
						s.item1 = 314;
						s.item2 = 9381;
						break;
					case 1:
						s.item1 = 314;
						s.item2 = 9380;
						break;
					case 2:
						s.item1 = 314;
						s.item2 = 9379;
						break;
					case 3:
						s.item1 = 314;
						s.item2 = 9378;
						break;
					case 4:
						s.item1 = 314;
						s.item2 = 9377;
						break;
					case 5:
						s.item1 = 314;
						s.item2 = 9375;
						break;

					}
				}
				if (ArrowsCB.isSelected()) {
					s.arrows = true;
					s.banking = false;
					s.b = Bow.ARROWS;
					switch (ArrowsCombo.getSelectedIndex()) {
					case 0:
						s.item1 = 53;
						s.item2 = 11237;
						break;
					case 1:
						s.item1 = 53;
						s.item2 = 44;
						break;
					case 2:
						s.item1 = 53;
						s.item2 = 43;
						break;
					case 3:
						s.item1 = 53;
						s.item2 = 42;
						break;
					case 4:
						s.item1 = 53;
						s.item2 = 41;
						break;
					case 5:
						s.item1 = 53;
						s.item2 = 40;
						break;
					case 6:
						s.item1 = 53;
						s.item2 = 39;
						break;

					}
				}
				if (CutCB.isSelected()) {
					s.banking = true;
					s.cut = true;

					switch (CutCombo.getSelectedIndex()) {
					case 0:

						s.b = Bow.MAGIC_LONG;
						s.log = 1513;
						s.ubow = 70;
						s.bow = 859;
						break;
					case 1:
						s.b = Bow.MAGIC_SHORT;
						s.log = 1513;
						s.ubow = 72;
						s.bow = 861;
						break;
					case 2:
						s.b = Bow.YEW_LONG;
						s.log = 1515;
						s.ubow = 66;
						s.bow = 855;
						break;
					case 3:
						s.b = Bow.YEW_SHORT;

						s.log = 1515;
						s.ubow = 68;
						s.bow = 857;
						break;
					case 4:
						s.b = Bow.MAPLE_LONG;
						s.log = 1517;
						s.ubow = 62;
						s.bow = 851;
						break;
					case 5:
						s.b = Bow.MAPLE_SHORT;
						s.log = 1517;
						s.ubow = 64;
						s.bow = 853;
						break;
					case 6:
						s.b = Bow.WILLOW_LONG;
						s.log = 1519;
						s.ubow = 58;
						s.bow = 847;
						break;
					case 7:
						s.b = Bow.WILLOW_SHORT;
						s.log = 1519;
						s.ubow = 60;
						s.bow = 849;
						break;
					case 8:
						s.b = Bow.OAK_LONG;
						s.log = 1521;
						s.ubow = 56;
						s.bow = 845;
						break;
					case 9:
						s.b = Bow.OAK_SHORT;
						s.log = 1519;
						s.ubow = 54;
						s.bow = 843;
						break;
					case 10:
						s.b = Bow.LONGBOW;
						s.log = 1511;
						s.ubow = 48;
						s.bow = 839;
						break;
					case 11:
						s.b = Bow.SHORT;
						s.log = 1511;
						s.ubow = 50;
						s.bow = 841;
						break;
					}
				}
				if (jRadioButton1.isSelected()) {
					s.b = Bow.STRING;
					s.banking = true;
					s.string = true;
					switch (StringCombo.getSelectedIndex()) {
					case 0:
						s.ubow = 70;
						s.bow = 859;
						break;
					case 1:
						s.ubow = 72;
						s.bow = 861;
						break;
					case 2:
						s.ubow = 66;
						s.bow = 855;
						break;
					case 3:
						s.ubow = 68;
						s.bow = 857;
						break;
					case 4:

						s.ubow = 62;
						s.bow = 851;
						break;
					case 5:

						s.ubow = 64;
						s.bow = 853;
						break;
					case 6:
						s.ubow = 58;
						s.bow = 847;
						break;
					case 7:
						s.ubow = 60;
						s.bow = 849;
						break;
					case 8:
						s.ubow = 56;
						s.bow = 845;
						break;
					case 9:
						s.ubow = 54;
						s.bow = 843;
						break;
					case 10:
						s.ubow = 48;
						s.bow = 839;
						break;
					case 11:
						s.ubow = 50;
						s.bow = 841;
						break;
					}
				}
				if (CutStringCB.isSelected()) {
					s.banking = true;
					s.cutstring = true;
					s.b1 = Bow.STRING;
					switch (CutStringCombo.getSelectedIndex()) {
					case 0:
						s.b = Bow.MAGIC_LONG;
						s.log = 1513;
						s.ubow = 70;
						s.bow = 859;
						break;
					case 1:
						s.b = Bow.MAGIC_SHORT;
						s.log = 1513;
						s.ubow = 72;
						s.bow = 861;
						break;
					case 2:
						s.b = Bow.YEW_LONG;
						s.log = 1515;
						s.ubow = 66;
						s.bow = 855;
						break;
					case 3:
						s.b = Bow.YEW_SHORT;
						s.log = 1515;
						s.ubow = 68;
						s.bow = 857;
						break;
					case 4:
						s.b = Bow.MAPLE_LONG;
						s.log = 1517;
						s.ubow = 62;
						s.bow = 851;
						break;
					case 5:
						s.b = Bow.MAPLE_SHORT;
						s.log = 1517;
						s.ubow = 64;
						s.bow = 853;
						break;
					case 6:
						s.b = Bow.WILLOW_LONG;
						s.log = 1519;
						s.ubow = 58;
						s.bow = 847;
						break;
					case 7:
						s.b = Bow.WILLOW_SHORT;
						s.log = 1519;
						s.ubow = 60;
						s.bow = 849;
						break;
					case 8:
						s.b = Bow.OAK_LONG;
						s.log = 1521;
						s.ubow = 56;
						s.bow = 845;
						break;
					case 9:
						s.b = Bow.OAK_SHORT;
						s.log = 1519;
						s.ubow = 54;
						s.bow = 843;
						break;
					case 10:
						s.b = Bow.LONGBOW;
						s.log = 1511;
						s.ubow = 48;
						s.bow = 839;
						break;
					case 11:
						s.b = Bow.SHORT;
						s.log = 1511;
						s.ubow = 50;
						s.bow = 841;
						break;
					}

				}

				switch (BankName.getSelectedIndex()) {
				case 0:
					s.bankentity = "Bank booth";
					s.action = "Bank";
					break;
				case 1:
					s.bankentity = "Bank chest";
					s.action = "Use";
					break;
				}
				guiWait = false;
				gui.dispose();
			}
	                         

	    /**
	     * @param args the command line arguments
	     */
	    public void main(String args[]) {
	        /* Set the Nimbus look and feel */
	        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
	        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
	         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
	         */
	        try {
	            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
	                if ("Nimbus".equals(info.getName())) {
	                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
	                    break;
	                }
	            }
	        } catch (ClassNotFoundException ex) {
	            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
	        } catch (InstantiationException ex) {
	            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
	        } catch (IllegalAccessException ex) {
	            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
	        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
	            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
	        }
	        //</editor-fold>

	        /* Create and display the form */
	        java.awt.EventQueue.invokeLater(new Runnable() {
	            public void run() {
	                new NewJFrame().setVisible(true);
	            }
	        });
	    }
	    // Variables declaration - do not modify                     
	    private javax.swing.JRadioButton ArrowsCB;
	    private javax.swing.JComboBox ArrowsCombo;
	    private javax.swing.JComboBox BankName;
	    private javax.swing.JRadioButton BoltsCB;
	    private javax.swing.JComboBox BoltsCombo;
	    private javax.swing.JRadioButton BroadArrowsCB;
	    private javax.swing.JRadioButton BroadCB;
	    private javax.swing.JRadioButton CutCB;
	    private javax.swing.JComboBox CutCombo;
	    private javax.swing.JRadioButton CutStringCB;
	    private javax.swing.JComboBox CutStringCombo;
	    private javax.swing.JRadioButton DartsCB;
	    private javax.swing.JComboBox DartsCombo;
	    private javax.swing.JRadioButton HeadlessCB;
	    private javax.swing.JRadioButton Prog;
	    private javax.swing.JRadioButton ShaftsCB;
	    private javax.swing.JComboBox StringCombo;
	    private javax.swing.JRadioButton TippedBoltsCB;
	    private javax.swing.JComboBox TippedBoltsCombo;
	    private javax.swing.JButton jButton1;
	    private javax.swing.JLabel jLabel1;
	    private javax.swing.JLabel jLabel2;
	    private javax.swing.JLabel jLabel3;
	    private javax.swing.JLabel jLabel4;
	    private javax.swing.JLabel jLabel5;
	    private javax.swing.JLabel jLabel6;
	    private javax.swing.JRadioButton jRadioButton1;
	    private javax.swing.JSeparator jSeparator1;
	    private javax.swing.JSeparator jSeparator2;
	    // End of variables declaration                   
	}

	private void antiBan2() throws InterruptedException {
		switch (random(1, 500)) {
		case 1:
			this.client.rotateCameraPitch(50 + random(40));
			sleep(random(300,600)+150);
			break;
		case 2:
			this.client.rotateCameraToAngle(200 + random(150));
			sleep(random(200,300)+100);
			break;
		case 3:
			this.client.rotateCameraToAngle(200 + random(150));
			this.client.rotateCameraPitch(50 + random(40));
			sleep(random(400,800)+100);
			break;
		}}
	private void antiBan1() throws InterruptedException {

		switch (random(1, 2400)) { //2min
		case 4:
			if(currentTab() != Tab.EQUIPMENT){
			this.openTab(Tab.EQUIPMENT);
			sleep(random(999,1790)-600);
			this.openTab(Tab.INVENTORY);
			}
			break;
		case 5:
			if(currentTab() != Tab.FRIENDS){
			this.openTab(Tab.FRIENDS);
			sleep(random(799,1190)-300);
			this.openTab(Tab.INVENTORY);
			}
			break;
		case 6:
			if(currentTab() != Tab.FRIENDS){
			this.openTab(Tab.FRIENDS);
			sleep(random(799,1190)-200);
			this.openTab(Tab.IGNORES);
			}
			break;
		case 7:
			if(currentTab() != Tab.PRAYER){
			this.openTab(Tab.PRAYER);
			 sleep(random(300,600) + 600);
			 }
			break;
		case 8:
			 this.magicTab.hoverSpell(Spell.ARDOUGNE_TELEPORT);
			 sleep(random(300,600) + 1000);
			 break;
		case 9:
			this.magicTab.hoverSpell(Spell.HIGH_LEVEL_ALCHEMY);
			sleep(random(300,600) + 600);
			break;
		case 10:
			 this.client.moveMouse(new RectangleDestination(550, 210, 175, 210), false);
			 sleep(random(250,500)+500);
			 break;
		case 11:
			  this.client.moveMouse(new RectangleDestination(550, 425, 120, 25), false);
		      sleep(700 + random(500));
		      break;
		case 12:
		if(currentTab() != Tab.MUSIC){
			openTab(Tab.MUSIC);
			sleep(700 + random(500));
			}else{ openTab(Tab.FRIENDS);
			}
			break;
		case 13:
			moveMouseOutsideScreen();
			sleep(random(1000,1222)-300);
			break;
		}
		random(100, 500);
		this.openTab(Tab.INVENTORY);
	}

}

 

 

Edited by Satan

  • Author

Sup

 

The leechers shall enjoy.

 

Gonna wait a while for the sdn upload tho [posted today].

 

Pozdrawiam happy.png

  • Author

Nicee. DAT PAINT is sexy tongue.png Cba to get 99 fletch again tho xD

 

Gonna try to raise 6.75$ I spent for this paint.

If you upload a 2 minute IRL RS Headbang I'll donate you $6.75.

If you upload a 2 minute IRL RS Headbang I'll donate you $6.75.

headache for 14 days

Where is download o.o

 

I think he's trying to raise some money for the paint before releasing it.

  • Author

I think he's trying to raise some money for the paint before releasing it.

 

Rofl.

 

What about getting it to the sdn?

how i download? :P

how i download? tongue.png

"The Goal: 4m 07 from donations.

Why?

To get the cash back invested in paint :>"

  • Author

how i download? tongue.png

 

 

"The Goal: 4m 07 from donations.

Why?

To get the cash back invested in paint :>"

 

 

Do you wanna wait for when Alek reviews SDN requests...?

Guest
This topic is now closed to further replies.

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.