proc/get_all_clients()
var/list/client/clients = list()
for (var/mob/M in player_list)
clients += M.client
return clients
proc/get_all_admin_clients()
var/list/client/clients = list()
for (var/mob/M in admin_list)
clients += M.client
return clients
/mob/verb/who()
set name = "Who"
set category = "OOC"
usr << "Current Players:"
var/list/peeps = list()
for (var/client/C in client_list)
if (C.stealth && !usr.client.holder)
peeps += "\t[C.fakekey]"
else
peeps += "\t[C.key][C.stealth ? " (as [C.fakekey])" : ""]"
peeps = sortList(peeps)
for (var/p in peeps)
usr << p
usr << "Total Players: [length(peeps)]"
/client/verb/adminwho()
set category = "Admin"
set name = "Adminwho"
usr << "Current Admins:"
for (var/mob/M in admin_list)
if(M && M.client)
if(usr.client)
var/afk = 0
if( M.client.inactivity > AFK_THRESHOLD ) //When I made this, the AFK_THRESHOLD was 3000ds = 300s = 5m, see setup.dm for the new one.
afk = 1
if(isobserver(M))
usr << "[M.key] is a [M.client.holder.rank][M.client.stealth ? " (as [M.client.fakekey])" : ""] - Observing [afk ? "(AFK)" : ""]"
else if(istype(M,/mob/new_player))
usr << "[M.key] is a [M.client.holder.rank][M.client.stealth ? " (as [M.client.fakekey])" : ""] - Has not entered [afk ? "(AFK)" : ""]"
else if(istype(M,/mob/living))
usr << "[M.key] is a [M.client.holder.rank][M.client.stealth ? " (as [M.client.fakekey])" : ""] - Playing [afk ? "(AFK)" : ""]"
else if(!M.client.stealth)
usr << "\t[M.client] is a [M.client.holder.rank]"