/**
   * This method is called by PlayerQuitEvent to tear down the mcMMOPlayer.
   *
   * @param syncSave if true, data is saved synchronously
   */
  public void logout(boolean syncSave) {
    Player thisPlayer = getPlayer();
    resetAbilityMode();
    BleedTimerTask.bleedOut(thisPlayer);

    if (syncSave) {
      getProfile().save();
    } else {
      getProfile().scheduleAsyncSave();
    }

    UserManager.remove(thisPlayer);

    if (inParty()) {
      party.removeOnlineMember(thisPlayer);
    }
  }