Page 1 of 1

[Mod] Death Kick [death_kick]

PostPosted: Sat Jul 16, 2016 02:35
by everamzah
Description: Give players about two minutes to click the Respawn button before being kicked.
License: LGPL v2.1+
Git Repo: https://github.com/everamzah/death_kick
Download: death_kick.zip
+ Code

Re: [Mod] Death Kick [death_kick]

PostPosted: Sat Jul 16, 2016 09:57
by azekill_DIABLO
nice! this will help servers with afk player!!! but it would be nice to do a mod to kick player after 1min if they are afk

Re: [Mod] Death Kick [death_kick]

PostPosted: Sat Jul 16, 2016 10:00
by Krock
With the current code you also get kicked after dying 5 times - no matter how fast.

EDIT: Haven't seen "minetest.register_on_respawnplayer", so it should work as expected.

Re: [Mod] Death Kick [death_kick]

PostPosted: Sat Jul 16, 2016 10:42
by everamzah
Register on respawn resets count to 0.

Edit: Though, I haven't tested. ^_^
Edit2: Tested, died >5 times, did not get kicked. *\o/*
Edit3: Hrm.

Re: [Mod] Death Kick [death_kick]

PostPosted: Thu Jul 21, 2016 15:34
by everamzah
I updated this:
+ Old code

Re: [Mod] Death Kick [death_kick]

PostPosted: Thu Jul 28, 2016 15:24
by everamzah
I updated this again. The license is now LGPL v2.1+. I spent more time on this than I care to admit:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
local death_kick = {}

minetest.register_on_joinplayer(function(player)
   death_kick[player:get_player_name()] = nil
end)

minetest.register_on_leaveplayer(function(player)
   death_kick[player:get_player_name()] = nil
end)

minetest.register_on_respawnplayer(function(player)
   death_kick[player:get_player_name()] = nil
end)

minetest.register_on_dieplayer(function(player)
   if not death_kick[player:get_player_name()] then
      death_kick[player:get_player_name()] = minetest.get_us_time()
   end

   if minetest.get_us_time() - death_kick[player:get_player_name()] < 120 * 1000000 then
      minetest.after(10, function()
         if (not player) or player:get_hp() ~= 0 then
            return
         end
         player:set_hp(0)
      end, player)
   else
      minetest.kick_player(player:get_player_name(), "You died.")
   end
end)

Re: [Mod] Death Kick [death_kick]

PostPosted: Thu Jul 28, 2016 18:36
by azekill_DIABLO
actually, the code is pretty light! nice :)

Re: [Mod] Death Kick [death_kick]

PostPosted: Wed Nov 09, 2016 16:26
by Fixerol