public void loadConfigOptions() {

    plugin.getLogger().info("Loading Configuration File...");

    mergeConfig();

    messagesLanguage = checkLang(configFile.getString("settings.messagesLanguage", "en"));
    isPermissionCheckEnabled = configFile.getBoolean("permission.EnablePermissionCheck", false);
    isForcedRegistrationEnabled = configFile.getBoolean("settings.registration.force", true);
    isRegistrationEnabled = configFile.getBoolean("settings.registration.enabled", true);
    isTeleportToSpawnEnabled =
        configFile.getBoolean("settings.restrictions.teleportUnAuthedToSpawn", false);
    getWarnMessageInterval = configFile.getInt("settings.registration.messageInterval", 5);
    isSessionsEnabled = configFile.getBoolean("settings.sessions.enabled", false);
    getSessionTimeout = configFile.getInt("settings.sessions.timeout", 10);
    getRegistrationTimeout = configFile.getInt("settings.restrictions.timeout", 30);
    isChatAllowed = configFile.getBoolean("settings.restrictions.allowChat", false);
    getMaxNickLength = configFile.getInt("settings.restrictions.maxNicknameLength", 20);
    getMinNickLength = configFile.getInt("settings.restrictions.minNicknameLength", 3);
    getPasswordMinLen = configFile.getInt("settings.security.minPasswordLength", 4);
    getNickRegex =
        configFile.getString("settings.restrictions.allowedNicknameCharacters", "[a-zA-Z0-9_?]*");
    isAllowRestrictedIp = configFile.getBoolean("settings.restrictions.AllowRestrictedUser", false);
    getRestrictedIp = configFile.getStringList("settings.restrictions.AllowedRestrictedUser");
    isMovementAllowed = configFile.getBoolean("settings.restrictions.allowMovement", false);
    getMovementRadius = configFile.getInt("settings.restrictions.allowedMovementRadius", 100);
    getJoinPermissions = configFile.getStringList("GroupOptions.Permissions.PermissionsOnJoin");
    isKickOnWrongPasswordEnabled =
        configFile.getBoolean("settings.restrictions.kickOnWrongPassword", false);
    isKickNonRegisteredEnabled =
        configFile.getBoolean("settings.restrictions.kickNonRegistered", false);
    isForceSingleSessionEnabled =
        configFile.getBoolean("settings.restrictions.ForceSingleSession", true);
    isForceSpawnLocOnJoinEnabled =
        configFile.getBoolean("settings.restrictions.ForceSpawnLocOnJoinEnabled", false);
    isSaveQuitLocationEnabled =
        configFile.getBoolean("settings.restrictions.SaveQuitLocation", false);
    isForceSurvivalModeEnabled =
        configFile.getBoolean("settings.GameMode.ForceSurvivalMode", false);
    isResetInventoryIfCreative =
        configFile.getBoolean("settings.GameMode.ResetInventotyIfCreative", false);
    getmaxRegPerIp = configFile.getInt("settings.restrictions.maxRegPerIp", 1);
    getPasswordHash = getPasswordHash();
    getUnloggedinGroup =
        configFile.getString("settings.security.unLoggedinGroup", "unLoggedInGroup");
    getDataSource = getDataSource();
    isCachingEnabled = configFile.getBoolean("DataSource.caching", true);
    getMySQLHost = configFile.getString("DataSource.mySQLHost", "127.0.0.1");
    getMySQLPort = configFile.getString("DataSource.mySQLPort", "3306");
    getMySQLUsername = configFile.getString("DataSource.mySQLUsername", "authme");
    getMySQLPassword = configFile.getString("DataSource.mySQLPassword", "12345");
    getMySQLDatabase = configFile.getString("DataSource.mySQLDatabase", "authme");
    getMySQLTablename = configFile.getString("DataSource.mySQLTablename", "authme");
    getMySQLColumnName = configFile.getString("DataSource.mySQLColumnName", "username");
    getMySQLColumnPassword = configFile.getString("DataSource.mySQLColumnPassword", "password");
    getMySQLColumnIp = configFile.getString("DataSource.mySQLColumnIp", "ip");
    getMySQLColumnLastLogin = configFile.getString("DataSource.mySQLColumnLastLogin", "lastlogin");
    getMySQLColumnSalt = configFile.getString("ExternalBoardOptions.mySQLColumnSalt");
    getMySQLColumnGroup = configFile.getString("ExternalBoardOptions.mySQLColumnGroup", "");
    getNonActivatedGroup = configFile.getInt("ExternalBoardOptions.nonActivedUserGroup", -1);
    unRegisteredGroup = configFile.getString("GroupOptions.UnregisteredPlayerGroup", "");
    getUnrestrictedName = configFile.getStringList("settings.unrestrictions.UnrestrictedName");
    getRegisteredGroup = configFile.getString("GroupOptions.RegisteredPlayerGroup", "");
    getEnablePasswordVerifier =
        configFile.getBoolean("settings.restrictions.enablePasswordVerifier", true);
    protectInventoryBeforeLogInEnabled =
        configFile.getBoolean("settings.restrictions.ProtectInventoryBeforeLogIn", true);
    passwordMaxLength = configFile.getInt("settings.security.passwordMaxLength", 20);
    isBackupActivated = configFile.getBoolean("BackupSystem.ActivateBackup", false);
    isBackupOnStart = configFile.getBoolean("BackupSystem.OnServerStart", false);
    isBackupOnStop = configFile.getBoolean("BackupSystem.OnServeStop", false);
    backupWindowsPath =
        configFile.getString(
            "BackupSystem.MysqlWindowsPath", "C:\\Program Files\\MySQL\\MySQL Server 5.1\\");

    saveDefaults();

    // System.out.println("[AuthMe debug] Config " + getEnablePasswordVerifier.toString());
    // System.out.println("[AuthMe debug] Config " + getEnablePasswordVerifier.toString());

  }