X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=playerlist.lua;h=4cfa429975da06757375d5e886ee3496f00394c0;hb=HEAD;hp=6478f62f26a42493042816a053774d93fb06513c;hpb=2820196a80ffc936b123f924a05906699027ce15;p=coronaserver.git diff --git a/playerlist.lua b/playerlist.lua index 6478f62..4cfa429 100644 --- a/playerlist.lua +++ b/playerlist.lua @@ -1,41 +1,23 @@ -coronaserver.playerlist = {} -controls.register_on_press(function(player, key) - if key == "sneak" then - local name = player:get_player_name() - local list = {} - local players = minetest.get_connected_players() - for i, p in pairs(players) do - local n = p:get_player_name() - local info = minetest.get_player_information(n) - if info then - local ping = math.max(1, math.ceil(4 - info.avg_rtt * 4)) - list[#list + 1] = player:hud_add({ - hud_elem_type = "text", - position = {x = 1, y = 0}, - offset = {x = -50, y = 5 + (i - 1) * 18}, - text = n, - alignment = {x = -1, y = 1}, - scale = {x = 100, y = 100}, - number = tonumber(coronaserver.get_rank(n).color:gsub("#", ""), 16), - }) - list[#list + 1] = player:hud_add({ - hud_elem_type = "image", - position = {x = 1, y = 0}, - offset = {x = -5, y = (i - 1) * 18}, - text = "server_ping_" .. ping .. ".png", - alignment = {x = -1, y = 1}, - scale = {x = 1.5, y = 1.5}, - number = 0xFFFFFF, - }) - end - end - coronaserver.playerlist[name] = list +function playerlist.iterator() + local list = {} + for _, player in ipairs(minetest.get_connected_players()) do + local rank, i = coronaserver.get_rank(player:get_player_name()) + print(dump(rank), i) + table.insert(list, { + player = player, + value = i, + color = tonumber(rank.color:gsub("#", ""), 16) + }) end -end) -controls.register_on_release(function(player, key) - if key == "sneak" then - for _, id in pairs(coronaserver.playerlist[player:get_player_name()]) do - player:hud_remove(id) + table.sort(list, function(a, b) + return a.value > b.value + end) + local i = 0 + return function() + i = i + 1 + local elem = list[i] + if elem then + return i, elem.player, elem.color end end -end) +end