code: @Override
      public final Wave run(final Wave wave) {
  
          // If given wave is null
          // Build a default Wave to avoid NullPointerException when
          // command was directly called by its run() method
          final Wave commandWave = wave == null ? WBuilder.callCommand(this.getClass()) : wave;
  
          // Wrap the command into a custom runnable that will be run
          final CommandRunnable commandRunnable = new CommandRunnable(this.getClass().getSimpleName(), this, commandWave);
  
          final WaveData<Boolean> syncData = wave != null ? wave.getData(JRebirthWaves.FORCE_SYNC_COMMAND) : null;
  
          // Add the runnable to the runner queue run it as soon as possible
          // But force synchronous execution if the wave contains the flag
          if (syncData == null && isSyncRun() || syncData != null && syncData.value()) {
              // Force sync run (blocking call)
              JRebirth.runSync(getRunInto(), commandRunnable, 5000);
          } else {
              // Normal run
              JRebirth.run(getRunInto(), commandRunnable);
          }
  
          return commandWave;
      }
docs: {@inheritDoc}