Skip to content

codex #dreambot

import org.dreambot.api.methods.Calculations;
import org.dreambot.api.methods.map.Area;
import org.dreambot.api.methods.map.Tile;
import org.dreambot.api.methods.skills.Skill;
import org.dreambot.api.methods.tabs.Tab;
import org.dreambot.api.script.AbstractScript;
import org.dreambot.api.script.Category;
import org.dreambot.api.script.ScriptManifest;
import org.dreambot.api.wrappers.interactive.GameObject;
import org.dreambot.api.wrappers.interactive.NPC;
import org.dreambot.api.wrappers.items.Item;

@ScriptManifest(author = "Passivebot", category = Category.MISC, name = "Water Filler", version = 1.0)
public class WaterFiller extends AbstractScript {

    private Area fountainArea = new Area(2946, 3369, 2949, 3366);
    private Area bankArea = new Area(2946, 3369, 2949, 3366);

    @Override
    public void onStart() {
        log("Welcome to Water Filler!");
    }

    @Override
    public int onLoop() {
        if (getInventory().isFull()) {
            if (bankArea.contains(getLocalPlayer())) {
                depositAll();
            } else {
                getWalking().walk(bankArea.getRandomTile());
            }
        } else {
            if (fountainArea.contains(getLocalPlayer())) {
                fillJugs();
            } else {
                getWalking().walk(fountainArea.getRandomTile());
            }
        }
        return Calculations.random(500, 1000);
    }

    private void fillJugs() {
        GameObject fountain = getGameObjects().closest("Fountain");
        if (fountain != null) {
            if (fountain.interact("Fill")) {
                sleepUntil(() -> getInventory().isFull(), Calculations.random(5000, 10000));
            }
        }
    }

    private void depositAll() {
        NPC banker = getNpcs().closest("Banker");
        if (banker != null) {
            if (banker.interact("Bank")) {
                sleepUntil(() -> getBank().isOpen(), Calculations.random(5000, 10000));
                if (getBank().isOpen()) {
                    getBank().depositAllItems();
                    sleepUntil(() -> getInventory().isEmpty(), Calculations.random(5000, 10000));
                    getBank().close();
                }
            }
        }
    }
}

Last update: November 18, 2023
Created: October 12, 2023