diff options
author | PilzAdam <pilzadam@minetest.net> | 2013-06-21 18:32:28 +0000 |
---|---|---|
committer | PilzAdam <pilzadam@minetest.net> | 2013-06-22 21:39:47 +0000 |
commit | 130464c2688fc2c9cd39d16568c12f17c105cb89 (patch) | |
tree | fec63cbebc26e220d25bdc7d1f7a4f7c6e42b13a /src | |
parent | 4d77781ce7cba571701e731b1f442af691933720 (diff) | |
download | minetest-130464c2688fc2c9cd39d16568c12f17c105cb89.tar.gz minetest-130464c2688fc2c9cd39d16568c12f17c105cb89.tar.bz2 minetest-130464c2688fc2c9cd39d16568c12f17c105cb89.zip |
Print playername when failing to read playerfile and ignore files starting with .
Diffstat (limited to 'src')
-rw-r--r-- | src/environment.cpp | 8 | ||||
-rw-r--r-- | src/player.cpp | 4 | ||||
-rw-r--r-- | src/player.h | 2 |
3 files changed, 7 insertions, 7 deletions
diff --git a/src/environment.cpp b/src/environment.cpp index 99da5190c..4b785998b 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -399,7 +399,7 @@ void ServerEnvironment::serializePlayers(const std::string &savedir) std::vector<fs::DirListNode> player_files = fs::GetDirListing(players_path); for(u32 i=0; i<player_files.size(); i++) { - if(player_files[i].dir) + if(player_files[i].dir || player_files[i].name[0] == '.') continue; // Full path to this file @@ -417,7 +417,7 @@ void ServerEnvironment::serializePlayers(const std::string &savedir) infostream<<"Failed to read "<<path<<std::endl; continue; } - testplayer.deSerialize(is); + testplayer.deSerialize(is, player_files[i].name); } //infostream<<"Loaded test player with name "<<testplayer.getName()<<std::endl; @@ -529,7 +529,7 @@ void ServerEnvironment::deSerializePlayers(const std::string &savedir) infostream<<"Failed to read "<<path<<std::endl; continue; } - testplayer.deSerialize(is); + testplayer.deSerialize(is, player_files[i].name); } if(!string_allowed(testplayer.getName(), PLAYERNAME_ALLOWED_CHARS)) @@ -563,7 +563,7 @@ void ServerEnvironment::deSerializePlayers(const std::string &savedir) infostream<<"Failed to read "<<path<<std::endl; continue; } - player->deSerialize(is); + player->deSerialize(is, player_files[i].name); } if(newplayer) diff --git a/src/player.cpp b/src/player.cpp index a199c9a6c..ec1e3aff7 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -179,7 +179,7 @@ void Player::serialize(std::ostream &os) inventory.serialize(os); } -void Player::deSerialize(std::istream &is) +void Player::deSerialize(std::istream &is, std::string playername) { Settings args; @@ -187,7 +187,7 @@ void Player::deSerialize(std::istream &is) { if(is.eof()) throw SerializationError - ("Player::deSerialize(): PlayerArgsEnd not found"); + (("Player::deSerialize(): PlayerArgsEnd of player \"" + playername + "\" not found").c_str()); std::string line; std::getline(is, line); std::string trimmedline = trim(line); diff --git a/src/player.h b/src/player.h index 517bd354d..89e4667c4 100644 --- a/src/player.h +++ b/src/player.h @@ -197,7 +197,7 @@ public: deSerialize stops reading exactly at the right point. */ void serialize(std::ostream &os); - void deSerialize(std::istream &is); + void deSerialize(std::istream &is, std::string playername); bool touching_ground; // This oscillates so that the player jumps a bit above the surface |