I tried to make a simple power chopping script, building off of your tea thiever. However, it empties the inventory of logs and not the axe, like its supposed to, then it hovers over the tree and never attempts to chop. I think the issue is in using !inventory.isEmptyExcept 
 
import org.osbot.rs07.api.model.RS2Object;
import org.osbot.rs07.script.Script;
import org.osbot.rs07.script.ScriptManifest;
import java.awt.*;
@ScriptManifest(author = "broker12", info = "Power chops", name = "OakChopper", version = 0, logo = "")
public class Main extends Script {
    @Override
    public void onStart() {
        log("OakChopper status: Started");
    }
    private enum State {
         CHOP, DROP, WAIT,
    };
    private State getState() {
        RS2Object tree = getObjects().closest("Oak");
        if (!inventory.isEmptyExcept("Rune axe"))
            return State.DROP;
        if (tree != null)
            return State.CHOP;
        return State.WAIT;
    }
    @Override
    public int onLoop() throws InterruptedException {
        switch (getState()) {
        case CHOP:
            RS2Object tree = getObjects().closest("Oak");
            if (tree != null) {
                tree.interact("Chop-down");
            }
            break;
        case DROP:
            inventory.dropAllExcept("Rune axe");
            break;
        case WAIT:
            sleep(random(400, 700));
            break;
        }
        return random(200, 300);
    }
    @Override
    public void onExit() {
        log("OakChopper status: Ended");
    }
    @Override
    public void onPaint(Graphics2D g) {
    }