changed kick message and increase afk time to 45 minutes
parent
23d4ade140
commit
e4c5a652ba
83
init.lua
83
init.lua
|
@ -7,59 +7,60 @@ to this software to the public domain worldwide. This software is
|
|||
distributed without any warranty.
|
||||
]]
|
||||
|
||||
local MAX_INACTIVE_TIME = 300
|
||||
local CHECK_INTERVAL = 1
|
||||
local WARN_TIME = 20
|
||||
local MAX_INACTIVE_TIME = 2700
|
||||
local CHECK_INTERVAL = 10
|
||||
local WARN_TIME = 10
|
||||
|
||||
local players = {}
|
||||
local checkTimer = 0
|
||||
|
||||
minetest.register_on_joinplayer(function(player)
|
||||
local playerName = player:get_player_name()
|
||||
players[playerName] = {
|
||||
lastAction = minetest.get_gametime()
|
||||
}
|
||||
local playerName = player:get_player_name()
|
||||
players[playerName] = {
|
||||
lastAction = minetest.get_gametime()
|
||||
}
|
||||
end)
|
||||
|
||||
minetest.register_on_leaveplayer(function(player)
|
||||
local playerName = player:get_player_name()
|
||||
players[playerName] = nil
|
||||
local playerName = player:get_player_name()
|
||||
players[playerName] = nil
|
||||
end)
|
||||
|
||||
minetest.register_on_chat_message(function(playerName, message)
|
||||
players[playerName]["lastAction"] = minetest.get_gametime()
|
||||
players[playerName]["lastAction"] = minetest.get_gametime()
|
||||
end)
|
||||
|
||||
minetest.register_globalstep(function(dtime)
|
||||
local currGameTime = minetest.get_gametime()
|
||||
|
||||
--Loop through each player in players
|
||||
for playerName,_ in pairs(players) do
|
||||
local player = minetest.get_player_by_name(playerName)
|
||||
if player then
|
||||
|
||||
--Check for inactivity once every CHECK_INTERVAL seconds
|
||||
checkTimer = checkTimer + dtime
|
||||
if checkTimer > CHECK_INTERVAL then
|
||||
checkTimer = 0
|
||||
|
||||
--Kick player if he/she has been inactive for longer than MAX_INACTIVE_TIME seconds
|
||||
if players[playerName]["lastAction"] + MAX_INACTIVE_TIME < currGameTime then
|
||||
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
|
||||
|
||||
--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
|
||||
local currGameTime = minetest.get_gametime()
|
||||
|
||||
--Loop through each player in players
|
||||
for playerName,_ in pairs(players) do
|
||||
local player = minetest.get_player_by_name(playerName)
|
||||
if player then
|
||||
|
||||
--Check for inactivity once every CHECK_INTERVAL seconds
|
||||
checkTimer = checkTimer + dtime
|
||||
if checkTimer > CHECK_INTERVAL then
|
||||
checkTimer = 0
|
||||
|
||||
--Kick player if he/she has been inactive for longer than MAX_INACTIVE_TIME seconds
|
||||
if players[playerName]["lastAction"] + MAX_INACTIVE_TIME < currGameTime then
|
||||
minetest.kick_player(playerName, "The Server has kicked you for inactivity to save your life!")
|
||||
core.chat_send_all("# Illuna: " .. playerName .. "'s avatar is doing something else now, because its master is not here.")
|
||||
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, "# Illuna: **Warning**, you have " .. tostring(players[playerName]["lastAction"] + MAX_INACTIVE_TIME - currGameTime) .. " seconds to move or the server will kick you for inactivity")
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue