/**
   * Geef de huidige speler terug.
   *
   * @return String[]
   */
  public String[] geefHuidigeSpeler() {
    if (huidigeSpeler == null) {
      return null;
    }

    String[] spelerString = new String[4];

    spelerString[0] = huidigeSpeler.getVoornaam();
    spelerString[1] = huidigeSpeler.getNaam();
    spelerString[2] = huidigeSpeler.getGebruikersnaam();
    spelerString[3] = String.valueOf(huidigeSpeler.isAdmin());

    return spelerString;
  }
  /**
   * Registreer een nieuwe speler.
   *
   * @param naam String
   * @param voornaam String
   * @param gebruikersnaam String
   * @param wachtwoord String
   * @param wachtwoordBevestiging String
   */
  public void registreer(
      String naam,
      String voornaam,
      String gebruikersnaam,
      String wachtwoord,
      String wachtwoordBevestiging) {
    if (!wachtwoord.equals(wachtwoordBevestiging)) {
      throw new WachtwoordException(lang.get("err.passwordrepeat"));
    }

    // controle DR Nieuwe Speler
    if (gebruikersnaam.length() < 8) {
      throw new GebruikersnaamException(lang.get("err.usernameDR"));
    }

    if (wachtwoord.length() < 8
        || !wachtwoord.matches(".*[A-Z].*")
        || !wachtwoord.matches(".*[a-z].*")
        || !wachtwoord.matches(".*[0-9].*")) {
      throw new WachtwoordException(lang.get("err.passwordDR"));
    }

    wachtwoord = BCrypt.hashpw(wachtwoord, BCrypt.gensalt(10));

    Speler nieuweSpeler = new Speler(naam, voornaam, gebruikersnaam, wachtwoord);
    setHuidigeSpeler(nieuweSpeler);
    huidigeSpeler.setLang(lang);
    spelerRepository.voegToe(nieuweSpeler);
  }