Port Bay's inactivity subsystem

This commit is contained in:
Arokha Sieyes
2020-03-09 00:53:31 -04:00
parent b849ff90a2
commit 32ccb0901a

View File

@@ -1,16 +1,25 @@
SUBSYSTEM_DEF(inactivity)
name = "AFK Kick"
wait = 600
flags = SS_BACKGROUND | SS_NO_TICK_CHECK
name = "Inactivity"
wait = 1 MINUTE
flags = SS_NO_INIT | SS_BACKGROUND
var/tmp/list/client_list
var/number_kicked = 0
/datum/controller/subsystem/inactivity/fire(resumed = FALSE)
if (!config.kick_inactive)
can_fire = FALSE
return
if (!resumed)
client_list = GLOB.clients.Copy()
while(client_list.len)
var/client/C = client_list[client_list.len]
client_list.len--
if(!C.holder && C.is_afk(config.kick_inactive MINUTES) && !isobserver(C.mob))
/datum/controller/subsystem/inactivity/fire()
if(config.kick_inactive)
for(var/i in GLOB.clients)
var/client/C = i
if(C.is_afk(config.kick_inactive MINUTES) && !C.holder) // VOREStation Edit - Allow admins to idle
to_chat(C, "<span class='warning'>You have been inactive for more than [config.kick_inactive] minute\s and have been disconnected.</span>")
var/information
var/information
if(C.mob)
if(ishuman(C.mob))
var/job
@@ -40,3 +49,10 @@ SUBSYSTEM_DEF(inactivity)
log_and_message_admins("being kicked for AFK[information][adminlinks]", C.mob)
qdel(C)
number_kicked++
if (MC_TICK_CHECK)
return
/datum/controller/subsystem/inactivity/stat_entry()
..("Kicked: [number_kicked]")