itb-ranking/mod/init.lua
Auke Kok bab1a538eb Builder ranking.
Combines count + box ranking (1:1).

This balances quantity and quality, somewhat.
2017-11-05 22:55:17 -08:00

51 lines
901 B
Lua

ranks = {}
ranks.player = {}
ranks.boxes = {}
ranks.builder = {}
local wp = minetest.get_worldpath()
local fetch_file = function(filename)
local f = io.open(filename, "r")
if not f then
minetest.log("error", "failed to open " .. filename)
return {}
end
local fr = f:read("*all")
f:close()
local pl = minetest.parse_json(fr)
if not pl then
minetest.log("error", "failed to parse " .. filename)
return {}
end
local tbl = {}
for i = 1, 10 do
if pl[tostring(i)] then
tbl[i] = pl[tostring(i)]
else
minetest.log("error", filename .. " missing rank #" .. i)
return {}
end
end
return tbl
end
ranks.fetch = function()
ranks.player = fetch_file(wp .. "/top_players.json", "r")
ranks.box = fetch_file(wp .. "/top_boxes.json", "r")
ranks.builder = fetch_file(wp .. "/top_builders.json", "r")
minetest.after(300, ranks.fetch)
end
minetest.after(0, ranks.fetch)