forked from Mirrorlandia_minetest/mesecons
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:
parent
40487a65f4
commit
f9f7600017
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user