diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 0e0010297d6..c64f1cd1e28 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -61,6 +61,47 @@ alert("You cannot perform this action. You must be of a higher administrative rank!") return + if(href_list["add_player_info"]) + var/key = href_list["add_player_info"] + var/add = input("Add Player Info") as null|text + if(!add) return + + var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav") + var/list/infos + info >> infos + if(!infos) infos = list() + + var/datum/player_info/P = new + P.author = usr.key + P.content = add + + infos += P + + info << infos + + del info + + show_player_info(key) + + if(href_list["remove_player_info"]) + var/key = href_list["remove_player_info"] + var/index = text2num(href_list["remove_index"]) + + var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav") + var/list/infos + info >> infos + if(!infos || infos.len < index) return + + var/datum/player_info/item = infos[index] + infos.Remove(item) + info << infos + + del info + + show_player_info(key) + + + /////////////////////////////////////new ban stuff if(href_list["unbanf"]) var/banfolder = href_list["unbanf"] @@ -779,6 +820,10 @@ var/mob/M = locate(href_list["adminplayeropts"]) show_player_panel(M) + if (href_list["player_info"]) + var/key = href_list["player_info"] + show_player_info(key) + if (href_list["adminplayervars"]) var/mob/M = locate(href_list["adminplayervars"]) if(src && src.owner) @@ -1741,11 +1786,48 @@ dat += text("[foo]") usr << browse(dat, "window=adminplayeropts;size=480x150") + +/datum/player_info/var + author // admin who authored the information + content // text content of the information + + +/obj/admins/proc/show_player_info(var/key as text) + set category = "Admin" + set name = "Show Player Info" + if (!istype(src,/obj/admins)) + src = usr.client.holder + if (!istype(src,/obj/admins)) + usr << "Error: you are not an admin!" + return + var/dat = "Info on [key]" + dat += "" + + var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav") + var/list/infos + info >> infos + if(!infos) + dat += "No information found on the given key.
" + else + var/i = 0 + for(var/datum/player_info/I in infos) + i += 1 + dat += "[I.content] by [I.author] " + if(I.author == usr.key) + dat += "Remove Info" + dat += "
" + + dat += "
" + dat += "Add Info
" + + dat += "" + usr << browse(dat, "window=adminplayerinfo;size=480x150") + /obj/admins/proc/player() if (!usr.client.holder) return var/dat = "Player Menu" - dat += "" + dat += "
NameReal NameKeyOptionsPMTraitor?Karma
" //add to this if wanting to add back in IP checking //add if you want to know their ip to the lists below var/list/mobs = sortmobs() @@ -1782,6 +1864,7 @@ dat += "" dat += {" + "} switch(is_special_character(M)) @@ -1827,6 +1910,7 @@ dat += "" dat += {" + "} switch(is_special_character(M))
NameReal NameKeyOptionsInfoPMTraitor?Karma
IP:(IP: [M.lastKnownIP])Alien[M.client?"[M.client]":"No client"] XX PMAlien[(M.client ? "[M.client]" : "No client")] XX PM