Print playername when failing to read playerfile and ignore files starting with .
parent
4d77781ce7
commit
130464c268
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue