Skip 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.

Bank Utility (For getting accessible banks)

Featured Replies

Here is a quick bank util I made after running into issues with walking to the nearest bank only to have it be unaccessible due to quest/skill requirements. I haven't tested this yet but I may need to alter it so that the quest checks are cached once on initialization if it takes a long time to do all the checks.

If anyone knows the config values for checking RFD sub-quest completion and is willing to share, let me know so I can add those checks in properly as well as the Lunar Diplomacy and Tree Gnome Stronghold values.

Banks taken from here but I plan to add most if not all of the banks listed on the wiki when time permits.


I think spoilers are broken so enjoy the long ass post 😁

Usage

BankUtil.getAccessibleBanks(SomeMethodProvider);


Source
 

import org.osbot.rs07.api.Favour;
import org.osbot.rs07.api.Quests;
import org.osbot.rs07.api.map.Area;
import org.osbot.rs07.api.map.constants.Banks;
import org.osbot.rs07.api.ui.EquipmentSlot;
import org.osbot.rs07.api.ui.Skill;
import org.osbot.rs07.script.MethodProvider;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class BankUtil {

    enum Bank {
        AL_KHARID(Banks.AL_KHARID),
        ARCEUUS_HOUSE(Banks.ARCEUUS_HOUSE),
        ARDOUGNE_NORTH(Banks.ARDOUGNE_NORTH),
        ARDOUGNE_SOUTH(Banks.ARDOUGNE_SOUTH),
        CAMELOT(Banks.CAMELOT),
        CANIFIS(Banks.CANIFIS),
        CASTLE_WARS(Banks.CASTLE_WARS),
        CATHERBY(Banks.CATHERBY),
        DRAYNOR(Banks.DRAYNOR),
        DUEL_ARENA(Banks.DUEL_ARENA),
        EDGEVILLE(Banks.EDGEVILLE),
        FALADOR_EAST(Banks.FALADOR_EAST),
        FALADOR_WEST(Banks.FALADOR_WEST),
        GNOME_STRONGHOLD(Banks.GNOME_STRONGHOLD),
        GRAND_EXCHANGE(Banks.GRAND_EXCHANGE),
        HOSIDIUS_HOUSE(Banks.HOSIDIUS_HOUSE),
        LOVAKENGJ_HOUSE(Banks.LOVAKENGJ_HOUSE),
        LOVAKITE_MINE(Banks.LOVAKITE_MINE),
        LUMBRIDGE_LOWER(Banks.LUMBRIDGE_LOWER),
        LUMBRIDGE_UPPER(Banks.LUMBRIDGE_UPPER),
        PEST_CONTROL(Banks.PEST_CONTROL),
        PISCARILIUS_HOUSE(Banks.PISCARILIUS_HOUSE),
        SHAYZIEN_HOUSE(Banks.SHAYZIEN_HOUSE),
        TZHAAR(Banks.TZHAAR),
        VARROCK_EAST(Banks.VARROCK_EAST),
        VARROCK_WEST(Banks.VARROCK_WEST),
        YANILLE(Banks.YANILLE),
        BARBARIAN_ASSAULT(new Area(2534, 3576, 2537, 3572)),
        BURGH_DE_ROTT(new Area(3496, 3213, 3499, 3210)),
        CRAFTING_GUILD(new Area(2933, 3284, 2936, 3281)),
        ETCETERIA(new Area(2618, 3896, 2620, 3893)),
        FISHING_TRAWLER(new Area(2661, 3162, 2665, 3160)),
        FISHING_GUILD(new Area(2584, 3422, 2588, 3418)),
        GRAND_TREE_WEST(new Area(2440, 3489, 2442, 3487).setPlane(1)),
        GRAND_TREE_SOUTH(new Area(2448, 3482, 2450, 3479).setPlane(1)),
        JATISZO(new Area(2415, 3803, 2418, 3801)),
        KOUREND(new Area(1610, 3683, 1613, 3680).setPlane(2)),
        LLETYA(new Area(2350, 3163, 2354, 3162)),
        LUNAR_ISLE(new Area(2097, 3919, 2102, 3917)),
        LANDS_END(new Area(1508, 3423, 1511, 3419)),
        NARDAH(new Area(3424, 2892, 3430, 2889)),
        NEITIZNOT(new Area(2335, 3808, 2337, 3805)),
        PORT_PHASMATYS(new Area(3686, 3471, 3691, 3463)),
        PISCATORIS(new Area(2327, 3690, 2332, 3687)),
        SHILO_VILLAGE(new Area(2849, 2955, 2855, 2953)),
        SANDCRABS(new Area(1717, 3466, 1722, 3463)),
        SHANTAY_PASS(new Area(3305, 3123, 3308, 3119)),
        SULPHUR_MINE(new Area(1453, 3859, 1458, 3856)),
        TREE_GNOME_STRONGHOLD(new Area(2444, 3427, 2446, 3422).setPlane(1)),
        VINERY(new Area(1802, 3571, 1808, 3571)),
        WARRIORS_GUILD(new Area(2843, 3544, 2846, 3539)),
        WOODCUTTING_GUILD(new Area(1589, 3480, 1593, 3476)),
        ZEAH_COOKING(new Area(1653, 3613, 1658, 3607));

        private final Area area;

        Bank(final Area area) {
            this.area = area;
        }

        public Area getArea() {
            return area;
        }
    }


    public static Area[] getBankAreas() {
        return Arrays.stream(Bank.values()).map(Bank::getArea).toArray(Area[]::new);
    }

    public static Area[] getAccessibleBanks(final MethodProvider api) {
        List<Area> accessibleBanks = new ArrayList<>();

        // f2p
        accessibleBanks.add(Bank.AL_KHARID.getArea());
        accessibleBanks.add(Bank.CASTLE_WARS.getArea());
        accessibleBanks.add(Bank.DRAYNOR.getArea());
        accessibleBanks.add(Bank.DUEL_ARENA.getArea());
        accessibleBanks.add(Bank.EDGEVILLE.getArea());
        accessibleBanks.add(Bank.FALADOR_EAST.getArea());
        accessibleBanks.add(Bank.FALADOR_WEST.getArea());
        accessibleBanks.add(Bank.GRAND_EXCHANGE.getArea());
        accessibleBanks.add(Bank.LUMBRIDGE_UPPER.getArea());
        accessibleBanks.add(Bank.VARROCK_EAST.getArea());
        accessibleBanks.add(Bank.VARROCK_WEST.getArea());
        accessibleBanks.add(Bank.SHANTAY_PASS.getArea());

        if (api.getSkills().getVirtualLevel(Skill.CRAFTING) >= 40 && api.getEquipment().isWearingItem(EquipmentSlot.CHEST, "Brown apron")) {
            accessibleBanks.add(Bank.CRAFTING_GUILD.getArea());
        }

        // p2p
        if (api.getClient().isMember() && api.getWorlds().isMembersWorld()) {
            accessibleBanks.add(Bank.ARCEUUS_HOUSE.getArea());
            accessibleBanks.add(Bank.ARDOUGNE_NORTH.getArea());
            accessibleBanks.add(Bank.ARDOUGNE_SOUTH.getArea());
            accessibleBanks.add(Bank.CAMELOT.getArea());
            accessibleBanks.add(Bank.CATHERBY.getArea());
            accessibleBanks.add(Bank.GNOME_STRONGHOLD.getArea());
            accessibleBanks.add(Bank.HOSIDIUS_HOUSE.getArea());
            accessibleBanks.add(Bank.LOVAKENGJ_HOUSE.getArea());
            accessibleBanks.add(Bank.LOVAKITE_MINE.getArea());
            accessibleBanks.add(Bank.PEST_CONTROL.getArea());
            accessibleBanks.add(Bank.PISCARILIUS_HOUSE.getArea());
            accessibleBanks.add(Bank.SHAYZIEN_HOUSE.getArea());
            accessibleBanks.add(Bank.TZHAAR.getArea());
            accessibleBanks.add(Bank.YANILLE.getArea());
            accessibleBanks.add(Bank.BARBARIAN_ASSAULT.getArea());
            accessibleBanks.add(Bank.VINERY.getArea());
            accessibleBanks.add(Bank.FISHING_TRAWLER.getArea());
            accessibleBanks.add(Bank.KOUREND.getArea());
            accessibleBanks.add(Bank.ZEAH_COOKING.getArea());
            accessibleBanks.add(Bank.LANDS_END.getArea());
            accessibleBanks.add(Bank.NARDAH.getArea());
            accessibleBanks.add(Bank.SANDCRABS.getArea());
            accessibleBanks.add(Bank.SULPHUR_MINE.getArea());

            if (api.getQuests().isComplete(Quests.Quest.PRIEST_IN_PERIL)) {
                accessibleBanks.add(Bank.PORT_PHASMATYS.getArea());
                accessibleBanks.add(Bank.CANIFIS.getArea());
            }

            if (api.getQuests().isStarted(Quests.Quest.IN_AID_OF_THE_MYREQUE)) {
                accessibleBanks.add(Bank.BURGH_DE_ROTT.getArea());
            }

            if (api.getQuests().isComplete(Quests.Quest.THE_FREMENNIK_TRIALS)) {
                accessibleBanks.add(Bank.ETCETERIA.getArea());
                if (api.getQuests().isStarted(Quests.Quest.THE_FREMENNIK_ISLES)) {
                    accessibleBanks.add(Bank.JATISZO.getArea());
                    accessibleBanks.add(Bank.NEITIZNOT.getArea());
                }
            }

            if (api.getQuests().isComplete(Quests.Quest.SHILO_VILLAGE)) {
                accessibleBanks.add(Bank.SHILO_VILLAGE.getArea());
            }

            if (api.getQuests().isStarted(Quests.Quest.MOURNINGS_END_PART_I)) {
                accessibleBanks.add(Bank.LLETYA.getArea());
            }

            if (api.getQuests().isComplete(Quests.Quest.SWAN_SONG)) {
                accessibleBanks.add(Bank.PISCATORIS.getArea());
            }

            if (api.getSkills().getVirtualLevel(Skill.FISHING) >= 68) {
                accessibleBanks.add(Bank.FISHING_GUILD.getArea());
            }

            if (api.getSkills().getVirtualLevel(Skill.ATTACK) + api.getSkills().getVirtualLevel(Skill.STRENGTH) >= 130) {
                accessibleBanks.add(Bank.WARRIORS_GUILD.getArea());
            }

            if (api.getSkills().getVirtualLevel(Skill.WOODCUTTING) >= 60 && api.getFavour().getFavour(Favour.House.HOSIDIUS) >= 75) {
                accessibleBanks.add(Bank.WOODCUTTING_GUILD.getArea());
            }

            // First time entering minigame(?) Need to figure this out.
            if (false) {
                accessibleBanks.add(Bank.GRAND_TREE_WEST.getArea());
                accessibleBanks.add(Bank.GRAND_TREE_SOUTH.getArea());
                accessibleBanks.add(Bank.TREE_GNOME_STRONGHOLD.getArea());
            }

            // Only needs partial completion, need to figure out the check for it.
            if (api.getQuests().isComplete(Quests.Quest.LUNAR_DIPLOMACY)) {
                accessibleBanks.add(Bank.LUNAR_ISLE.getArea());
            }

            // Only needs one part finished, need to figure out the check for that as well.
            if (api.getQuests().isStarted(Quests.Quest.RECIPE_FOR_DISASTER)) {
                accessibleBanks.add(Bank.LUMBRIDGE_LOWER.getArea());
            }
        }

        return accessibleBanks.toArray(new Area[0]);
    }

}

 

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

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.