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