diff --git a/mods/track_players/init.lua b/mods/track_players/init.lua new file mode 100644 index 00000000..71b8aa07 --- /dev/null +++ b/mods/track_players/init.lua @@ -0,0 +1,32 @@ +local time_interval = 1.0 +local fifo_path = "/tmp/mt_players_fifo" + +function players_data() + local ps = {} + for _, player in ipairs(minetest.get_connected_players()) do + local pos = player:getpos() + local pname = player:get_player_name() + local data = { + name = pname, + x = pos.x, + y = pos.y, + z = pos.z } + table.insert(ps, data) + end + if table.getn(ps) == 0 then + return '[]\n' + end + return minetest.write_json(ps) .. '\n' +end + +function time_interval_func() + 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 + +minetest.after(time_interval, time_interval_func) diff --git a/worlds/minetestforfun/world.mt b/worlds/minetestforfun/world.mt index df53ae34..fb48f4be 100755 --- a/worlds/minetestforfun/world.mt +++ b/worlds/minetestforfun/world.mt @@ -181,6 +181,7 @@ load_mod_notice = true load_mod_name_restrictions = true load_mod_whoison = true load_mod_player_inactive = true +load_mod_track_players = true load_mod_spawn = true load_mod__misc = true load_mod_interact = true