aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPilzAdam <pilzadam@minetest.net>2013-06-21 18:32:28 +0000
committerPilzAdam <pilzadam@minetest.net>2013-06-22 21:39:47 +0000
commit130464c2688fc2c9cd39d16568c12f17c105cb89 (patch)
treefec63cbebc26e220d25bdc7d1f7a4f7c6e42b13a
parent4d77781ce7cba571701e731b1f442af691933720 (diff)
downloadminetest-130464c2688fc2c9cd39d16568c12f17c105cb89.tar.gz
minetest-130464c2688fc2c9cd39d16568c12f17c105cb89.tar.bz2
minetest-130464c2688fc2c9cd39d16568c12f17c105cb89.zip
Print playername when failing to read playerfile and ignore files starting with .
-rw-r--r--src/environment.cpp8
-rw-r--r--src/player.cpp4
-rw-r--r--src/player.h2
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