From eba06fe1ad8be9fab56e26f71b0e7a48bb41f901 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Wed, 28 Oct 2020 16:48:47 +0100 Subject: [PATCH] Initial Commit --- init.lua | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 init.lua diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..16a18e6 --- /dev/null +++ b/init.lua @@ -0,0 +1,48 @@ +deathswap = {} +deathswap.players = {} + +minetest.register_on_prejoinplayer(function() + if #deathswap.players == 2 then + return false, "Deathswap is full!" + end +end) + +minetest.register_on_joinplayer(function(player) + deathswap.players[#deathswap.players + 1] = player + if #deathswap.players == 2 then + deathswap.start_swap() + end +end) + +minetest.register_on_leaveplayer(function(player) + if player == deathswap.players[1] then + table.remove(deathswap.players, 1) + elseif player == deathswap.players[2] then + table.remove(deathswap.players, 2) + end +end) + +minetest.register_on_dieplayer(function(player) + minetest.kick_player(player:get_player_name(), "You died :-)") +end) + +function deathswap.swap(seconds) + if #deathswap.players < 2 then + return + end + if seconds == 0 then + minetest.chat_send_all(minetest.colorize("#FF7300", "Swapping")) + local pos1 = deathswap.players[1]:get_pos() + local pos2 = deathswap.players[2]:get_pos() + deathswap.players[1]:set_pos(pos2) + deathswap.players[2]:set_pos(pos1) + deathswap.start_swap() + else + minetest.chat_send_all(minetest.colorize("#FF7300", "Swapping in " .. seconds .. " seconds")) + minetest.after(1, deathswap.swap, seconds - 1) + end +end + +function deathswap.start_swap() + minetest.after(5 * 60, deathswap.swap, 10) +end -- 2.44.0