Skip to content

Commit bf7174f

Browse files
committedJul 17, 2015
Server kicks: make messages configurable, cache wstring
1 parent f9dbec6 commit bf7174f

File tree

4 files changed

+14
-4
lines changed

4 files changed

+14
-4
lines changed
 

‎minetest.conf.example

+6
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,12 @@
388388
# "log" = mimic and log backtrace of deprecated call (default for debug).
389389
# "error" = abort on usage of deprecated call (suggested for mod developers).
390390
#deprecated_lua_api_handling = legacy
391+
392+
#kick_msg_shutdown = Server shutting down.
393+
# A message to be displayed to all clients when the server shuts down
394+
#kick_msg_crash = This server has experienced an internal error. You will now be disconnected.
395+
# A message to be displayed to all clients when the server crashes
396+
391397
# Mod profiler
392398
#mod_profiling = false
393399
# Detailed mod profile data

‎src/defaultsettings.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,9 @@ void set_default_settings(Settings *settings)
252252
settings->setDefault("deprecated_lua_api_handling", "log");
253253
#endif
254254

255+
settings->setDefault("kick_msg_shutdown", "Server shutting down.");
256+
settings->setDefault("kick_msg_crash", "This server has experienced an internal error. You will now be disconnected.");
257+
255258
settings->setDefault("profiler_print_interval", "0");
256259
settings->setDefault("enable_mapgen_debug_info", "false");
257260
settings->setDefault("active_object_send_range_blocks", "3");

‎src/environment.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -428,10 +428,11 @@ bool ServerEnvironment::line_of_sight(v3f pos1, v3f pos2, float stepsize, v3s16
428428

429429
void ServerEnvironment::kickAllPlayers(const std::string &reason)
430430
{
431+
std::wstring wreason = utf8_to_wide(reason);
431432
for (std::vector<Player*>::iterator it = m_players.begin();
432433
it != m_players.end();
433434
++it) {
434-
((Server*)m_gamedef)->DenyAccess_Legacy((*it)->peer_id, utf8_to_wide(reason));
435+
((Server*)m_gamedef)->DenyAccess_Legacy((*it)->peer_id, wreason);
435436
}
436437
}
437438

‎src/server.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -397,8 +397,8 @@ Server::~Server()
397397
infostream << "Server: Saving players" << std::endl;
398398
m_env->saveLoadedPlayers();
399399

400-
infostream << "Server: kick players" << std::endl;
401-
m_env->kickAllPlayers("Server shutting down...");
400+
infostream << "Server: Kicking players" << std::endl;
401+
m_env->kickAllPlayers(g_settings->get("kick_msg_shutdown"));
402402

403403
infostream << "Server: Saving environment metadata" << std::endl;
404404
m_env->saveMeta();
@@ -502,7 +502,7 @@ void Server::step(float dtime)
502502
throw ServerError(async_err);
503503
}
504504
else {
505-
m_env->kickAllPlayers("The server has crashed. Disconnecting all players. Please reconnect soon...");
505+
m_env->kickAllPlayers(g_settings->get("kick_msg_crash"));
506506
errorstream << "UNRECOVERABLE error occurred. Stopping server. "
507507
<< "Please fix the following error:" << std::endl
508508
<< async_err << std::endl;

0 commit comments

Comments
 (0)
Please sign in to comment.