Print playername when failing to read playerfile and ignore files starting with .

This commit is contained in:
PilzAdam 2013-06-21 18:32:28 +00:00
parent 4d77781ce7
commit 130464c268
3 changed files with 7 additions and 7 deletions

View File

@ -399,7 +399,7 @@ void ServerEnvironment::serializePlayers(const std::string &savedir)
std::vector<fs::DirListNode> player_files = fs::GetDirListing(players_path); std::vector<fs::DirListNode> player_files = fs::GetDirListing(players_path);
for(u32 i=0; i<player_files.size(); i++) 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; continue;
// Full path to this file // Full path to this file
@ -417,7 +417,7 @@ void ServerEnvironment::serializePlayers(const std::string &savedir)
infostream<<"Failed to read "<<path<<std::endl; infostream<<"Failed to read "<<path<<std::endl;
continue; continue;
} }
testplayer.deSerialize(is); testplayer.deSerialize(is, player_files[i].name);
} }
//infostream<<"Loaded test player with name "<<testplayer.getName()<<std::endl; //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; infostream<<"Failed to read "<<path<<std::endl;
continue; continue;
} }
testplayer.deSerialize(is); testplayer.deSerialize(is, player_files[i].name);
} }
if(!string_allowed(testplayer.getName(), PLAYERNAME_ALLOWED_CHARS)) 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; infostream<<"Failed to read "<<path<<std::endl;
continue; continue;
} }
player->deSerialize(is); player->deSerialize(is, player_files[i].name);
} }
if(newplayer) if(newplayer)

View File

@ -179,7 +179,7 @@ void Player::serialize(std::ostream &os)
inventory.serialize(os); inventory.serialize(os);
} }
void Player::deSerialize(std::istream &is) void Player::deSerialize(std::istream &is, std::string playername)
{ {
Settings args; Settings args;
@ -187,7 +187,7 @@ void Player::deSerialize(std::istream &is)
{ {
if(is.eof()) if(is.eof())
throw SerializationError throw SerializationError
("Player::deSerialize(): PlayerArgsEnd not found"); (("Player::deSerialize(): PlayerArgsEnd of player \"" + playername + "\" not found").c_str());
std::string line; std::string line;
std::getline(is, line); std::getline(is, line);
std::string trimmedline = trim(line); std::string trimmedline = trim(line);

View File

@ -197,7 +197,7 @@ public:
deSerialize stops reading exactly at the right point. deSerialize stops reading exactly at the right point.
*/ */
void serialize(std::ostream &os); void serialize(std::ostream &os);
void deSerialize(std::istream &is); void deSerialize(std::istream &is, std::string playername);
bool touching_ground; bool touching_ground;
// This oscillates so that the player jumps a bit above the surface // This oscillates so that the player jumps a bit above the surface