37 lines
1.1 KiB
Lua
37 lines
1.1 KiB
Lua
local max_players = minetest.setting_get("max_users")
|
|
munin_enabled = false
|
|
if minetest.setting_getbool("munin.enabled") ~= nil then
|
|
munin_enabled = minetest.setting_getbool("munin.enabled")
|
|
end
|
|
|
|
local last_time = os.time() + 5
|
|
|
|
function munin_write(status, path)
|
|
local file_desc = io.open(path, "w")
|
|
file_desc:write(status.."\n")
|
|
file_desc:close()
|
|
end
|
|
|
|
if munin_enabled then
|
|
minetest.register_globalstep(function(dtime)
|
|
if os.time() >= last_time then
|
|
last_time = os.time() + 30
|
|
if max_players == nil then
|
|
local max_players = 100
|
|
end
|
|
local players = minetest.get_connected_players()
|
|
local player_count = table.getn(players)
|
|
local status = minetest.get_server_status()
|
|
local status_splitted = {}
|
|
for k, v in string.gmatch(status, "([_%w]+)=([%+%w%.]+)") do
|
|
status_splitted[k] = v
|
|
end
|
|
local uptime = status_splitted.uptime
|
|
local max_lag = status_splitted.max_lag
|
|
local status_to_write = max_players.."\n"..player_count.."\n"..max_lag.."\n"..uptime.."\n"..tostring(os.time())
|
|
local fpath = minetest.get_worldpath().."/munin.txt"
|
|
munin_write(status_to_write, fpath)
|
|
end
|
|
end)
|
|
end
|