]> git.lizzy.rs Git - playerlist.git/commitdiff
Initial Commit
authorElias Fleckenstein <eliasfleckenstein@web.de>
Tue, 6 Oct 2020 08:21:03 +0000 (10:21 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Tue, 6 Oct 2020 08:21:03 +0000 (10:21 +0200)
init.lua [new file with mode: 0644]
mod.conf [new file with mode: 0644]

diff --git a/init.lua b/init.lua
new file mode 100644 (file)
index 0000000..8f27de8
--- /dev/null
+++ b/init.lua
@@ -0,0 +1,41 @@
+local 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 ping = math.max(1, math.ceil(4 - minetest.get_player_information(n).avg_rtt * 4))
+                       list[#list + 1] = 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 = 0xFFFFFF,
+                       })
+                       list[#list + 1] = player:hud_add({
+                               hud_elem_type = "image",
+                               position = {x = 0.5, y = 0},
+                               offset = {x = 0, y = 50 + (i - 1) * 18},
+                               text = "server_ping_" .. ping .. ".png",
+                               alignment = {x = -1, y = 1},
+                               scale = {x = 1.5, y = 1.5},
+                               number = 0xFFFFFF,
+                       })
+               end
+               playerlist[name] = list
+       end
+end)
+
+controls.register_on_release(function(player, key)
+       if key == "sneak" and player then
+               for _, id in pairs(playerlist[player:get_player_name()]) do
+                       player:hud_remove(id)
+               end
+       end
+end)
diff --git a/mod.conf b/mod.conf
new file mode 100644 (file)
index 0000000..d5f516a
--- /dev/null
+++ b/mod.conf
@@ -0,0 +1,3 @@
+name = playerlist
+description = The playerlist feature (extracted from the elidragon mod)
+dependencies = controls