]> git.lizzy.rs Git - elidragon_v2.git/commitdiff
Use playerlist mod
authorElias Fleckenstein <eliasfleckenstein@web.de>
Sat, 13 Mar 2021 15:57:51 +0000 (16:57 +0100)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Sat, 13 Mar 2021 15:57:51 +0000 (16:57 +0100)
.gitmodules
mods/elidragon_playerlist/init.lua [deleted file]
mods/elidragon_playerlist/mod.conf [deleted file]
mods/elidragon_ranks/init.lua
mods/elidragon_ranks/mod.conf
mods/playerlist [new submodule]
worlds/creative/world.mt
worlds/lobby/world.mt
worlds/skyblock/world.mt
worlds/survival/world.mt

index e5ce49d9698ebf10baad78e47a4313109ce37aa3..fb74f781ffc44be671c97f9b044b2b0b2b76c253 100644 (file)
@@ -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 (file)
index 2d55ebd..0000000
+++ /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 (file)
index 5bf4473..0000000
+++ /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
index 8a97da3eaecce86a925d2618be13d2f5c7886abe..a8fa335615d79848ea0ce4ad7f5948f850f5818f 100644 (file)
@@ -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)
index 9b76dca3ef1fd3bfd16f1fb523b528618cb8b30b..f7ceb77ca72a138acaba041ed0fe666ca0b75c7d 100644 (file)
@@ -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 (submodule)
index 0000000..a84a625
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit a84a62544f7896b3f3551b8fb5b49ba0b510e416
index 80b5d260b212b14fbf1206f7a78246b42855befd..6fe018dad356d4814e5ea097fea70e72ad133b56 100644 (file)
@@ -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
index 7c013426d1e408178d6359c68fa8508752785a02..e7a93cac836713aa44f610dea1bea20a91cbd23c 100644 (file)
@@ -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
index 635e0ce8b48689182b288351306a4bfc787e2091..11bd311e1733e6cc9f9f68c7aa69c3a074072859 100644 (file)
@@ -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
index 4ee9e643e5ff909d94d0fc355875005898347f5d..cdb0d1725f91b11cc6188bf39e710c63d3bbf4d6 100644 (file)
@@ -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