From 8e52e8cbdf58c8b553d530f8ce4548350a627380 Mon Sep 17 00:00:00 2001 From: "elly1989@rocketmail.com" Date: Sun, 11 Nov 2012 06:40:00 +0000 Subject: [PATCH] Game Panel is now available to all admins regardless of rights (spawning from that panel requires +SPAWN, and changing game mode requires +ADMIN) Player panel (for an individual mob) is available to all admins regardless of rights (like above, each link on the page has its own rights requirements) Essentially, with no rights you can see these panels, but you cannot use most of the tools they link to. Additional rights increase your access to corresponding tools. Removed some duplicate code in /datum/admins/Topic for subtle messages, traitor panel and a few others. There's a lot more to do in this regard but it can wait for now. We're near the end of the disruption now. I sort of have a clear idea what I'm meant to be doing so work will speed up. Full documentation describing exactly what can and can't be done with each flag will be available soon. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5035 316c924e-a436-60f5-8080-3fe189b3f50e --- code/modules/admin/admin.dm | 27 +++++++++++---------- code/modules/admin/admin_ranks.dm | 2 -- code/modules/admin/admin_verbs.dm | 6 ++--- code/modules/admin/player_panel.dm | 4 ++-- code/modules/admin/topic.dm | 34 +++++++++------------------ code/modules/admin/verbs/adminhelp.dm | 2 +- code/modules/admin/verbs/pray.dm | 6 ++--- 7 files changed, 35 insertions(+), 46 deletions(-) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 214a5e58ce5..440a2c70343 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -48,9 +48,9 @@ var/global/floorIsLava = 0 body += "

\[ " body += "VV - " - body += "TP - " + body += "TP - " body += "PM - " - body += "SM - " + body += "SM - " body += "JMP\]
" body += "Mob type = [M.type]

" @@ -371,14 +371,13 @@ var/global/floorIsLava = 0 if(master_mode == "secret") dat += "(Force Secret Mode)
" - if(check_rights(R_ADMIN)) - dat += {" -
- Create Object
- Quick Create Object
- Create Turf
- Create Mob
- "} + dat += {" +
+ Create Object
+ Quick Create Object
+ Create Turf
+ Create Mob
+ "} usr << browse(dat, "window=admin2;size=210x180") return @@ -823,9 +822,13 @@ var/global/floorIsLava = 0 set desc = "Edit mobs's memory and role" set name = "Show Traitor Panel" - if (!M.mind) - usr << "Sorry, this mob has no mind!" + if(!istype(M)) + usr << "This can only be used on instances of type /mob" return + if(!M.mind) + usr << "This mob has no mind!" + return + M.mind.edit_memory() feedback_add_details("admin_verb","STP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm index 3bdec3b116f..091274814c3 100644 --- a/code/modules/admin/admin_ranks.dm +++ b/code/modules/admin/admin_ranks.dm @@ -135,7 +135,6 @@ var/list/admin_ranks = list() //list of all ranks with associated rights #endif -/* #ifdef TESTING /client/verb/changerank(newrank in admin_ranks) if(holder) @@ -155,4 +154,3 @@ var/list/admin_ranks = list() //list of all ranks with associated rights holder.associate(src) #endif -*/ \ No newline at end of file diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 344bb024075..5fb5d8d861e 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -1,5 +1,7 @@ //admin verb groups - They can overlap if you so wish. Only one of each verb will exist in the verbs list regardless var/list/admin_verbs_default = list( + /datum/admins/proc/show_player_panel, /*shows an interface for individual players, with various links (links require additional flags*/ + /client/proc/game_panel, /*game panel, allows to change game-mode etc*/ /datum/admins/proc/toggleooc, /*toggles ooc on/off for everyone*/ /datum/admins/proc/toggleoocdead, /*toggles ooc on/off for everyone who is dead*/ /client/proc/toggleadminhelpsound, /*toggles whether we hear a sound when adminhelps/PMs are used*/ @@ -20,21 +22,19 @@ var/list/admin_verbs_default = list( /client/proc/secrets ) var/list/admin_verbs_admin = list( - /client/proc/game_panel, /*game panel, allows to change game-mode etc*/ /client/proc/player_panel, /*shows an interface for all players, with links to various panels (old style)*/ /client/proc/player_panel_new, /*shows an interface for all players, with links to various panels*/ /client/proc/invisimin, /*allows our mob to go invisible/visible*/ /datum/admins/proc/show_traitor_panel, /*interface which shows a mob's mind*/ /datum/admins/proc/toggleenter, /*toggles whether people can join the current game*/ /datum/admins/proc/toggleguests, /*toggles whether guests can join the current game*/ - /datum/admins/proc/show_player_panel, /*shows an interface for individual players, with various links (links require additional flags*/ /datum/admins/proc/announce, /*priority announce something to all clients.*/ /client/proc/colorooc, /*allows us to set a custom colour for everythign we say in ooc*/ /client/proc/admin_ghost, /*allows us to ghost/reenter body at will*/ /client/proc/toggle_view_range, /*changes how far we can see*/ /datum/admins/proc/view_txt_log, /*shows the server log (diary) for today*/ // /datum/admins/proc/view_atk_log, /*shows the server combat-log, doesn't do anything presently*/ - /client/proc/cmd_admin_pm_context, /*right-click amdinPM interface*/ + /client/proc/cmd_admin_pm_context, /*right-click adminPM interface*/ /client/proc/cmd_admin_pm_panel, /*admin-pm list*/ /client/proc/cmd_admin_subtle_message, /*send an message to somebody as a 'voice in their head'*/ /client/proc/cmd_admin_delete, /*delete an instance/object/mob/etc*/ diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index f7753a431fa..a55c2d19f8a 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -77,9 +77,9 @@ body += "PP - " body += "N - " body += "VV - " - body += "TP - " + body += "TP - " body += "PM - " - body += "SM - " + body += "SM - " body += "JMP
" if(antagonist > 0) body += "Antagonist"; diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index e68aaf6d6d8..c83130bb899 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1168,10 +1168,6 @@ var/mob/M = locate(href_list["adminplayervars"]) usr.client.debug_variables(M) - else if(href_list["adminplayersubtlemessage"]) - var/mob/M = locate(href_list["adminplayersubtlemessage"]) - usr.client.cmd_admin_subtle_message(M) - else if(href_list["adminplayerobservejump"]) var/mob/M = locate(href_list["adminplayerobservejump"]) @@ -1241,7 +1237,7 @@ src.owner << "Name = [M.name]; Real_name = [M.real_name]; Mind_name = [M.mind?"[M.mind.name]":""]; Key = [M.key];" src.owner << "Location = [location_description];" src.owner << "[special_role_description]" - src.owner << "(PM) (PP) (VV) (SM) (JMP) (CA)" + src.owner << "(PM) (PP) (VV) (SM) (JMP) (CA)" else if(href_list["adminspawncookie"]) var/mob/living/carbon/human/H = locate(href_list["adminspawncookie"]) @@ -1265,13 +1261,6 @@ feedback_inc("admin_cookies_spawned",1) H << "\blue Your prayers have been answered!! You received the best cookie!" - else if(href_list["traitor_panel_pp"]) - var/mob/M = locate(href_list["traitor_panel_pp"]) - if(!ismob(M)) - usr << "This can only be used on instances of type /mob." - return - show_traitor_panel(M) - else if(href_list["BlueSpaceArtillery"]) var/mob/living/M = locate(href_list["BlueSpaceArtillery"]) if(!isliving(M)) @@ -1356,7 +1345,6 @@ if(!check_rights(R_ADMIN)) return if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") return - var/mob/M = locate(href_list["getmob"]) usr.client.Getmob(M) @@ -1367,29 +1355,29 @@ usr.client.sendmob(M) else if(href_list["narrateto"]) + if(!check_rights(R_ADMIN)) return + var/mob/M = locate(href_list["narrateto"]) usr.client.cmd_admin_direct_narrate(M) else if(href_list["subtlemessage"]) + if(!check_rights(R_ADMIN)) return + var/mob/M = locate(href_list["subtlemessage"]) usr.client.cmd_admin_subtle_message(M) else if(href_list["traitor"]) + if(!check_rights(R_ADMIN)) return + if(!ticker || !ticker.mode) alert("The game hasn't started yet!") return var/mob/M = locate(href_list["traitor"]) - if(!istype(M)) - player_panel_new() + if(!ismob(M)) + usr << "This can only be used on instances of type /mob." return - if(isalien(M)) - alert("Is an [M.mind ? M.mind.special_role : "Alien"]!", "[M.key]") - return - if(M.mind) - M.mind.edit_memory() - return - alert("Cannot make this mob a traitor! It has no mind!") + show_traitor_panel(M) else if(href_list["create_object"]) if(!check_rights(R_SPAWN)) return @@ -2065,7 +2053,7 @@ if (ok) world << text("A secret has been activated by []!", usr.key) - if(href_list["secretsadmin"]) + else if(href_list["secretsadmin"]) if(!check_rights(R_ADMIN)) return var/ok = 0 diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 5d6fa6ae2c0..031395eb78b 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -100,7 +100,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an", "monkey", "ali if(ai_found) check_laws_text = (" (CL)") - var/msg_to_send = "\blue HELP: [key_name(src, X)] (?) (PP) (VV) (SM) (JMP) (CA) [check_laws_text]: [msg]" + var/msg_to_send = "\blue HELP: [key_name(src, X)] (?) (PP) (VV) (SM) (JMP) (CA) [check_laws_text]: [msg]" msg_to_send = replacetext(msg_to_send, "HOLDERREF", "\ref[X.holder]") msg_to_send = replacetext(msg_to_send, "ADMINREF", "\ref[X]") X << msg_to_send diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index 3ecc8d3894b..d154f157ed8 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -19,7 +19,7 @@ for(var/client/C in admins) if(C.seeprayers) - C << "\blue \icon[cross] PRAY: [key_name(src, C)] (?) (PP) (VV) (SM) (JMP) (CA) (SC): [msg]" + C << "\blue \icon[cross] PRAY: [key_name(src, C)] (?) (PP) (VV) (SM) (JMP) (CA) (SC): [msg]" usr << "Your prayers have been received by the gods." feedback_add_details("admin_verb","PR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -29,10 +29,10 @@ /proc/Centcomm_announce(var/text , var/mob/Sender) var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN) for(var/client/C in admins) - C << "\blue CENTCOMM:[key_name(Sender, C)] (PP) (VV) (SM) (JMP) (CA) (BSA) (RPLY): [msg]" + C << "\blue CENTCOMM:[key_name(Sender, C)] (PP) (VV) (SM) (JMP) (CA) (BSA) (RPLY): [msg]" /proc/Syndicate_announce(var/text , var/mob/Sender) var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN) for(var/client/C in admins) - C << "\blue SYNDICATE:[key_name(Sender, C)] (PP) (VV) (SM) (JMP) (CA) (BSA) (RPLY): [msg]" + C << "\blue SYNDICATE:[key_name(Sender, C)] (PP) (VV) (SM) (JMP) (CA) (BSA) (RPLY): [msg]"