From 07177190734b0e5c17be18d0bf5d509c5226af2f Mon Sep 17 00:00:00 2001 From: Loïc Blot Date: Fri, 4 Jan 2019 10:06:46 +0100 Subject: Player file directory must be only created when using file backend. Also ensure on each player save that the directory exists --- src/database/database-files.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/database/database-files.cpp') diff --git a/src/database/database-files.cpp b/src/database/database-files.cpp index 09d76240e..f42535348 100644 --- a/src/database/database-files.cpp +++ b/src/database/database-files.cpp @@ -31,6 +31,11 @@ with this program; if not, write to the Free Software Foundation, Inc., // This backend is intended to be used on Minetest 0.4.16 only for the transition backend // for player files +PlayerDatabaseFiles::PlayerDatabaseFiles(const std::string &savedir) : m_savedir(savedir) +{ + fs::CreateDir(m_savedir); +} + void PlayerDatabaseFiles::serialize(std::ostringstream &os, RemotePlayer *player) { // Utilize a Settings object for storing values @@ -58,6 +63,8 @@ void PlayerDatabaseFiles::serialize(std::ostringstream &os, RemotePlayer *player void PlayerDatabaseFiles::savePlayer(RemotePlayer *player) { + fs::CreateDir(m_savedir); + std::string savedir = m_savedir + DIR_DELIM; std::string path = savedir + player->getName(); bool path_found = false; -- cgit v1.2.3