@Override
    public void updatePower() {
        if (CPU.getDelay() == 0) return;
        if (CPU.getInput1().isPowered() || CPU.getInput2().isPowered()) {
            if (CPUPlugin.bukkitScheduler.isQueued(on)) return;
            on = CPUPlugin.bukkitScheduler.scheduleSyncRepeatingTask(CPUPlugin.plugin, new BukkitRunnable() {
                @Override
                public void run() {
                    if (powered) {
                        powered = false;
                        CPU.getOutput().setPower(false);
                    } else {
                        powered = true;
                        CPU.getOutput().setPower(true);
                    }
                }
            }, 0, CPU.getDelay());
        } else {
            if (CPUPlugin.bukkitScheduler.isQueued(on)) CPUPlugin.bukkitScheduler.cancelTask(on);
            CPU.getOutput().setPower(false);
            powered = false;
        }
    }