void PlayerRelationsManager::load(const bool oldConfig) { Configuration *cfg; if (oldConfig) cfg = &config; else cfg = &serverConfig; clear(); mPersistIgnores = cfg->getValue(PERSIST_IGNORE_LIST, 1); mDefaultPermissions = static_cast<int>(cfg->getValue(DEFAULT_PERMISSIONS, mDefaultPermissions)); const std::string ignore_strategy_name = cfg->getValue( PLAYER_IGNORE_STRATEGY, DEFAULT_IGNORE_STRATEGY); const int ignore_strategy_index = getPlayerIgnoreStrategyIndex( ignore_strategy_name); if (ignore_strategy_index >= 0) { setPlayerIgnoreStrategy((*getPlayerIgnoreStrategies()) [ignore_strategy_index]); } cfg->getList<std::pair<std::string, PlayerRelation *>, std::map<std::string, PlayerRelation *> *> ("player", &(mRelations), &player_conf_serialiser); }
int PlayerRelationsManager::getPlayerIgnoreStrategyIndex( const std::string &name) { const std::vector<PlayerIgnoreStrategy *> *const strategies = getPlayerIgnoreStrategies(); if (!strategies) return -1; const size_t sz = strategies->size(); for (size_t i = 0; i < sz; i++) { if ((*strategies)[i]->mShortName == name) return CAST_S32(i); } return -1; }