From 4454faffc3270776a623a085ebaac573d75c3d27 Mon Sep 17 00:00:00 2001 From: Gent Date: Tue, 10 Nov 2020 18:16:06 -0500 Subject: [PATCH] Add garbage collection for non-existent players --- src/Database.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Database.cpp b/src/Database.cpp index 153f848..d5bea4b 100644 --- a/src/Database.cpp +++ b/src/Database.cpp @@ -501,8 +501,16 @@ Player Database::DbToPlayer(DbPlayer player) { Database::DbPlayer Database::getDbPlayerById(int id) { auto player = db.get_all(where(c(&DbPlayer::PlayerID) == id)); - if (player.size() < 1) + if (player.size() < 1) { + // garbage collection + db.remove_all(where(c(&Inventory::playerId) == id)); + db.remove_all(where(c(&Nano::playerId) == id)); + db.remove_all(where(c(&DbQuest::PlayerId) == id)); + db.remove_all(where(c(&Buddyship::PlayerAId) == id || c(&Buddyship::PlayerBId) == id)); + db.remove_all(where(c(&EmailData::PlayerId) == id)); + db.remove_all(where(c(&EmailItem::PlayerId) == id)); return DbPlayer{ -1 }; + } return player.front(); }