summaryrefslogtreecommitdiff
path: root/src/server.cpp
diff options
context:
space:
mode:
authornerzhul <loic.blot@unix-experience.fr>2015-07-16 17:37:46 +0200
committerLoic Blot <loic.blot@unix-experience.fr>2015-07-16 20:27:42 +0200
commitf9dbec6edf94ce20d52d38569545674cfb742eae (patch)
treefcb4e9f1b3d96a97fb5998d4aea7a67e2d28ba73 /src/server.cpp
parent655fc6010ffd4be7de315be261df2a61d5d4538a (diff)
downloadminetest-f9dbec6edf94ce20d52d38569545674cfb742eae.tar.gz
minetest-f9dbec6edf94ce20d52d38569545674cfb742eae.tar.bz2
minetest-f9dbec6edf94ce20d52d38569545674cfb742eae.zip
Kick players when shutting down server and there is a crash due to a Lua stack exception
Diffstat (limited to 'src/server.cpp')
-rw-r--r--src/server.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/server.cpp b/src/server.cpp
index 9d70ad7b7..0cad82613 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -394,10 +394,13 @@ Server::~Server()
// Execute script shutdown hooks
m_script->on_shutdown();
- infostream<<"Server: Saving players"<<std::endl;
+ infostream << "Server: Saving players" << std::endl;
m_env->saveLoadedPlayers();
- infostream<<"Server: Saving environment metadata"<<std::endl;
+ infostream << "Server: kick players" << std::endl;
+ m_env->kickAllPlayers("Server shutting down...");
+
+ infostream << "Server: Saving environment metadata" << std::endl;
m_env->saveMeta();
}
@@ -499,6 +502,7 @@ void Server::step(float dtime)
throw ServerError(async_err);
}
else {
+ m_env->kickAllPlayers("The server has crashed. Disconnecting all players. Please reconnect soon...");
errorstream << "UNRECOVERABLE error occurred. Stopping server. "
<< "Please fix the following error:" << std::endl
<< async_err << std::endl;