| 157 | |
| 158 | |
| 159 | Json PlayerStorage::savePlayer(PlayerPtr const& player) { |
| 160 | auto entityFactory = Root::singleton().entityFactory(); |
| 161 | auto versioningDatabase = Root::singleton().versioningDatabase(); |
| 162 | |
| 163 | RecursiveMutexLocker locker(m_mutex); |
| 164 | |
| 165 | auto uuid = player->uuid(); |
| 166 | |
| 167 | auto& playerCacheData = m_savedPlayersCache[uuid]; |
| 168 | if (!m_playerFileNames.hasLeftValue(uuid)) |
| 169 | m_playerFileNames.insert(uuid, uuid.hex()); |
| 170 | auto newPlayerData = player->diskStore(); |
| 171 | if (playerCacheData != newPlayerData) { |
| 172 | playerCacheData = newPlayerData; |
| 173 | VersionedJson versionedJson = entityFactory->storeVersionedJson(EntityType::Player, playerCacheData); |
| 174 | auto fileName = strf("{}.player", uuidFileName(uuid)); |
| 175 | VersionedJson::writeFile(versionedJson, File::relativeTo(m_storageDirectory, fileName)); |
| 176 | Logger::debug("Saved player {} to {}", Text::stripEscapeCodes(player->name()), fileName); |
| 177 | } |
| 178 | return newPlayerData; |
| 179 | } |
| 180 | |
| 181 | Maybe<Json> PlayerStorage::maybeGetPlayerData(Uuid const& uuid) { |
| 182 | RecursiveMutexLocker locker(m_mutex); |
no test coverage detected