mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 21:48:39 +01:00
Cleans up admin module (#9712)
* Cleans up admin module * various null checks
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
if(!response || response == "No")
|
||||
return
|
||||
|
||||
var/msg = span_adminhelp("Your ticket is now being handled by [usr?.client?.holder?.fakekey? usr.client.holder.fakekey : "an administrator"]! Please wait while they type their response and/or gather relevant information.")
|
||||
var/msg = span_adminhelp("Your ticket is now being handled by [usr?.client?.holder?.fakekey ? usr?.client?.holder?.fakekey : "an administrator"]! Please wait while they type their response and/or gather relevant information.")
|
||||
|
||||
if(initiator)
|
||||
to_chat(initiator, msg)
|
||||
|
||||
@@ -6,19 +6,19 @@
|
||||
if(!current_ticket)
|
||||
// Check if the client had previous tickets, and show the latest one
|
||||
var/list/prev_tickets = list()
|
||||
var/datum/admin_help/last_AH
|
||||
// Check all resolved tickets for this player
|
||||
for(var/datum/admin_help/AH in GLOB.ahelp_tickets.resolved_tickets)
|
||||
if(AH.initiator_ckey == ckey) // Initiator is a misnomer, it's always the non-admin player even if an admin bwoinks first
|
||||
prev_tickets += AH
|
||||
var/datum/admin_help/last_ticket
|
||||
// Check all resolved tickets for this player
|
||||
for(var/datum/admin_help/resolved_ticket in GLOB.ahelp_tickets.resolved_tickets)
|
||||
if(resolved_ticket.initiator_ckey == ckey) // Initiator is a misnomer, it's always the non-admin player even if an admin bwoinks first
|
||||
prev_tickets += resolved_ticket
|
||||
// Check all closed tickets for this player
|
||||
for(var/datum/admin_help/AH in GLOB.ahelp_tickets.closed_tickets)
|
||||
if(AH.initiator_ckey == ckey)
|
||||
prev_tickets += AH
|
||||
// Take the most recent entry of prev_tickets and open the panel on it
|
||||
for(var/datum/admin_help/closed_ticket in GLOB.ahelp_tickets.closed_tickets)
|
||||
if(closed_ticket.initiator_ckey == ckey)
|
||||
prev_tickets += closed_ticket
|
||||
// Take the most recent entry of prev_tickets and open the panel on it
|
||||
if(LAZYLEN(prev_tickets))
|
||||
last_AH = pop(prev_tickets)
|
||||
last_AH.PlayerTicketPanel()
|
||||
last_ticket = pop(prev_tickets)
|
||||
last_ticket.PlayerTicketPanel()
|
||||
return
|
||||
|
||||
// client had no tickets this round
|
||||
|
||||
@@ -44,7 +44,7 @@ GLOBAL_LIST_EMPTY(ckey_to_aooc_name)
|
||||
to_chat(src, span_danger("You have OOC muted."))
|
||||
return
|
||||
|
||||
mob.log_talk(raw_msg, LOG_OOC, tag="AOOC")
|
||||
mob.log_talk(raw_msg, LOG_OOC, tag = "AOOC")
|
||||
|
||||
var/keyname = key
|
||||
var/anon = FALSE
|
||||
@@ -58,54 +58,53 @@ GLOBAL_LIST_EMPTY(ckey_to_aooc_name)
|
||||
|
||||
var/list/listeners = list()
|
||||
|
||||
for(var/mind in get_antag_minds(/datum/antagonist))
|
||||
var/datum/mind/M = mind
|
||||
if(!M.current || !M.current.client || isnewplayer(M.current))
|
||||
for(var/mind as anything in get_antag_minds(/datum/antagonist))
|
||||
var/datum/mind/antag_mind = mind
|
||||
if(!antag_mind.current || !antag_mind.current.client || isnewplayer(antag_mind.current))
|
||||
continue
|
||||
listeners[M.current.client] = AOOC_LISTEN_PLAYER
|
||||
listeners[antag_mind.current.client] = AOOC_LISTEN_PLAYER
|
||||
|
||||
for(var/m in GLOB.player_list)
|
||||
var/mob/M = m
|
||||
for(var/iterated_player as anything in GLOB.player_list)
|
||||
var/mob/iterated_mob = iterated_player
|
||||
//Admins with muted OOC do not get to listen to AOOC, but normal players do, as it could be admins talking important stuff to them
|
||||
if(M.client && M.client.holder && !M.client.holder.deadmined && M.client.prefs.chat_toggles & CHAT_OOC)
|
||||
listeners[M.client] = AOOC_LISTEN_ADMIN
|
||||
if(!iterated_mob.client?.holder?.deadmined && iterated_mob.client?.prefs?.chat_toggles & CHAT_OOC)
|
||||
listeners[iterated_mob.client] = AOOC_LISTEN_ADMIN
|
||||
|
||||
for(var/c in listeners)
|
||||
var/client/C = c
|
||||
var/mode = listeners[c]
|
||||
var/color = (!anon && CONFIG_GET(flag/allow_admin_ooccolor) && C.prefs?.read_preference(/datum/preference/color/ooc_color)) ? C.prefs?.read_preference(/datum/preference/color/ooc_color) : GLOB.AOOC_COLOR
|
||||
for(var/iterated_listener as anything in listeners)
|
||||
var/client/iterated_client = iterated_listener
|
||||
var/mode = listeners[iterated_listener]
|
||||
var/color = (!anon && CONFIG_GET(flag/allow_admin_ooccolor) && iterated_client?.prefs?.read_preference(/datum/preference/color/ooc_color)) ? iterated_client?.prefs?.read_preference(/datum/preference/color/ooc_color) : GLOB.AOOC_COLOR
|
||||
var/name = (mode == AOOC_LISTEN_ADMIN && anon) ? "([key])[keyname]" : keyname
|
||||
to_chat(C, span_oocplain("<font color='[color]'><b><span class='prefix'>AOOC:</span> <EM>[name]:</EM> <span class='message linkify'>[msg]</span></b></font>"))
|
||||
to_chat(iterated_client, span_oocplain("<font color='[color]'><b><span class='prefix'>AOOC:</span> <EM>[name]:</EM> <span class='message linkify'>[msg]</span></b></font>"))
|
||||
|
||||
#undef AOOC_LISTEN_PLAYER
|
||||
#undef AOOC_LISTEN_ADMIN
|
||||
|
||||
/proc/toggle_aooc(toggle = null)
|
||||
if(toggle != null) //if we're specifically en/disabling aooc
|
||||
if(toggle != GLOB.aooc_allowed)
|
||||
GLOB.aooc_allowed = toggle
|
||||
else
|
||||
if(toggle == GLOB.aooc_allowed)
|
||||
return
|
||||
GLOB.aooc_allowed = toggle
|
||||
else //otherwise just toggle it
|
||||
GLOB.aooc_allowed = !GLOB.aooc_allowed
|
||||
var/list/listeners = list()
|
||||
for(var/mind in get_antag_minds(/datum/antagonist))
|
||||
var/datum/mind/M = mind
|
||||
if(!M.current || !M.current.client || isnewplayer(M.current))
|
||||
for(var/mind as anything in get_antag_minds(/datum/antagonist))
|
||||
var/datum/mind/antag_mind = mind
|
||||
if(!antag_mind.current || !antag_mind.current.client || isnewplayer(antag_mind.current))
|
||||
continue
|
||||
listeners[M.current.client] = TRUE
|
||||
listeners[antag_mind.current.client] = TRUE
|
||||
|
||||
for(var/m in GLOB.player_list)
|
||||
var/mob/M = m
|
||||
if(M.client && M.client.holder && !M.client.holder.deadmined)
|
||||
listeners[M.client] = TRUE
|
||||
for(var/c in listeners)
|
||||
var/client/C = c
|
||||
to_chat(C, span_oocplain("<B>The AOOC channel has been globally [GLOB.aooc_allowed ? "enabled" : "disabled"].</B>"))
|
||||
for(var/iterated_player in GLOB.player_list)
|
||||
var/mob/iterated_mob = iterated_player
|
||||
if(!iterated_mob.client?.holder?.deadmined)
|
||||
listeners[iterated_mob.client] = TRUE
|
||||
for(var/iterated_listener in listeners)
|
||||
var/client/iterated_client = iterated_listener
|
||||
to_chat(iterated_client, span_oocplain("<B>The AOOC channel has been globally [GLOB.aooc_allowed ? "enabled" : "disabled"].</B>"))
|
||||
|
||||
/datum/admins/proc/toggleaooc()
|
||||
set category = "Server"
|
||||
set name="Toggle Antag OOC"
|
||||
set name = "Toggle Antag OOC"
|
||||
toggle_aooc()
|
||||
log_admin("[key_name(usr)] toggled Antagonist OOC.")
|
||||
message_admins("[key_name_admin(usr)] toggled Antagonist OOC.")
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
html = msg,
|
||||
confidential = TRUE)
|
||||
|
||||
for(var/client/I in GLOB.admins)
|
||||
if(I.prefs.toggles & SOUND_ADMINHELP)
|
||||
SEND_SOUND(I, sound('modular_skyrat/modules/admin/sound/duckhonk.ogg')) //Stop using loud mode if you don't need to.
|
||||
window_flash(I, ignorepref = TRUE)
|
||||
for(var/client/admin_client in GLOB.admins)
|
||||
if(admin_client?.prefs?.toggles & SOUND_ADMINHELP)
|
||||
SEND_SOUND(admin_client, sound('modular_skyrat/modules/admin/sound/duckhonk.ogg')) //Stop using loud mode if you don't need to.
|
||||
window_flash(admin_client, ignorepref = TRUE)
|
||||
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "loudAsay") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -10,16 +10,17 @@
|
||||
set category = "Admin"
|
||||
set name = "Manage Player Ranks"
|
||||
set desc = "Manage who has the special player ranks while the server is running."
|
||||
|
||||
if(!check_rights(R_PERMISSIONS))
|
||||
return
|
||||
usr.client.holder.manage_player_ranks()
|
||||
usr.client?.holder.manage_player_ranks()
|
||||
|
||||
/// Proc for admins to change people's "player" ranks (donator, mentor, veteran, etc.)
|
||||
/datum/admins/proc/manage_player_ranks()
|
||||
if(!check_rights(R_PERMISSIONS))
|
||||
return
|
||||
|
||||
var/choice = tgui_alert(usr, "Which rank would you like to manage?", "Manage Player Ranks", SKYRAT_PLAYER_RANKS+"Cancel")
|
||||
var/choice = tgui_alert(usr, "Which rank would you like to manage?", "Manage Player Ranks", SKYRAT_PLAYER_RANKS)
|
||||
if(!choice || !(choice in SKYRAT_PLAYER_RANKS))
|
||||
return
|
||||
|
||||
|
||||
@@ -60,23 +60,23 @@ GLOBAL_LIST_EMPTY(ckey_to_sooc_name)
|
||||
|
||||
var/list/listeners = list()
|
||||
|
||||
for(var/m in GLOB.player_list)
|
||||
var/mob/M = m
|
||||
for(var/iterated_player as anything in GLOB.player_list)
|
||||
var/mob/iterated_mob = iterated_player
|
||||
//Admins with muted OOC do not get to listen to SOOC, but normal players do, as it could be admins talking important stuff to them
|
||||
if(M.client && M.client.holder && !M.client.holder.deadmined && M.client.prefs.chat_toggles & CHAT_OOC)
|
||||
listeners[M.client] = SOOC_LISTEN_ADMIN
|
||||
if(!iterated_mob.client?.holder?.deadmined && iterated_mob.client?.prefs?.chat_toggles & CHAT_OOC)
|
||||
listeners[iterated_mob.client] = SOOC_LISTEN_ADMIN
|
||||
else
|
||||
if(M.mind)
|
||||
var/datum/mind/MIND = M.mind
|
||||
if(job_lookup[MIND.assigned_role.title])
|
||||
listeners[M.client] = SOOC_LISTEN_PLAYER
|
||||
if(iterated_mob.mind)
|
||||
var/datum/mind/mob_mind = iterated_mob.mind
|
||||
if(job_lookup[mob_mind.assigned_role?.title])
|
||||
listeners[iterated_mob.client] = SOOC_LISTEN_PLAYER
|
||||
|
||||
for(var/c in listeners)
|
||||
var/client/C = c
|
||||
var/mode = listeners[c]
|
||||
var/color = (!anon && CONFIG_GET(flag/allow_admin_ooccolor) && C.prefs?.read_preference(/datum/preference/color/ooc_color)) ? C.prefs?.read_preference(/datum/preference/color/ooc_color) : GLOB.SOOC_COLOR
|
||||
for(var/iterated_listener as anything in listeners)
|
||||
var/client/iterated_client = iterated_listener
|
||||
var/mode = listeners[iterated_listener]
|
||||
var/color = (!anon && CONFIG_GET(flag/allow_admin_ooccolor) && iterated_client?.prefs?.read_preference(/datum/preference/color/ooc_color)) ? iterated_client?.prefs?.read_preference(/datum/preference/color/ooc_color) : GLOB.SOOC_COLOR
|
||||
var/name = (mode == SOOC_LISTEN_ADMIN && anon) ? "([key])[keyname]" : keyname
|
||||
to_chat(C, span_oocplain("<font color='[color]'><b><span class='prefix'>SOOC:</span> <EM>[name]:</EM> <span class='message linkify'>[msg]</span></b></font>"))
|
||||
to_chat(iterated_client, span_oocplain("<font color='[color]'><b><span class='prefix'>SOOC:</span> <EM>[name]:</EM> <span class='message linkify'>[msg]</span></b></font>"))
|
||||
|
||||
#undef SOOC_LISTEN_PLAYER
|
||||
#undef SOOC_LISTEN_ADMIN
|
||||
@@ -90,23 +90,23 @@ GLOBAL_LIST_EMPTY(ckey_to_sooc_name)
|
||||
else //otherwise just toggle it
|
||||
GLOB.sooc_allowed = !GLOB.sooc_allowed
|
||||
var/list/listeners = list()
|
||||
var/static/list/job_lookup = list("Security Officer"=TRUE, "Warden"=TRUE, "Detective"=TRUE, "Head of Security"=TRUE, "Captain"=TRUE, "Blueshield"=TRUE)
|
||||
for(var/m in GLOB.player_list)
|
||||
var/mob/M = m
|
||||
if(M.client && M.client.holder && !M.client.holder.deadmined)
|
||||
listeners[M.client] = TRUE
|
||||
var/static/list/job_lookup = list("Security Officer" = TRUE, "Warden" = TRUE, "Detective" = TRUE, "Head of Security" = TRUE, "Captain" = TRUE, "Blueshield" = TRUE)
|
||||
for(var/iterated_player as anything in GLOB.player_list)
|
||||
var/mob/iterated_mob = iterated_player
|
||||
if(!iterated_mob.client?.holder?.deadmined)
|
||||
listeners[iterated_mob.client] = TRUE
|
||||
else
|
||||
if(M.mind)
|
||||
var/datum/mind/MIND = M.mind
|
||||
if(job_lookup[MIND.assigned_role])
|
||||
listeners[M.client] = TRUE
|
||||
for(var/c in listeners)
|
||||
var/client/C = c
|
||||
to_chat(C, span_oocplain("<B>The SOOC channel has been globally [GLOB.sooc_allowed ? "enabled" : "disabled"].</B>"))
|
||||
if(iterated_mob.mind)
|
||||
var/datum/mind/mob_mind = iterated_mob.mind
|
||||
if(job_lookup[mob_mind.assigned_role])
|
||||
listeners[iterated_mob.client] = TRUE
|
||||
for(var/iterated_listener as anything in listeners)
|
||||
var/client/iterated_client = iterated_listener
|
||||
to_chat(iterated_client, span_oocplain("<b>The SOOC channel has been globally [GLOB.sooc_allowed ? "enabled" : "disabled"].</b>"))
|
||||
|
||||
/datum/admins/proc/togglesooc()
|
||||
set category = "Server"
|
||||
set name="Toggle Security OOC"
|
||||
set name = "Toggle Security OOC"
|
||||
toggle_sooc()
|
||||
log_admin("[key_name(usr)] toggled Security OOC.")
|
||||
message_admins("[key_name_admin(usr)] toggled Security OOC.")
|
||||
|
||||
Reference in New Issue
Block a user