diff --git a/code/defines/procs/helpers.dm b/code/defines/procs/helpers.dm
index 3a0a691951b..89d1821ba05 100644
--- a/code/defines/procs/helpers.dm
+++ b/code/defines/procs/helpers.dm
@@ -516,7 +516,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
else
linked = 0
- if (the_client && the_client.holder && the_client.stealth && !include_name)
+ if (the_client && the_client.holder && the_client.holder.fakekey && !include_name)
text += "Administrator"
else
text += "[the_key]"
diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm
index 984e8418a60..d3854905e11 100644
--- a/code/game/verbs/ooc.dm
+++ b/code/game/verbs/ooc.dm
@@ -44,12 +44,15 @@
for (var/client/C)
if(C.listen_ooc)
- if (src.client.holder && (!src.client.stealth || C.holder))
- if (src.client.holder.rank == "Admin Observer")
- C << "OOC: [src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]: [msg]"
- else if (src.client.holder.level >= 5)
- C << "OOC: [src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]: [msg]"
+ if (src.client.holder)
+ if(!src.client.holder.fakekey || C.holder)
+ if (src.client.holder.rank == "Admin Observer")
+ C << "OOC: [src.key][src.client.holder.fakekey ? "/([src.client.holder.fakekey])" : ""]: [msg]"
+ else if (src.client.holder.level >= 5)
+ C << "OOC: [src.key][src.client.holder.fakekey ? "/([src.client.holder.fakekey])" : ""]: [msg]"
+ else
+ C << "OOC: [src.key][src.client.holder.fakekey ? "/([src.client.holder.fakekey])" : ""]: [msg]"
else
- C << "OOC: [src.key][src.client.stealth ? "/([src.client.fakekey])" : ""]: [msg]"
+ C << "OOC: [src.client.holder.fakekey ? src.client.holder.fakekey : src.key]: [msg]"
else
- C << "OOC: [src.client.stealth ? src.client.fakekey : src.key]: [msg]"
+ C << "OOC: [src.key]: [msg]"
diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm
index 15fe7d38cfc..c3b9e40c66d 100644
--- a/code/game/verbs/who.dm
+++ b/code/game/verbs/who.dm
@@ -26,13 +26,11 @@ proc/get_all_admin_clients()
var/list/peeps = list()
for (var/client/C in client_list)
- var/entry = ""
- if (C.stealth && !usr.client.holder)
- entry += "\t[C.fakekey]"
- else
- entry += "\t[C.key][C.stealth ? " (as [C.fakekey])" : ""]"
-
+ var/entry = "\t"
if(usr.client.holder)
+ entry += "[C.key]"
+ if(C.holder && C.holder.fakekey)
+ entry += " (as [C.holder.fakekey])"
var/mob/M = C.mob
entry += " - Playing as [M.real_name]"
switch(M.stat)
@@ -50,6 +48,11 @@ proc/get_all_admin_clients()
if(is_special_character(C.mob))
entry += " - Antagonist"
entry += " (?)"
+ else
+ if(C.holder && C.holder.fakekey)
+ entry += "[C.holder.fakekey]"
+ else
+ entry += "[C.key]"
peeps += entry
@@ -73,10 +76,10 @@ proc/get_all_admin_clients()
if(C.inactivity > AFK_THRESHOLD ) //When I made this, the AFK_THRESHOLD was 3000ds = 300s = 5m, see setup.dm for the new one.
afk = 1
if(isobserver(C.mob))
- usr << "[C] is a [C.holder.rank][C.stealth ? " (as [C.fakekey])" : ""] - Observing [afk ? "(AFK)" : ""]"
+ usr << "\t[C] is a [C.holder.rank][C.holder.fakekey ? " (as [C.holder.fakekey])" : ""] - Observing [afk ? "(AFK)" : ""]"
else if(istype(C.mob,/mob/new_player))
- usr << "[C] is a [C.holder.rank][C.stealth ? " (as [C.fakekey])" : ""] - Has not entered [afk ? "(AFK)" : ""]"
+ usr << "\t[C] is a [C.holder.rank][C.holder.fakekey ? " (as [C.holder.fakekey])" : ""] - Has not entered [afk ? "(AFK)" : ""]"
else if(istype(C.mob,/mob/living))
- usr << "[C] is a [C.holder.rank][C.stealth ? " (as [C.fakekey])" : ""] - Playing [afk ? "(AFK)" : ""]"
- else if(!C.stealth)
- usr << "\t[C] is a [C.holder.rank]"
+ usr << "\t[C] is a [C.holder.rank][C.holder.fakekey ? " (as [C.holder.fakekey])" : ""] - Playing [afk ? "(AFK)" : ""]"
+ else if(!C.holder.fakekey)
+ usr << "\t[C] is a [C.holder.rank]"
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index c19b2e8dc6e..e5e13809597 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -543,10 +543,10 @@ var/global/floorIsLava = 0
if(confirm == "Cancel")
return
if(confirm == "Yes")
- world << "\red Restarting world! \blue Initiated by [usr.client.stealth ? "Admin" : usr.key]!"
+ world << "\red Restarting world! \blue Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!"
log_admin("[key_name(usr)] initiated a reboot.")
- feedback_set_details("end_error","admin reboot - by [usr.key] [usr.client.stealth ? "(stealth)" : ""]")
+ feedback_set_details("end_error","admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]")
feedback_add_details("admin_verb","R") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
if(blackbox)
@@ -560,11 +560,12 @@ var/global/floorIsLava = 0
set category = "Special Verbs"
set name = "Announce"
set desc="Announce your desires to the world"
+ if(!usr.client.holder) return
var/message = input("Global message to send:", "Admin Announce", null, null) as message
if (message)
if(usr.client.holder.rank != "Game Admin" && usr.client.holder.rank != "Game Master")
message = adminscrub(message,500)
- world << "\blue [usr.client.stealth ? "Administrator" : usr.key] Announces:\n \t [message]"
+ world << "\blue [usr.client.holder.fakekey ? "Administrator" : usr.key] Announces:\n \t [message]"
log_admin("Announce: [key_name(usr)] : [message]")
feedback_add_details("admin_verb","A") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -719,12 +720,13 @@ var/global/floorIsLava = 0
set category = "Server"
set desc="Reboots the server post haste"
set name="Immediate Reboot"
+ if(!usr.client.holder) return
if( alert("Reboot server?",,"Yes","No") == "No")
return
- world << "\red Rebooting world! \blue Initiated by [usr.client.stealth ? "Admin" : usr.key]!"
+ world << "\red Rebooting world! \blue Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!"
log_admin("[key_name(usr)] initiated an immediate reboot.")
- feedback_set_details("end_error","immediate admin reboot - by [usr.key] [usr.client.stealth ? "(stealth)" : ""]")
+ feedback_set_details("end_error","immediate admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]")
feedback_add_details("admin_verb","IR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
if(blackbox)
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 68ac53ac527..46e803b2d98 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -542,30 +542,26 @@
/client/proc/colorooc()
set category = "Fun"
set name = "OOC Text Color"
- ooccolor = input(src, "Please select your OOC colour.", "OOC colour") as color
+ if(holder)
+ var/new_ooccolor = input(src, "Please select your OOC colour.", "OOC colour") as color|null
+ if(new_ooccolor) holder.ooccolor = new_ooccolor
feedback_add_details("admin_verb","OC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
return
/client/proc/stealth()
set category = "Admin"
set name = "Stealth Mode"
- if(!holder)
- src << "Only administrators may use this command."
- return
- stealth = !stealth
- if(stealth)
- var/new_key = trim(input("Enter your desired display name.", "Fake Key", key))
- if(!new_key)
- stealth = 0
- return
- new_key = strip_html(new_key)
- if(length(new_key) >= 26)
- new_key = copytext(new_key, 1, 26)
- fakekey = new_key
- else
- fakekey = null
- log_admin("[key_name(usr)] has turned stealth mode [stealth ? "ON" : "OFF"]")
- message_admins("[key_name_admin(usr)] has turned stealth mode [stealth ? "ON" : "OFF"]", 1)
+ if(holder)
+ if(holder.fakekey)
+ holder.fakekey = null
+ else
+ var/new_key = ckeyEx(input("Enter your desired display name.", "Fake Key", key) as text|null)
+ if(!new_key) return
+ if(length(new_key) >= 26)
+ new_key = copytext(new_key, 1, 26)
+ holder.fakekey = new_key
+ log_admin("[key_name(usr)] has turned stealth mode [holder.fakekey ? "ON" : "OFF"]")
+ message_admins("[key_name_admin(usr)] has turned stealth mode [holder.fakekey ? "ON" : "OFF"]", 1)
feedback_add_details("admin_verb","SM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
#define AUTOBATIME 10
@@ -659,8 +655,9 @@
/client/proc/toggleadminhelpsound()
set name = "Toggle Adminhelp Sound"
set category = "Admin"
- sound_adminhelp = !sound_adminhelp
- if(sound_adminhelp)
+ if(!holder) return
+ holder.sound_adminhelp = !holder.sound_adminhelp
+ if(holder.sound_adminhelp)
usr << "You will now hear a sound when adminhelps arrive"
else
usr << "You will no longer hear a sound when adminhelps arrive"
diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm
index 85c250a29a4..b9f71c6dbb0 100644
--- a/code/modules/admin/holder2.dm
+++ b/code/modules/admin/holder2.dm
@@ -8,13 +8,18 @@
var/list/admin_datums = list()
/datum/admins
- var/rank = null
- var/client/owner = null
- var/state = null //state = 1 for playing //state = 2 for observing
- var/level = null
+ var/rank = null
+ var/client/owner = null
+ var/state = null //state = 1 for playing //state = 2 for observing
+ var/level = null
// var/permissions = 0
+// var/stealth = 0
+ var/fakekey = null
+ var/ooccolor = "#b82e00"
+ var/sound_adminhelp = 0 //If set to 1 this will play a sound when adminhelps are received.
+
var/datum/marked_datum
var/admincaster_screen = 0 //See newscaster.dm under machinery for a full description
@@ -23,14 +28,8 @@ var/list/admin_datums = list()
var/admincaster_signature //What you'll sign the newsfeeds as
/datum/admins/New(initial_rank)
-// if(!istype(C))
-// world.log << "## WARNING: [type] created with no client/C argument"
-// del(src)
-// return
-// C.holder = src
admincaster_signature = "Nanotrasen Officer #[rand(0,9)][rand(0,9)][rand(0,9)]"
rank = initial_rank
-// admin_list |= C
..()
/datum/admins/Del()
diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index 8d73bec3436..6c61175a582 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -97,7 +97,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an", "monkey", "ali
admin_number++
if( X.inactivity > AFK_THRESHOLD ) //When I made this, the AFK_THRESHOLD was 3000ds = 300s = 5m, see setup.dm for the new one.
admin_number_afk++
- if(X.sound_adminhelp)
+ if(X.holder.sound_adminhelp)
X << 'sound/effects/adminhelp.ogg'
var/check_laws_text = ""
if(ai_found)
@@ -114,7 +114,7 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an", "monkey", "ali
admin_number++
if( X.inactivity > AFK_THRESHOLD ) //When I made this, the AFK_THRESHOLD was 3000ds = 300s = 5m, see setup.dm for the new one.
admin_number_afk++
- if(X.sound_adminhelp)
+ if(X.holder.sound_adminhelp)
X << 'sound/effects/adminhelp.ogg'
var/msg_to_send = "\blue HELP: [key_name(src, X)] (VV) (CA): [msg]"
msg_to_send = dd_replacetext(msg_to_send, "HOLDERREF", "\ref[X.holder]")
diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm
index ba677c91b72..9c65027d5ca 100644
--- a/code/modules/admin/verbs/adminpm.dm
+++ b/code/modules/admin/verbs/adminpm.dm
@@ -73,7 +73,7 @@
src << "PM to-Admins: [msg]"
//play the recieving admin the adminhelp sound (if they have them enabled)
- if(C.sound_adminhelp)
+ if(C.holder.sound_adminhelp)
C << 'sound/effects/adminhelp.ogg'
else
diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm
index 4d2c707c025..13995610d02 100644
--- a/code/modules/admin/verbs/deadsay.dm
+++ b/code/modules/admin/verbs/deadsay.dm
@@ -20,7 +20,7 @@
if (!msg)
return
- var/rendered = "DEAD: ADMIN([src.stealth ? pick("BADMIN", "hornigranny", "TLF", "scaredforshadows", "KSI", "Silnazi", "HerpEs", "BJ69", "SpoofedEdd", "Uhangay", "Wario90900", "Regarity", "MissPhareon", "LastFish", "unMportant", "Deurpyn", "Fatbeaver") : src.key]) says, \"[msg]\""
+ var/rendered = "DEAD: ADMIN([src.holder.fakekey ? pick("BADMIN", "hornigranny", "TLF", "scaredforshadows", "KSI", "Silnazi", "HerpEs", "BJ69", "SpoofedEdd", "Uhangay", "Wario90900", "Regarity", "MissPhareon", "LastFish", "unMportant", "Deurpyn", "Fatbeaver") : src.key]) says, \"[msg]\""
for (var/mob/M in player_list)
if (istype(M, /mob/new_player))
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 9831190812a..2dfd8b54ef5 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -182,7 +182,7 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
log_admin("[key_name(usr)] has [(muteunmute ? "muted" : "voiced")] [key_name(M)] from [mute_string]")
message_admins("[key_name_admin(usr)] has [(muteunmute ? "muted" : "voiced")] [key_name_admin(M)] from [mute_string].", 1)
- M << "You have been [(muteunmute ? "muted" : "voiced")] from [mute_string] by [(usr.client.stealth)?"an admin":"[usr.client]"]."
+ M << "You have been [(muteunmute ? "muted" : "voiced")] from [mute_string]."
feedback_add_details("admin_verb","MUTE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
else
log_admin("SPAM AUTOMUTE: [(muteunmute ? "muted" : "voiced")] [key_name(M)] from [mute_string]")
diff --git a/code/modules/client/client defines.dm b/code/modules/client/client defines.dm
index 2d5b71b678c..73a44be1f7b 100644
--- a/code/modules/client/client defines.dm
+++ b/code/modules/client/client defines.dm
@@ -5,10 +5,7 @@
////////////////
var/datum/admins/holder = null
var/buildmode = 0
- var/stealth = 0
- var/fakekey = null
var/seeprayers = 0
- var/ooccolor = "#b82e00"
var/muted_ic //can't use 'say' while alive or emotes.
var/muted_ooc //can't speak in ooc
@@ -20,7 +17,6 @@
var/last_message_count = 0 //contins a number of how many times a message identical to last_message was sent.
var/warned = 0
- var/sound_adminhelp = 0 //If set to 1 this will play a sound when adminhelps are received.
/////////
//OTHER//
diff --git a/code/modules/mob/new_player/preferences.dm b/code/modules/mob/new_player/preferences.dm
index 4a9874aefe9..fd3f05f7e22 100644
--- a/code/modules/mob/new_player/preferences.dm
+++ b/code/modules/mob/new_player/preferences.dm
@@ -742,9 +742,10 @@ datum/preferences
proc/setup_client(var/client/C)
if(C)
- C.sound_adminhelp = src.sound_adminhelp
+ if(C.holder)
+ C.holder.sound_adminhelp = src.sound_adminhelp
+ C.holder.ooccolor = src.ooccolor
C.midis = src.midis
- C.ooccolor = src.ooccolor
C.be_alien = be_special & BE_ALIEN
C.be_pai = be_special & BE_PAI
if(isnull(src.ghost_ears)) src.ghost_ears = 1 //There were problems where the default was null before someone saved their profile.
diff --git a/code/world.dm b/code/world.dm
index a9d96e2957e..481d4bfd967 100644
--- a/code/world.dm
+++ b/code/world.dm
@@ -134,7 +134,7 @@ Starting up. [time2text(world.timeofday, "hh:mm.ss")]
for(var/client/C in client_list)
if(C.holder)
- if(C.stealth)
+ if(C.holder.fakekey)
continue //so stealthmins aren't revealed by the hub
admins++
s["player[n]"] = C.key