From 7c5fa86b2704fb1024be4f6293d7f009c74e4e18 Mon Sep 17 00:00:00 2001 From: "Sascha L. Teichmann" Date: Mon, 9 Mar 2015 12:49:55 +0100 Subject: [PATCH] Write better mod which write data to a fifo. --- mods/track_players/init.lua | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/mods/track_players/init.lua b/mods/track_players/init.lua index e131134..29bef33 100644 --- a/mods/track_players/init.lua +++ b/mods/track_players/init.lua @@ -1,9 +1,27 @@ local time_interval = 1.0 +local fifo_path "/tmp/mt_players_fifo" + +function players_data() + ps = {} + for i, player in ipairs(minetest.get_connected_players()) do + local pos = player:getpos() + local name = player:get_player_name() + local data = { + name = pname, + x = pos.x, + y = pos.y, + z = pos.z } + table.insert(ps, data) + end + return minetest.write_json(ps) .. '\n' +end function time_interval_func() - for _, player in ipairs(minetest.get_connected_players()) do - local name = player:get_player_name() - minetest.chat_send_player(name, "Hello " .. name) + local players = players_data() + local fifo = io.open(fifo_path, 'w') + if (fifo != nil) then + fifo.write(players) + fifo:close() end minetest.after(time_interval, time_interval_func) end