]> git.lizzy.rs Git - coronaserver.git/commitdiff
Added Playerlist
authorElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 10 May 2020 17:11:54 +0000 (19:11 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 10 May 2020 17:11:54 +0000 (19:11 +0200)
init.lua
playerlist.lua [new file with mode: 0644]
ranks.lua

index a4bd20b0a7be3e84e017a86a0351acda249b3d22..06667e2299c9ad3128b683ebd32005f112411582 100755 (executable)
--- a/init.lua
+++ b/init.lua
@@ -1,6 +1,6 @@
 coronaserver = {}
 
-local modules = {"save", "advprivs", "ranks"}
+local modules = {"save", "advprivs", "ranks", "playerlist"}
 
 for _, m in pairs(modules) do
     dofile(minetest.get_modpath("coronaserver") .. "/" .. m .. ".lua")
diff --git a/playerlist.lua b/playerlist.lua
new file mode 100644 (file)
index 0000000..01070c5
--- /dev/null
@@ -0,0 +1,37 @@
+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()
+                       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_" .. math.ceil(4 - minetest.get_player_information(n).avg_rtt / 2 * 4) .. ".png",
+                               alignment = {x = -1, y = 1},
+                               scale = {x = 1.5, y = 1.5},
+                               number = 0xFFFFFF,
+                       })
+               end
+               coronaserver.playerlist[name] = list
+       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)
+               end
+       end
+end)
index fea20ae3a7d28fe2f19e21a6c87ee98eae36fa02..565994e6422e4d1981ddd4ff000cfb8945c0d2a8 100755 (executable)
--- a/ranks.lua
+++ b/ranks.lua
@@ -14,6 +14,11 @@ coronaserver.ranks = {
                color = "#001FFF",
                tag = "[MODERATOR]",
        },
+       {
+               name = "developer",
+               color = "#EBEE00",
+               tag = "[DEVELOPER]",
+       },
        {
                name = "supporter",
                color = "#EE6E00",
@@ -59,7 +64,7 @@ minetest.register_on_chat_message(function(name, message)
 end)
 minetest.register_chatcommand("rank", {
        params = "<player> <rank>",
-       description = "Einem Spieler einen Rang geben (owner|admin|moderator|supporter)",
+       description = "Einem Spieler einen Rang geben (owner|admin|moderator|supporter|supporter|player)",
        privs = {privs = true},
        func = function(admin, param)
                local name = param:split(' ')[1]