@Override
    public void execute() {
        Item bar = Inventory.getItem(Constants.STEEL_BAR_ID);
        if (furnace != null) {
            if (Constants.SMITH_WIDGET.validate()) {
                if (Constants.BALL_WIDGET.interact("Make")) {
                    Mouse.move(Random.nextInt(0, 515), Random.nextInt(51, 370));
                    final Timer timer = new Timer(2000);
                    while (timer.isRunning() && !getContainer().isShutdown()) {
                        if (Players.getLocal().getAnimation() != -1) {
                            timer.reset();
                        }
                        if (Inventory.getCount(Constants.STEEL_BAR_ID) < 1) {
                            break;
                        }
                        Task.sleep(Random.nextInt(100, 250));
                    }
                }
            } else {
                if (Inventory.getSelectedItem() != bar) {
                    Inventory.selectItem(bar);
                    Task.sleep(Random.nextInt(350, 500));
                    furnace.interact("Use");
                    Task.sleep(Random.nextInt(500, 950));
                } else {
                    furnace.interact("Use");
                    Task.sleep(Random.nextInt(200, 950));
                }
            }
        }
    }