diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2025-03-16 09:48:45 +1100 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2025-03-16 09:48:45 +1100 |
commit | c3299db812f4c2103b20f66b2de15084e8568fc7 (patch) | |
tree | 276c84047c49064d45cdb8ca5f96e818bdc4597a /source/game/StarPlayerStorage.cpp | |
parent | fd56b7ed9568b7887b474b1df9b6526f2869d1e4 (diff) |
warn when two player files have the same UUID
Diffstat (limited to 'source/game/StarPlayerStorage.cpp')
-rw-r--r-- | source/game/StarPlayerStorage.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source/game/StarPlayerStorage.cpp b/source/game/StarPlayerStorage.cpp index 83d1065..7687e97 100644 --- a/source/game/StarPlayerStorage.cpp +++ b/source/game/StarPlayerStorage.cpp @@ -41,9 +41,12 @@ PlayerStorage::PlayerStorage(String const& storageDir) { try { auto json = VersionedJson::readFile(filename); Uuid uuid(json.content.getString("uuid")); - auto& playerCacheData = m_savedPlayersCache[uuid]; - playerCacheData = entityFactory->loadVersionedJson(json, EntityType::Player); - m_playerFileNames.insert(uuid, file.first.rsplit('.', 1).at(0)); + if (m_playerFileNames.insert(uuid, file.first.rsplit('.', 1).at(0))) { + auto& playerCacheData = m_savedPlayersCache[uuid]; + playerCacheData = entityFactory->loadVersionedJson(json, EntityType::Player); + } else { + Logger::warn("Duplicate player? Skipping player file {} because it has the same UUID as {}.player ({})", file.first, m_playerFileNames.getRight(uuid), uuid.hex()); + } } catch (std::exception const& e) { Logger::error("Error loading player file, ignoring! {} : {}", filename, outputException(e, false)); } |