From: Elias Fleckenstein Date: Sat, 13 Mar 2021 15:57:51 +0000 (+0100) Subject: Use playerlist mod X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=108b7080c79e63e53a8d880ae5a5e2a437454ace;p=elidragon_v2.git Use playerlist mod --- diff --git a/.gitmodules b/.gitmodules index e5ce49d..fb74f78 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,3 +19,6 @@ [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 diff --git a/mods/elidragon_playerlist/init.lua b/mods/elidragon_playerlist/init.lua deleted file mode 100644 index 2d55ebd..0000000 --- a/mods/elidragon_playerlist/init.lua +++ /dev/null @@ -1,41 +0,0 @@ -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 = {} diff --git a/mods/elidragon_playerlist/mod.conf b/mods/elidragon_playerlist/mod.conf deleted file mode 100644 index 5bf4473..0000000 --- a/mods/elidragon_playerlist/mod.conf +++ /dev/null @@ -1,4 +0,0 @@ -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 diff --git a/mods/elidragon_ranks/init.lua b/mods/elidragon_ranks/init.lua index 8a97da3..a8fa335 100644 --- a/mods/elidragon_ranks/init.lua +++ b/mods/elidragon_ranks/init.lua @@ -53,21 +53,25 @@ function ranks.set(name, rank) 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) @@ -76,11 +80,19 @@ function ranks.iterate_players(list) 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) diff --git a/mods/elidragon_ranks/mod.conf b/mods/elidragon_ranks/mod.conf index 9b76dca..f7ceb77 100644 --- a/mods/elidragon_ranks/mod.conf +++ b/mods/elidragon_ranks/mod.conf @@ -1,4 +1,4 @@ name = elidragon_ranks author = Fleckenstein description = Rank system for Elidragon v2 -depends = elidragon, elidragon_playerdb +depends = elidragon, elidragon_playerdb, playerlist diff --git a/mods/playerlist b/mods/playerlist new file mode 160000 index 0000000..a84a625 --- /dev/null +++ b/mods/playerlist @@ -0,0 +1 @@ +Subproject commit a84a62544f7896b3f3551b8fb5b49ba0b510e416 diff --git a/worlds/creative/world.mt b/worlds/creative/world.mt index 80b5d26..6fe018d 100644 --- a/worlds/creative/world.mt +++ b/worlds/creative/world.mt @@ -12,7 +12,6 @@ load_mod_elidragon_db = 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 = true load_mod_elidragon_plotmg = true load_mod_elidragon_random = false @@ -24,9 +23,10 @@ load_mod_elidragon_tp = true 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 diff --git a/worlds/lobby/world.mt b/worlds/lobby/world.mt index 7c01342..e7a93ca 100644 --- a/worlds/lobby/world.mt +++ b/worlds/lobby/world.mt @@ -12,7 +12,6 @@ load_mod_elidragon_db = 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 @@ -24,9 +23,10 @@ load_mod_elidragon_tp = 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 diff --git a/worlds/skyblock/world.mt b/worlds/skyblock/world.mt index 635e0ce..11bd311 100644 --- a/worlds/skyblock/world.mt +++ b/worlds/skyblock/world.mt @@ -12,7 +12,6 @@ load_mod_elidragon_db = 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 @@ -24,9 +23,10 @@ load_mod_elidragon_tp = true 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 diff --git a/worlds/survival/world.mt b/worlds/survival/world.mt index 4ee9e64..cdb0d17 100644 --- a/worlds/survival/world.mt +++ b/worlds/survival/world.mt @@ -12,7 +12,6 @@ load_mod_elidragon_db = 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 @@ -24,9 +23,10 @@ load_mod_elidragon_tp = true 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