/datum/admins/proc/player_panel_new()//The new one if(!check_rights()) return log_admin("[key_name(usr)] checked the player panel.") var/dat = "Player Panel" //javascript, the part that does most of the work~ dat += {" "} //body tag start + onload and onkeypress (onkeyup) javascript event calls dat += "" //title + search bar dat += {"
Player panel
Hover over a line to see more information - Check antagonists - Kick everyone/AFKers in lobby

Search:
"} //player table header dat += {" "} var/list/mobs = sortmobs() var/i = 1 for(var/mob/M in mobs) if(M.ckey) var/color = "#e6e6e6" if(i%2 == 0) color = "#f2f2f2" var/is_antagonist = is_special_character(M) var/M_job = "" if(isliving(M)) if(iscarbon(M)) //Carbon stuff if(ismonkey(M)) M_job = "Monkey" else if(ishuman(M)) M_job = M.job else if(isalien(M)) //aliens if(islarva(M)) M_job = "Alien larva" else M_job = ROLE_ALIEN else M_job = "Carbon-based" else if(issilicon(M)) //silicon if(isAI(M)) M_job = "AI" else if(ispAI(M)) M_job = ROLE_PAI else if(iscyborg(M)) M_job = "Cyborg" else M_job = "Silicon-based" else if(isanimal(M)) //simple animals if(iscorgi(M)) M_job = "Corgi" else if(isslime(M)) M_job = "slime" else M_job = "Animal" else M_job = "Living" else if(isnewplayer(M)) M_job = "New player" else if(isobserver(M)) var/mob/dead/observer/O = M if(O.started_as_observer)//Did they get BTFO or are they just not trying? M_job = "Observer" else M_job = "Ghost" var/M_name = html_encode(M.name) var/M_rname = html_encode(M.real_name) var/M_key = html_encode(M.key) var/previous_names = "" if(M_key) var/datum/player_details/P = GLOB.player_details[ckey(M_key)] if(P) previous_names = P.played_names.Join(",") previous_names = html_encode(previous_names) //output for each mob dat += {" "} i++ //player table ending dat += {"
[M_name] - [M_rname] - [M_key] ([M_job])
"} usr << browse(dat, "window=players;size=600x480")