summaryrefslogtreecommitdiff
path: root/src/script
diff options
context:
space:
mode:
authorLoic Blot <loic.blot@unix-experience.fr>2015-02-17 20:09:36 +0100
committerLoic Blot <loic.blot@unix-experience.fr>2015-02-18 09:36:42 +0100
commit4208fdfd2273b715eeddb8b9877c2def8346d447 (patch)
treef06bb591b996c1facb14d18a1b4cc88793a1b70d /src/script
parent4875213168ed877ab708e81d539923109977a5c8 (diff)
downloadminetest-4208fdfd2273b715eeddb8b9877c2def8346d447.tar.gz
minetest-4208fdfd2273b715eeddb8b9877c2def8346d447.tar.bz2
minetest-4208fdfd2273b715eeddb8b9877c2def8346d447.zip
Fix unused (and so, broken) enable_rollback_recording. This option must be reloaded at server loop but loaded when server starts, for data consistency (not a hot load variable)
Diffstat (limited to 'src/script')
-rw-r--r--src/script/lua_api/l_rollback.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/script/lua_api/l_rollback.cpp b/src/script/lua_api/l_rollback.cpp
index f55a72d1b..5744e6813 100644
--- a/src/script/lua_api/l_rollback.cpp
+++ b/src/script/lua_api/l_rollback.cpp
@@ -44,6 +44,9 @@ int ModApiRollback::l_rollback_get_node_actions(lua_State *L)
int limit = luaL_checknumber(L, 4);
Server *server = getServer(L);
IRollbackManager *rollback = server->getRollbackManager();
+ if (rollback == NULL) {
+ return 0;
+ }
std::list<RollbackAction> actions = rollback->getNodeActors(pos, range, seconds, limit);
std::list<RollbackAction>::iterator iter = actions.begin();
@@ -80,6 +83,13 @@ int ModApiRollback::l_rollback_revert_actions_by(lua_State *L)
int seconds = luaL_checknumber(L, 2);
Server *server = getServer(L);
IRollbackManager *rollback = server->getRollbackManager();
+
+ // If rollback is disabled, tell it's not a success.
+ if (rollback == NULL) {
+ lua_pushboolean(L, false);
+ lua_newtable(L);
+ return 2;
+ }
std::list<RollbackAction> actions = rollback->getRevertActions(actor, seconds);
std::list<std::string> log;
bool success = server->rollbackRevertActions(actions, &log);