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(); }