Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/StarPlayerStorage.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2025-03-16 09:48:45 +1100
committerKae <80987908+Novaenia@users.noreply.github.com>2025-03-16 09:48:45 +1100
commitc3299db812f4c2103b20f66b2de15084e8568fc7 (patch)
tree276c84047c49064d45cdb8ca5f96e818bdc4597a /source/game/StarPlayerStorage.cpp
parentfd56b7ed9568b7887b474b1df9b6526f2869d1e4 (diff)
warn when two player files have the same UUID
Diffstat (limited to 'source/game/StarPlayerStorage.cpp')
-rw-r--r--source/game/StarPlayerStorage.cpp9
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));
}