Changed some global_list stuff:

>tried to make the comments less confusing.
>Removed the procs for rebuilding the lists (they weren't meant to be used and half were broken anyway).
>added a directory. It maps ckey to client like so directory[ckey] = client. It could be used for PMs, banning, and various other admin tools rather than using \ref[]
>var/list/admins is now a list of clients whom are admins.
>var/list/admin_datums is what var/list/admins used to be. A map from ckey -> admin datum
Most of this is so I can add modular admin ranks in a non-horrendous way and fix some existing issues.
>var/list/client_list is now var/list/clients (laziness sorry)
>removed some needless loops and stuff.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4951 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
elly1989@rocketmail.com
2012-10-24 20:11:39 +00:00
parent ca59c9fde9
commit b1fdee2e32
27 changed files with 123 additions and 261 deletions
+2 -4
View File
@@ -53,17 +53,15 @@ datum/admins/proc/DB_ban_record(var/bantype, var/mob/banned_mob, var/duration =
a_computerid = src.owner:computer_id
a_ip = src.owner:address
// var/list/client/clients = get_all_clients()
var/who
for(var/client/C in client_list)
for(var/client/C in clients)
if(!who)
who = "[C]"
else
who += ", [C]"
var/list/client/admin_clients = get_all_admin_clients()
var/adminwho
for(var/client/C in admin_clients)
for(var/client/C in admins)
if(!adminwho)
adminwho = "[C]"
else
+1 -1
View File
@@ -1,6 +1,6 @@
//Blocks an attempt to connect before even creating our client datum thing.
world/IsBanned(key,address,computer_id)
if(ckey(key) in admins)
if(ckey(key) in admin_datums)
return ..()
//Guest Checking
+7 -8
View File
@@ -7,14 +7,13 @@ var/global/floorIsLava = 0
/proc/message_admins(var/text, var/admin_ref = 0, var/admin_holder_ref = 0)
var/rendered = "<span class=\"admin\"><span class=\"prefix\">ADMIN LOG:</span> <span class=\"message\">[text]</span></span>"
log_adminwarn(rendered)
for (var/client/C in admin_list)
if (C)
var/msg = rendered
if (admin_ref)
msg = dd_replacetext(msg, "%admin_ref%", "\ref[C]")
if (admin_holder_ref && C.holder)
msg = dd_replacetext(msg, "%holder_ref%", "\ref[C.holder]")
C << msg
for(var/client/C in admins)
var/msg = rendered
if(admin_ref)
msg = dd_replacetext(msg, "%admin_ref%", "\ref[C]")
if(admin_holder_ref && C.holder)
msg = dd_replacetext(msg, "%holder_ref%", "\ref[C.holder]")
C << msg
///////////////////////////////////////////////////////////////////////////////////////////////Panels
+5 -6
View File
@@ -25,8 +25,8 @@
/client/proc/update_admins(var/rank)
if(!holder)
holder = new /datum/admins(rank)
admin_list |= src
admins[ckey] = holder
admins |= src
admin_datums[ckey] = holder
var/need_update = 0
//check if our rank has changed
@@ -253,7 +253,6 @@
verbs += /datum/admins/proc/adjump
verbs += /client/proc/callproc
verbs += /client/proc/triple_ai
verbs += /client/proc/get_admin_state
verbs += /client/proc/reload_admins
verbs += /client/proc/cmd_debug_make_powernets
verbs += /client/proc/object_talk
@@ -299,7 +298,6 @@
/client/proc/show_verbs,
/client/proc/colorooc,
/client/proc/triple_ai,
/client/proc/get_admin_state,
/client/proc/reload_admins,
/client/proc/kill_air,
/client/proc/cmd_debug_make_powernets,
@@ -419,11 +417,11 @@
body.key = "@[key]" //Haaaaaaaack. But the people have spoken. If it breaks; blame adminbus
feedback_add_details("admin_verb","O") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/*
/client/proc/get_admin_state()
set name = "Get Admin State"
set category = "Debug"
for(var/client/C in admin_list)
for(var/client/C in admins)
if(C.holder.state == 1)
src << "[C.key] is playing - [C.holder.state]"
else if(C.holder.state == 2)
@@ -431,6 +429,7 @@
else
src << "[C.key] is undefined - [C.holder.state]"
feedback_add_details("admin_verb","GAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
*/
/client/proc/invisimin()
set name = "Invisimin"
+3 -3
View File
@@ -1,8 +1,8 @@
/client/proc/deadmin()
admins.Remove(ckey)
admin_datums -= ckey
if(holder) del(holder)
src.clear_admin_verbs()
admin_list -= src
clear_admin_verbs()
admins -= src
return 1
var/list/admin_datums = list()
+4 -3
View File
@@ -22,9 +22,10 @@
return
feedback_add_details("admin_verb","M") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
for (var/client/C in admin_list)
if (src.holder.rank == "Admin Observer")
if(holder.rank == "Admin Observer")
for(var/client/C in admins)
C << "<span class='adminobserver'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, C)]:</EM> <span class='message'>[msg]</span></span>"
else
else
for(var/client/C in admins)
C << "<span class='admin'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, C)]</EM> (<A HREF='?src=\ref[C.holder];adminplayerobservejump=\ref[mob]'>JMP</A>): <span class='message'>[msg]</span></span>"
+2 -2
View File
@@ -939,7 +939,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
if("Players")
usr << dd_list2text(player_list,",")
if("Admins")
usr << dd_list2text(admin_list,",")
usr << dd_list2text(admins,",")
if("Mobs")
usr << dd_list2text(mob_list,",")
if("Living Mobs")
@@ -947,4 +947,4 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
if("Dead Mobs")
usr << dd_list2text(dead_mob_list,",")
if("Clients")
usr << dd_list2text(client_list,",")
usr << dd_list2text(clients,",")
-4
View File
@@ -35,10 +35,6 @@
src << "<font color='red'>Only Game Masters may use this command.</font>"
return
var/list/clients = list()
for(var/client/C)
clients += C
var/client/target = input(src,"Choose somebody to grant access to the server's runtime logs (permissions expire at the end of each round):","Grant Permissions",null) as null|anything in clients
if( !target || !istype(target,/client) )
src << "<font color='red'>Error: giveruntimelog(): Client not found.</font>"
+6 -14
View File
@@ -17,8 +17,8 @@
var/icon/cross = icon('icons/obj/storage.dmi',"bible")
for (var/client/C in admin_list)
if (C.seeprayers)
for(var/client/C in admins)
if(C.seeprayers)
C << "\blue \icon[cross] <b><font color=purple>PRAY: </font>[key_name(src, C)] (<A HREF='?src=\ref[C.holder];adminmoreinfo=\ref[src]'>?</A>) (<A HREF='?src=\ref[C.holder];adminplayeropts=\ref[src]'>PP</A>) (<A HREF='?src=\ref[C.holder];adminplayervars=\ref[src]'>VV</A>) (<A HREF='?src=\ref[C.holder];adminplayersubtlemessage=\ref[src]'>SM</A>) (<A HREF='?src=\ref[C.holder];adminplayerobservejump=\ref[src]'>JMP</A>) (<A HREF='?src=\ref[C.holder];secretsadmin=check_antagonist'>CA</A>) (<A HREF='?src=\ref[C.holder];adminspawncookie=\ref[src]'>SC</a>):</b> [msg]"
usr << "Your prayers have been received by the gods."
@@ -27,20 +27,12 @@
/proc/Centcomm_announce(var/text , var/mob/Sender)
var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN)
// log_admin("[key_name(Sender)] sent a message to Centcomm! The message was [msg]") // Handled somewhere else
for (var/client/C in admin_list)
for(var/client/C in admins)
C << "\blue <b><font color=orange>CENTCOMM:</font>[key_name(Sender, C)] (<A HREF='?src=\ref[C.holder];adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?src=\ref[C.holder];adminplayervars=\ref[Sender]'>VV</A>) (<A HREF='?src=\ref[C.holder];adminplayersubtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?src=\ref[C.holder];adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?src=\ref[C.holder];secretsadmin=check_antagonist'>CA</A>) (<A HREF='?src=\ref[C.holder];BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?src=\ref[C.holder];CentcommReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
//
/proc/Syndicate_announce(var/text , var/mob/Sender)
var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN)
// log_admin("[key_name(Sender)] sent a message to the Syndicate! The message was [msg]") // Handled somewhere else
for (var/client/C in admin_list)
for(var/client/C in admins)
C << "\blue <b><font color=crimson>SYNDICATE:</font>[key_name(Sender, C)] (<A HREF='?src=\ref[C.holder];adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?src=\ref[C.holder];adminplayervars=\ref[Sender]'>VV</A>) (<A HREF='?src=\ref[C.holder];adminplayersubtlemessage=\ref[Sender]'>SM</A>) (<A HREF='?src=\ref[C.holder];adminplayerobservejump=\ref[Sender]'>JMP</A>) (<A HREF='?src=\ref[C.holder];secretsadmin=check_antagonist'>CA</A>) (<A HREF='?src=\ref[C.holder];BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?src=\ref[C.holder];SyndicateReply=\ref[Sender]'>RPLY</A>):</b> [msg]"
//