Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.Color;
- import java.awt.Graphics2D;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.function.BooleanSupplier;
- import org.osbot.rs07.api.map.Area;
- import org.osbot.rs07.api.map.Position;
- import org.osbot.rs07.api.model.GroundItem;
- import org.osbot.rs07.api.ui.Message;
- import org.osbot.rs07.script.Script;
- import org.osbot.rs07.script.ScriptManifest;
- @ScriptManifest(author = "ironmanscripting", name = "Snape Grass Looter", info = "Loots snape grass in East Hosidius from the 10 spawn area", version = 1, logo = "")
- public final class SnapeLooter extends Script {
- String currentState;
- public final Position bankTile = new Position(1809, 3564, 0);
- public final Position snapeTile = new Position(1836, 3641, 0);
- @Override
- public final void onStart() {
- currentState = "Starting script...";
- }
- public void hopWorld() throws InterruptedException {
- int oldWorld = getWorlds().getCurrentWorld();
- if (getWorlds().hopToP2PWorld()) {
- Sleep.sleepUntil(() -> getWorlds().getCurrentWorld() != oldWorld && getClient().isLoggedIn(), 7000);
- }
- }
- public void handleBank() throws InterruptedException {
- if (!getBank().isOpen()){ //If the bank is not open
- getBank().open(); //Opens bank chests, booths, etc.
- if (getBank().isOpen()) {
- getBank().depositAll();
- if (getBank().close()) {
- Sleep.sleepUntil(() -> !getBank().isOpen(), 4000);
- }
- }
- }
- }
- public boolean findsnapes() {
- GroundItem i = getGroundItems().closest("Snape Grass");
- return i != null && map.canReach(i) && map.distance(i) <= 15;
- }
- public void lootsnapes() {
- GroundItem i = getGroundItems().closest("Snape Grass");
- if (i != null && map.canReach(i) && map.distance(i) <= 15) {
- if (i.interact("Take")) {
- Sleep.sleepUntil(() -> !i.exists() || i == null || getInventory().isFull(), 9000);
- }
- }
- }
- @Override
- public final int onLoop() throws InterruptedException {
- if (getInventory().isFull()) {
- if (bankTile.distance(myPlayer().getPosition()) <= 2) {
- currentState = "Depositing";
- handleBank();
- } else {
- currentState = "Navigating to bank";
- getWalking().webWalk(bankTile);
- }
- } else {
- if (snapeTile.distance(myPlayer().getPosition()) <= 7) {
- if (findsnapes()) {
- currentState = "Looting Snape Grass";
- lootsnapes();
- } else {
- currentState = "No Grass, hop world";
- hopWorld();
- }
- } else {
- currentState = "Running to snapes";
- getWalking().webWalk(snapeTile);
- }
- }
- return random(50, 500);
- }
- @Override
- public final void onExit() {
- log("Script terminated! :)");
- }
- @Override
- public final void onMessage(final Message message) {
- // log("New msg: " + message.getMessage());
- }
- @Override
- public void onPaint(final Graphics2D g) {
- g.drawString("Snape Looter v0.1", 12, 130);
- g.drawString("A modified version of Rare Scripts Barbarian Plank Looter", 12, 150);
- g.drawString("State: " + currentState, 12, 170);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement