Add enable_rollback_recording setting, defaulting to false

This commit is contained in:
Perttu Ahola 2012-07-28 03:08:09 +03:00
parent e64feefc61
commit c9ed379e39
4 changed files with 11 additions and 0 deletions

@ -160,6 +160,8 @@
#disallow_empty_password = false #disallow_empty_password = false
# If true, disable cheat prevention in multiplayer # If true, disable cheat prevention in multiplayer
#disable_anticheat = false #disable_anticheat = false
# If true, actions are recorded for rollback
#enable_rollback_recording = false
# Profiler data print interval. #0 = disable. # Profiler data print interval. #0 = disable.
#profiler_print_interval = 0 #profiler_print_interval = 0

@ -122,6 +122,7 @@ void set_default_settings(Settings *settings)
settings->setDefault("enable_pvp", "true"); settings->setDefault("enable_pvp", "true");
settings->setDefault("disallow_empty_password", "false"); settings->setDefault("disallow_empty_password", "false");
settings->setDefault("disable_anticheat", "false"); settings->setDefault("disable_anticheat", "false");
settings->setDefault("enable_rollback_recording", "false");
settings->setDefault("profiler_print_interval", "0"); settings->setDefault("profiler_print_interval", "0");
settings->setDefault("enable_mapgen_debug_info", "false"); settings->setDefault("enable_mapgen_debug_info", "false");

@ -937,6 +937,7 @@ Server::Server(
m_banmanager(path_world+DIR_DELIM+"ipban.txt"), m_banmanager(path_world+DIR_DELIM+"ipban.txt"),
m_rollback(NULL), m_rollback(NULL),
m_rollback_sink_enabled(true), m_rollback_sink_enabled(true),
m_enable_rollback_recording(false),
m_lua(NULL), m_lua(NULL),
m_itemdef(createItemDefManager()), m_itemdef(createItemDefManager()),
m_nodedef(createNodeDefManager()), m_nodedef(createNodeDefManager()),
@ -1873,6 +1874,10 @@ void Server::AsyncRunStep()
counter = 0.0; counter = 0.0;
m_emergethread.trigger(); m_emergethread.trigger();
// Update m_enable_rollback_recording here too
m_enable_rollback_recording =
g_settings->getBool("enable_rollback_recording");
} }
} }
@ -4658,6 +4663,8 @@ MtEventManager* Server::getEventManager()
} }
IRollbackReportSink* Server::getRollbackReportSink() IRollbackReportSink* Server::getRollbackReportSink()
{ {
if(!m_enable_rollback_recording)
return NULL;
if(!m_rollback_sink_enabled) if(!m_rollback_sink_enabled)
return NULL; return NULL;
return m_rollback; return m_rollback;

@ -734,6 +734,7 @@ private:
// Rollback manager (behind m_env_mutex) // Rollback manager (behind m_env_mutex)
IRollbackManager *m_rollback; IRollbackManager *m_rollback;
bool m_rollback_sink_enabled; bool m_rollback_sink_enabled;
bool m_enable_rollback_recording; // Updated once in a while
// Scripting // Scripting
// Envlock and conlock should be locked when using Lua // Envlock and conlock should be locked when using Lua