Fix crash on player joining

master
GunshipPenguin 2015-03-25 19:36:43 -07:00
parent 83d48fe2cb
commit 4a815cd04e
1 changed files with 24 additions and 22 deletions

View File

@ -7,7 +7,7 @@ to this software to the public domain worldwide. This software is
distributed without any warranty. distributed without any warranty.
]] ]]
local MAX_INACTIVE_TIME = 300 local MAX_INACTIVE_TIME = 20
local CHECK_INTERVAL = 1 local CHECK_INTERVAL = 1
local WARN_TIME = 20 local WARN_TIME = 20
@ -36,30 +36,32 @@ minetest.register_globalstep(function(dtime)
--Loop through each player in players --Loop through each player in players
for playerName,_ in pairs(players) do for playerName,_ in pairs(players) do
local player = minetest.get_player_by_name(playerName) local player = minetest.get_player_by_name(playerName)
if player then
--Check for inactivity once every CHECK_INTERVAL seconds --Check for inactivity once every CHECK_INTERVAL seconds
checkTimer = checkTimer + dtime checkTimer = checkTimer + dtime
if checkTimer > CHECK_INTERVAL then if checkTimer > CHECK_INTERVAL then
checkTimer = 0 checkTimer = 0
--Kick player if he/she has been inactive for longer than MAX_INACTIVE_TIME seconds --Kick player if he/she has been inactive for longer than MAX_INACTIVE_TIME seconds
if players[playerName]["lastAction"] + MAX_INACTIVE_TIME < currGameTime then if players[playerName]["lastAction"] + MAX_INACTIVE_TIME < currGameTime then
print(dump(players[playerName]["lastAction"])) print(dump(players[playerName]["lastAction"]))
print(dump(currGameTime)) print(dump(currGameTime))
print(dump(MAX_INACTIVE_TIME)) print(dump(MAX_INACTIVE_TIME))
minetest.kick_player(playerName, "Kicked for inactivity") minetest.kick_player(playerName, "Kicked for inactivity")
end
--Warn player if he/she has less than WARN_TIME seconds to move or be kicked
if players[playerName]["lastAction"] + MAX_INACTIVE_TIME - WARN_TIME < currGameTime then
minetest.chat_send_player(playerName, "Warning, you have " .. tostring(players[playerName]["lastAction"] + MAX_INACTIVE_TIME - currGameTime) .. " seconds to move or be kicked")
end
end end
--Warn player if he/she has less than WARN_TIME seconds to move or be kicked --Check if this player is doing an action
if players[playerName]["lastAction"] + MAX_INACTIVE_TIME - WARN_TIME < currGameTime then for _,keyPressed in pairs(player:get_player_control()) do
minetest.chat_send_player(playerName, "Warning, you have " .. tostring(players[playerName]["lastAction"] + MAX_INACTIVE_TIME - currGameTime) .. " seconds to move or be kicked") if keyPressed then
end players[playerName]["lastAction"] = currGameTime
end end
--Check if this player is doing an action
for _,keyPressed in pairs(player:get_player_control()) do
if keyPressed then
players[playerName]["lastAction"] = currGameTime
end end
end end
end end