diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index c7168d93af..76fb1bdd2e 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -234,7 +234,8 @@ var/list/admin_verbs_mod = list(
/datum/admins/proc/show_player_info,
/client/proc/player_panel_new,
/datum/admins/proc/show_skills,
- /client/proc/dsay
+ /client/proc/jobbans,
+ /client/proc/cmd_admin_subtle_message /*send an message to somebody as a 'voice in their head'*/
)
/client/proc/add_admin_verbs()
if(holder)
@@ -581,11 +582,11 @@ var/list/admin_verbs_mod = list(
set category = "Debug"
set name = "Kill Air"
set desc = "Toggle Air Processing"
- if(air_processing_killed)
- air_processing_killed = 0
+ if(kill_air)
+ kill_air = 0
usr << "Enabled air processing."
else
- air_processing_killed = 1
+ kill_air = 1
usr << "Disabled air processing."
feedback_add_details("admin_verb","KA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] used 'kill air'.")
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 21e1eae6c2..e930af3565 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -610,7 +610,7 @@
//JOBBAN'S INNARDS
else if(href_list["jobban3"])
- if(!check_rights(R_BAN)) return
+ if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN)) return
var/mob/M = locate(href_list["jobban4"])
if(!ismob(M))
@@ -715,6 +715,7 @@
href_list["jobban2"] = 1 // lets it fall through and refresh
return 1
if("No")
+ if(!check_rights(R_BAN)) return
var/reason = input(usr,"Reason?","Please State Reason","") as text|null
if(reason)
var/msg
@@ -812,7 +813,7 @@
DB_ban_unban(ckey(key), BANTYPE_JOB_PERMA, job)
else if(href_list["newban"])
- if(!check_rights(R_BAN)) return
+ if(!check_rights(R_MOD,0) && !check_rights(R_BAN)) return
var/mob/M = locate(href_list["newban"])
if(!ismob(M)) return
@@ -845,6 +846,7 @@
del(M.client)
//del(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends.
if("No")
+ if(check_rights(R_BAN)) return
var/reason = input(usr,"Reason?","reason","Griefer") as text|null
if(!reason)
return
@@ -885,7 +887,7 @@
unjobbanpanel()
else if(href_list["mute"])
- if(!check_rights(R_ADMIN)) return
+ if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN)) return
var/mob/M = locate(href_list["mute"])
if(!ismob(M)) return
@@ -1405,7 +1407,7 @@
if(!istype(H))
usr << "This can only be used on instances of type /mob/living/carbon/human"
return
- if(!istype(H.l_ear, /obj/item/device/radio/headset) && !istype(H.r_ear, /obj/item/device/radio/headset))
+ if(!istype(H.ears, /obj/item/device/radio/headset))
usr << "The person you are trying to contact is not wearing a headset"
return
@@ -1415,14 +1417,14 @@
src.owner << "You sent [input] to [H] via a secure channel."
log_admin("[src.owner] replied to [key_name(H)]'s Centcomm message with the message [input].")
message_admins("[src.owner] replied to [key_name(H)]'s Centcom message with: \"[input]\"")
- H << "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from Central Command. Message as follows. \"[input]\" Message ends.\""
+ H << "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from Central Command. Message as follows. [input]. Message ends.\""
else if(href_list["SyndicateReply"])
var/mob/living/carbon/human/H = locate(href_list["SyndicateReply"])
if(!istype(H))
usr << "This can only be used on instances of type /mob/living/carbon/human"
return
- if(!istype(H.l_ear, /obj/item/device/radio/headset) && !istype(H.r_ear, /obj/item/device/radio/headset))
+ if(!istype(H.ears, /obj/item/device/radio/headset))
usr << "The person you are trying to contact is not wearing a headset"
return
@@ -1431,7 +1433,7 @@
src.owner << "You sent [input] to [H] via a secure channel."
log_admin("[src.owner] replied to [key_name(H)]'s Syndicate message with the message [input].")
- H << "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from your benefactor. Message as follows, agent. \"[input]\" Message ends.\""
+ H << "You hear something crackle in your headset for a moment before a voice speaks. \"Please stand by for a message from your benefactor. Message as follows, agent. [input]. Message ends.\""
else if(href_list["CentcommFaxView"])
var/info = locate(href_list["CentcommFaxView"])
@@ -1446,29 +1448,22 @@
var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null
- for(var/obj/machinery/faxmachine/F in machines)
+ for(var/obj/machinery/faxmachine/F in world)
if(! (F.stat & (BROKEN|NOPOWER) ) )
+ var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( F.loc )
+ P.name = "[command_name()]- [customname]"
+ P.info = input
+ P.update_icon()
+ playsound(F.loc, "sound/items/polaroid1.ogg", 50, 1)
- // animate! it's alive!
- flick("faxreceive", F)
-
- // give the sprite some time to flick
- spawn(20)
- var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( F.loc )
- P.name = "[command_name()]- [customname]"
- P.info = input
- P.update_icon()
-
- playsound(F.loc, "sound/items/polaroid1.ogg", 50, 1)
-
- // Stamps
- var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
- stampoverlay.icon_state = "paper_stamp-cent"
- if(!P.stamped)
- P.stamped = new
- P.stamped += /obj/item/weapon/stamp
- P.overlays += stampoverlay
- P.stamps += "
This paper has been stamped by the Central Command Quantum Relay."
+ // Stamps
+ var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
+ stampoverlay.icon_state = "paper_stamp-cent"
+ if(!P.stamped)
+ P.stamped = new
+ P.stamped += /obj/item/weapon/stamp
+ P.overlays += stampoverlay
+ P.stamps += "
This paper has been stamped by the Central Command Quantum Relay."
src.owner << "Message reply to transmitted successfully."
log_admin("[key_name(src.owner)] replied to a fax message from [key_name(H)]: [input]")
@@ -1501,7 +1496,7 @@
usr.client.cmd_admin_direct_narrate(M)
else if(href_list["subtlemessage"])
- if(!check_rights(R_ADMIN)) return
+ if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN)) return
var/mob/M = locate(href_list["subtlemessage"])
usr.client.cmd_admin_subtle_message(M)
@@ -1740,21 +1735,6 @@
log_admin("[key_name(usr)] spawned a meteor wave", 1)
message_admins("\blue [key_name_admin(usr)] spawned a meteor wave.", 1)
new /datum/event/meteor_wave
- if("goblob")
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","Blob")
- log_admin("[key_name(usr)] spawned a blob", 1)
- message_admins("\blue [key_name_admin(usr)] spawned a blob.", 1)
- new /datum/event/blob
-
- if("aliens")
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","Aliens")
- log_admin("[key_name(usr)] spawned an alien infestation", 1)
- message_admins("\blue [key_name_admin(usr)] attempted an alien infestation", 1)
- new /datum/event/alien_infestation
-
-
if("power")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","P")
@@ -1989,76 +1969,6 @@
spawn(0)
sleep(rand(30,400))
Wall.ex_act(rand(2,1)) */
- if("wave")
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","MW")
- new /datum/event/meteor_wave
-
- if("gravanomalies")
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","GA")
- command_alert("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert")
- world << sound('sound/AI/granomalies.ogg')
- var/turf/T = pick(blobstart)
- var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 )
- spawn(rand(100, 600))
- del(bh)
-
- if("timeanomalies") //dear god this code was awful :P Still needs further optimisation
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","STA")
- //moved to its own dm so I could split it up and prevent the spawns copying variables over and over
- //can be found in code\game\game_modes\events\wormholes.dm
- wormhole_event()
-
- if("goblob")
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","BL")
- mini_blob_event()
- message_admins("[key_name_admin(usr)] has spawned blob", 1)
- if("aliens")
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","AL")
- if(aliens_allowed)
- new /datum/event/alien_infestation
- message_admins("[key_name_admin(usr)] has spawned aliens", 1)
- if("alien_silent") //replaces the spawn_xeno verb
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","ALS")
- if(aliens_allowed)
- create_xeno()
- if("spiders")
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","SL")
- new /datum/event/spider_infestation
- message_admins("[key_name_admin(usr)] has spawned spiders", 1)
- if("comms_blackout")
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","CB")
- var/answer = alert(usr, "Would you like to alert the crew?", "Alert", "Yes", "No")
- if(answer == "Yes")
- communications_blackout(0)
- else
- communications_blackout(1)
- message_admins("[key_name_admin(usr)] triggered a communications blackout.", 1)
- if("spaceninja")
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","SN")
- if(toggle_space_ninja)
- if(space_ninja_arrival())//If the ninja is actually spawned. They may not be depending on a few factors.
- message_admins("[key_name_admin(usr)] has sent in a space ninja", 1)
- if("carp")
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","C")
- var/choice = input("You sure you want to spawn carp?") in list("Badmin", "Cancel")
- if(choice == "Badmin")
- message_admins("[key_name_admin(usr)] has spawned carp.", 1)
- new /datum/event/carp_migration
- if("radiation")
- feedback_inc("admin_secrets_fun_used",1)
- feedback_add_details("admin_secrets_fun_used","R")
- message_admins("[key_name_admin(usr)] has has irradiated the station", 1)
- new /datum/event/radiation_storm
if("immovable")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","IR")
@@ -2217,13 +2127,13 @@
if("spacevines")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","K")
- new /datum/event/spacevine
+ //new /datum/event/spacevine
message_admins("[key_name_admin(usr)] has spawned spacevines", 1)
if("onlyone")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","OO")
usr.client.only_one()
- message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)")
+// message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)")
if(usr)
log_admin("[key_name(usr)] used secret [href_list["secretsfun"]]")
if (ok)
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 65a0e0aa8c..2f1178dfba 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -132,7 +132,7 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
if(!M.client)
usr << "Error: cmd_admin_mute: This mob doesn't have a client tied to it."
if(M.client.holder)
- usr << "Error: cmd_admin_mute: You cannot mute an admin."
+ usr << "Error: cmd_admin_mute: You cannot mute an admin/mod."
if(!M.client) return
if(M.client.holder) return