It's a lot of work but it is definitely possible with modern day OOP. I would set it up so each class has a public validate() boolean which triggers the script running. So let's say you wanted to withdraw 50k from the bank when you had less than 10k on hand:
Code:
public class BankWithdraw extends ActiveScript implements Task {
@Override
public boolean validate() {
return user.getNP() < 10000;
}
@Override
public void run() {
bank.withdraw(50000);
log("Withdrew 50k from bank");
}
}
And then you could automate tasks like this, it's really a neat structure!