[submodule "textures/server"]
path = textures/server
url = https://github.com/EliasFleckenstein03/mc-textures
+[submodule "mods/playerlist"]
+ path = mods/playerlist
+ url = https://github.com/EliasFleckenstein03/playerlist
+++ /dev/null
-local ranks = elidragon.ranks
-
-local player_huds = {}
-
-controls.register_on_press(function(player, key)
- if key == "sneak" then
- local name = player:get_player_name()
- local huds = {}
- for i, n, _, rank, rank_def in ranks.iterate_players() do
- table.insert(huds, player:hud_add({
- hud_elem_type = "text",
- position = {x = 0.5, y = 0},
- offset = {x = 20, y = 53 + (i - 1) * 18},
- text = n,
- alignment = {x = 1, y = 1},
- scale = {x = 100, y = 100},
- number = tonumber(rank_def.color, 16),
- }))
- table.insert(huds, player:hud_add({
- hud_elem_type = "image",
- position = {x = 0.5, y = 0},
- offset = {x = 0, y = 50 + (i - 1) * 18},
- text = "server_ping_" .. math.max(1, math.ceil(4 - minetest.get_player_information(n).avg_rtt * 4)) .. ".png",
- alignment = {x = -1, y = 1},
- scale = {x = 1.5, y = 1.5},
- number = 0xFFFFFF,
- }))
- end
- player_huds[name] = huds
- end
-end)
-
-controls.register_on_release(function(player, key)
- if key == "sneak" and player then
- for _, id in ipairs(player_huds[player:get_player_name()] or {}) do
- player:hud_remove(id)
- end
- end
-end)
-
-elidragon.playerlist = {}
+++ /dev/null
-name = elidragon_playerlist
-author = Fleckenstein
-description = Show a playerlist similar to minecraft when the sneak key is pressed, people with the highest ranks are shown first
-depends = elidragon, elidragon_ranks, controls
ranks.reload(player)
end
-function ranks.iterate_players(list)
- local players = {}
- for _, player in ipairs(list or minetest.get_connected_players()) do
+local function filter_rpc(func)
+ for _, player in ipairs(minetest.get_connected_players()) do
local name = player:get_player_name()
if name ~= "rpc" then
- local rank, rank_def = ranks.get(name)
- table.insert(players, {
- name = name,
- ref = player,
- rank = rank,
- rank_def = rank_def,
- value = rank_def.value
- })
+ func(player, name)
end
end
+end
+
+function playerlist.iterator()
+ local players = {}
+ filter_rpc(function(player, name)
+ local _, rank_def = ranks.get(name)
+ table.insert(players, {
+ ref = player,
+ color = tonumber(rank_def.color, 16),
+ value = rank_def.value,
+ })
+ end)
table.sort(players, function(a, b)
return a.value > b.value
end)
i = i + 1
local player = players[i]
if player then
- return i, player.name, player.ref, player.rank, player.rank_def
+ return i, player.ref, player.color
end
end
end
+function playerlist.count()
+ local count = 0
+ filter_rpc(function()
+ count = count + 1
+ end)
+ return count
+end
+
minetest.register_on_joinplayer(ranks.reload)
function minetest.send_join_message(name)
name = elidragon_ranks
author = Fleckenstein
description = Rank system for Elidragon v2
-depends = elidragon, elidragon_playerdb
+depends = elidragon, elidragon_playerdb, playerlist
--- /dev/null
+Subproject commit a84a62544f7896b3f3551b8fb5b49ba0b510e416
load_mod_elidragon_grouplist = false
load_mod_elidragon_luckyblock = false
load_mod_elidragon_playerdb = true
-load_mod_elidragon_playerlist = true
load_mod_elidragon_plot = true
load_mod_elidragon_plotmg = true
load_mod_elidragon_random = false
load_mod_elidragon_util = true
load_mod_lucky_block = false
load_mod_mcl_wither_spawning = true
+load_mod_multiserver = true
+load_mod_playerlist = true
load_mod_worldedit = true
load_mod_worldedit_brush = true
load_mod_worldedit_commands = true
load_mod_worldedit_gui = false
load_mod_worldedit_shortcommands = true
-load_mod_multiserver = true
load_mod_elidragon_grouplist = false
load_mod_elidragon_luckyblock = false
load_mod_elidragon_playerdb = true
-load_mod_elidragon_playerlist = true
load_mod_elidragon_plot = false
load_mod_elidragon_plotmg = false
load_mod_elidragon_random = false
load_mod_elidragon_util = false
load_mod_lucky_block = false
load_mod_mcl_wither_spawning = true
+load_mod_multiserver = true
+load_mod_playerlist = true
load_mod_worldedit = true
load_mod_worldedit_brush = true
load_mod_worldedit_commands = true
load_mod_worldedit_gui = false
load_mod_worldedit_shortcommands = true
-load_mod_multiserver = true
load_mod_elidragon_grouplist = true
load_mod_elidragon_luckyblock = true
load_mod_elidragon_playerdb = true
-load_mod_elidragon_playerlist = true
load_mod_elidragon_plot = true
load_mod_elidragon_plotmg = true
load_mod_elidragon_random = false
load_mod_elidragon_util = true
load_mod_lucky_block = true
load_mod_mcl_wither_spawning = true
+load_mod_multiserver = true
+load_mod_playerlist = true
load_mod_worldedit = true
load_mod_worldedit_brush = true
load_mod_worldedit_commands = true
load_mod_worldedit_gui = false
load_mod_worldedit_shortcommands = true
-load_mod_multiserver = true
load_mod_elidragon_grouplist = false
load_mod_elidragon_luckyblock = false
load_mod_elidragon_playerdb = true
-load_mod_elidragon_playerlist = true
load_mod_elidragon_plot = false
load_mod_elidragon_plotmg = false
load_mod_elidragon_random = false
load_mod_elidragon_util = true
load_mod_lucky_block = false
load_mod_mcl_wither_spawning = true
+load_mod_multiserver = true
+load_mod_playerlist = true
load_mod_worldedit = true
load_mod_worldedit_brush = true
load_mod_worldedit_commands = true
load_mod_worldedit_gui = false
load_mod_worldedit_shortcommands = true
-load_mod_multiserver = true