Command block server crash fixed

Before that, command block would crash the server if activated when no
players are online
This commit is contained in:
number Zero 2016-07-08 22:59:51 +03:00 committed by Jeija
parent 40487a65f4
commit f9f7600017

View File

@ -93,9 +93,22 @@ local function receive_fields(pos, formname, fields, sender)
end end
local function resolve_commands(commands, pos) local function resolve_commands(commands, pos)
local players = minetest.get_connected_players()
-- No players online: remove all commands containing
-- @nearest, @farthest and @random
if #players == 0 then
commands = commands:gsub("[^\r\n]+", function (line)
if line:find("@nearest") then return "" end
if line:find("@farthest") then return "" end
if line:find("@random") then return "" end
return line
end)
return commands
end
local nearest, farthest = nil, nil local nearest, farthest = nil, nil
local min_distance, max_distance = math.huge, -1 local min_distance, max_distance = math.huge, -1
local players = minetest.get_connected_players()
for index, player in pairs(players) do for index, player in pairs(players) do
local distance = vector.distance(pos, player:getpos()) local distance = vector.distance(pos, player:getpos())
if distance < min_distance then if distance < min_distance then