import java.awt.Graphics2D;
import org.osbot.rs07.script.Script;
import org.osbot.rs07.script.ScriptManifest;
import org.osbot.rs07.api.map.Position;
import org.osbot.rs07.api.ui.EquipmentSlot;
@ScriptManifest(author = "edoggydogg", info = "Welcome to my very first script!", logo = "", name = "eIron", version = 0.1)
public class main extends Script {
Position GOODAREA = new Position(random(3683, 3686), random(3478, 3480), 0);
Position BANKAREA = new Position(random(3687, 3690), random(3466, 3469), 0);
// code used on start
public void onStart() {
log("Welcome to eIron.");
log("Please begin the script in Port P. Bank");
log("If any problems occur, please report them to me.");
camera.toTop();
camera.moveYaw(random(1, 5));
}
private enum state {
BADAREA, GOODAREA, SMELT, WAIT, BANKAREA, BANK
};
public state getState() {
if (inventory.isEmpty())
return state.BANK;
if (inventory.onlyContains(2351))
return state.BANK;
if (inventory.onlyContains(440))
return state.SMELT;
return state.BANK;
}
@Override
public int onLoop() throws InterruptedException {
switch (getState()) {
case SMELT:
localWalker.walk(GOODAREA);
if (inventory.onlyContains(440)) {
objects.closest(24009).interact("Smelt");
sleep(random(1000, 2000));
mouse.move(random(130, 170), random(400, 440));
mouse.click(random(130, 170), random(400, 440), true);
sleep(random(1000, 2000));
mouse.move(random(130, 170), random(471, 480));
mouse.click(random(130, 170), random(471, 480), false);
sleep(random(1000, 2000));
keyboard.typeString("99", true);
mouse.moveOutsideScreen();
sleep(random(85000, 88000));
}
break;
case BANK:
localWalker.walk(BANKAREA);
if (inventory.isEmpty()) {
if (equipment.isWearingItem(EquipmentSlot.RING)) {
objects.closest(16642).interact("Bank");
sleep(random(1500, 2000));
bank.withdrawAll(440);
sleep(random(1500, 2000));
bank.close();
sleep(random(1500, 2000));
} else { // ADDED THIS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@22
objects.closest(16642).interact("Bank");
sleep(random(1500, 2000));
bank.withdraw(2568, 1);
bank.withdrawAll(440);
sleep(random(1500, 2000));
bank.close();
sleep(random(1500, 2000));
equipment.equip(EquipmentSlot.RING, 2568);
sleep(random(1500, 2000));
}
} else {
if (equipment.isWearingItem(EquipmentSlot.RING)) {
objects.closest(16642).interact("Bank");
sleep(random(1500, 2000));
bank.depositAll();
sleep(random(1500, 2000));
bank.withdrawAll(440);
sleep(random(1500, 2000));
bank.close();
sleep(random(1500, 2000));
} else { // ADDED THIS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@22
objects.closest(16642).interact("Bank");
sleep(random(1500, 2000));
bank.depositAll();
sleep(random(1500, 2000));
bank.withdraw(2568, 1);
bank.withdrawAll(440);
sleep(random(1500, 2000));
bank.close();
sleep(random(1500, 2000));
equipment.equip(EquipmentSlot.RING, 2568);
sleep(random(1500, 2000));
}
}
break;
case WAIT:
sleep(random(200, 300));
break;
default:
break;
}
return random(200, 300);
}
// code used on exit
public void onExit() {
log("Thank you for using eIron");
}
// paint
public void onPaint(Graphics2D g) {
}
}
Added code is in green. You forgot to make it only withdraw a ring if it doesn't have one. Your code was saying: if you're wearing ring, bank for ore. Then, bank for ring (without even checking if has ring or not). I made it so it will check if it has ring, then withdraw ore, if not, withdraw ring.Sorry if I didn't explain myself well enough, if you need any more help just ask.
EDIT: Make sure to format your code! It was confusing at first, but just hit CTRL + SHIFT + F to automatically format code in Eclipse IDE.