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