[MIRROR] fix admin and mentor PMs (#9161)

Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com>
Co-authored-by: Kashargul <KashL@t-online.de>
This commit is contained in:
CHOMPStation2
2024-10-04 15:57:43 -07:00
committed by GitHub
parent 48414295f0
commit f610c06e62
19 changed files with 98 additions and 79 deletions

View File

@@ -61,6 +61,7 @@
#define span_bolddanger(str) ("<span class='bolddanger'>" + str + "</span>") #define span_bolddanger(str) ("<span class='bolddanger'>" + str + "</span>")
#define span_userdanger(str) ("<span class='userdanger'>" + str + "</span>") #define span_userdanger(str) ("<span class='userdanger'>" + str + "</span>")
#define span_warning(str) ("<span class='warning'>" + str + "</span>") #define span_warning(str) ("<span class='warning'>" + str + "</span>")
#define span_warningplain(str) ("<span class='warningplain'>" + str + "</span>")
#define span_boldwarning(str) ("<span class='boldwarning'>" + str + "</span>") #define span_boldwarning(str) ("<span class='boldwarning'>" + str + "</span>")
#define span_filter_warning(str) ("<span class='filter_warning'>" + str + "</span>") #define span_filter_warning(str) ("<span class='filter_warning'>" + str + "</span>")
#define span_filter_combat(str) ("<span class='filter_combat'>" + str + "</span>") #define span_filter_combat(str) ("<span class='filter_combat'>" + str + "</span>")
@@ -167,6 +168,14 @@
#define span_mentor(str) ("<span class='mentor'>" + str + "</span>") #define span_mentor(str) ("<span class='mentor'>" + str + "</span>")
#define span_filter_pray(str) ("<span class='filter_pray'>" + str + "</span>") #define span_filter_pray(str) ("<span class='filter_pray'>" + str + "</span>")
/* Admin only usage */
#define span_admin_pm_notice(str) ("<span class='pm notice'>" + str + "</span>")
#define span_admin_pm_warning(str) ("<span class='pm warning'>" + str + "</span>")
#define span_mentor_pm_notice(str) ("<span class='mentor notice'>" + str + "</span>")
#define span_mentor_pm_warning(str) ("<span class='mentor warning'>" + str + "</span>")
/* Adminchat */ /* Adminchat */
#define span_admin_channel(str) ("<span class='admin_channel'>" + str + "</span>") #define span_admin_channel(str) ("<span class='admin_channel'>" + str + "</span>")

View File

@@ -18,7 +18,7 @@
if(istype(M.wear_suit, armor_type) || istype(M.head, helmet_type) || istype(M.shoes, boot_type)) if(istype(M.wear_suit, armor_type) || istype(M.head, helmet_type) || istype(M.shoes, boot_type))
M.visible_message(span_warning("[M] casts off their [M.wear_suit.name]!"), M.visible_message(span_warning("[M] casts off their [M.wear_suit.name]!"),
span_warning("We cast off our [M.wear_suit.name]"), span_warning("We cast off our [M.wear_suit.name]"),
span_italics("You hear the organic matter ripping and tearing!")) span_warningplain("You hear the organic matter ripping and tearing!"))
if(istype(M.wear_suit, armor_type)) if(istype(M.wear_suit, armor_type))
qdel(M.wear_suit) qdel(M.wear_suit)
if(istype(M.head, helmet_type)) if(istype(M.head, helmet_type))

View File

@@ -71,13 +71,13 @@
if(ismob(loc)) if(ismob(loc))
visible_message(span_warning("A grotesque weapon forms around [loc.name]\'s arm!"), visible_message(span_warning("A grotesque weapon forms around [loc.name]\'s arm!"),
span_warning("Our arm twists and mutates, transforming it into a deadly weapon."), span_warning("Our arm twists and mutates, transforming it into a deadly weapon."),
span_italics("You hear organic matter ripping and tearing!")) span_warningplain("You hear organic matter ripping and tearing!"))
src.creator = loc src.creator = loc
/obj/item/melee/changeling/dropped(mob/user) /obj/item/melee/changeling/dropped(mob/user)
visible_message(span_warning("With a sickening crunch, [creator] reforms their arm!"), visible_message(span_warning("With a sickening crunch, [creator] reforms their arm!"),
span_notice("We assimilate the weapon back into our body."), span_notice("We assimilate the weapon back into our body."),
span_italics("You hear organic matter ripping and tearing!")) span_warningplain("You hear organic matter ripping and tearing!"))
playsound(src, 'sound/effects/blobattack.ogg', 30, 1) playsound(src, 'sound/effects/blobattack.ogg', 30, 1)
spawn(1) spawn(1)
if(src) if(src)

View File

@@ -46,7 +46,7 @@
if(ismob(loc)) if(ismob(loc))
loc.visible_message(span_warning("[loc.name]\'s flesh rapidly inflates, forming a bloated mass around their body!"), loc.visible_message(span_warning("[loc.name]\'s flesh rapidly inflates, forming a bloated mass around their body!"),
span_warning("We inflate our flesh, creating a spaceproof suit!"), span_warning("We inflate our flesh, creating a spaceproof suit!"),
span_italics("You hear organic matter ripping and tearing!")) span_warningplain("You hear organic matter ripping and tearing!"))
/obj/item/clothing/suit/space/changeling/dropped() /obj/item/clothing/suit/space/changeling/dropped()
qdel(src) qdel(src)
@@ -110,7 +110,7 @@
if(ismob(loc)) if(ismob(loc))
loc.visible_message(span_warning("[loc.name]\'s flesh turns black, quickly transforming into a hard, chitinous mass!"), loc.visible_message(span_warning("[loc.name]\'s flesh turns black, quickly transforming into a hard, chitinous mass!"),
span_warning("We harden our flesh, creating a suit of armor!"), span_warning("We harden our flesh, creating a suit of armor!"),
span_italics("You hear organic matter ripping and tearing!")) span_warningplain("You hear organic matter ripping and tearing!"))
/obj/item/clothing/head/helmet/space/changeling/armored /obj/item/clothing/head/helmet/space/changeling/armored
name = "chitinous mass" name = "chitinous mass"

View File

@@ -52,7 +52,7 @@
if(siemens) if(siemens)
visible_message(span_warning("Arcs of electricity strike [G.affecting]!"), visible_message(span_warning("Arcs of electricity strike [G.affecting]!"),
span_warning("Our hand channels raw electricity into [G.affecting]."), span_warning("Our hand channels raw electricity into [G.affecting]."),
span_italics("You hear sparks!")) span_warningplain("You hear sparks!"))
else else
to_chat(src, span_warning("Our gloves block us from shocking \the [G.affecting].")) to_chat(src, span_warning("Our gloves block us from shocking \the [G.affecting]."))
src.mind.changeling.chem_charges -= 10 src.mind.changeling.chem_charges -= 10
@@ -76,7 +76,7 @@
for(var/obj/item/cell/cell in L) for(var/obj/item/cell/cell in L)
visible_message(span_warning("Some sparks fall out from \the [src.name]\'s [held_item]!"), visible_message(span_warning("Some sparks fall out from \the [src.name]\'s [held_item]!"),
span_warning("Our hand channels raw electricity into \the [held_item]."), span_warning("Our hand channels raw electricity into \the [held_item]."),
span_italics("You hear sparks!")) span_warningplain("You hear sparks!"))
var/i = 10 var/i = 10
if(siemens) if(siemens)
while(i) while(i)
@@ -117,7 +117,7 @@
if(ismob(loc)) if(ismob(loc))
visible_message(span_warning("Electrical arcs form around [loc.name]\'s hand!"), visible_message(span_warning("Electrical arcs form around [loc.name]\'s hand!"),
span_warning("We store a charge of electricity in our hand."), span_warning("We store a charge of electricity in our hand."),
span_italics("You hear crackling electricity!")) span_warningplain("You hear crackling electricity!"))
var/T = get_turf(src) var/T = get_turf(src)
new /obj/effect/effect/sparks(T) new /obj/effect/effect/sparks(T)
@@ -154,7 +154,7 @@
if(siemens) if(siemens)
visible_message(span_warning("Arcs of electricity strike [C]!"), visible_message(span_warning("Arcs of electricity strike [C]!"),
span_warning("Our hand channels raw electricity into [C]"), span_warning("Our hand channels raw electricity into [C]"),
span_italics("You hear sparks!")) span_warningplain("You hear sparks!"))
else else
to_chat(src, span_warning("Our gloves block us from shocking \the [C].")) to_chat(src, span_warning("Our gloves block us from shocking \the [C]."))
//qdel(src) //Since we're no longer a one hit stun, we need to stick around. //qdel(src) //Since we're no longer a one hit stun, we need to stick around.
@@ -172,7 +172,7 @@
if(siemens) if(siemens)
visible_message(span_warning("Arcs of electricity strike [S]!"), visible_message(span_warning("Arcs of electricity strike [S]!"),
span_warning("Our hand channels raw electricity into [S]"), span_warning("Our hand channels raw electricity into [S]"),
span_italics("You hear sparks!")) span_warningplain("You hear sparks!"))
to_chat(S, span_danger("Warning: Electrical surge detected!")) to_chat(S, span_danger("Warning: Electrical surge detected!"))
//qdel(src) //qdel(src)
user.mind.changeling.chem_charges -= 10 user.mind.changeling.chem_charges -= 10
@@ -186,7 +186,7 @@
for(var/obj/item/cell/cell in T.contents) for(var/obj/item/cell/cell in T.contents)
visible_message(span_warning("Some sparks fall out from \the [target]!"), visible_message(span_warning("Some sparks fall out from \the [target]!"),
span_warning("Our hand channels raw electricity into \the [target]."), span_warning("Our hand channels raw electricity into \the [target]."),
span_italics("You hear sparks!")) span_warningplain("You hear sparks!"))
var/i = 10 var/i = 10
if(siemens) if(siemens)
while(i) while(i)

View File

@@ -49,7 +49,7 @@
new /obj/effect/gibspawner/human(T) new /obj/effect/gibspawner/human(T)
visible_message(span_warning("With a sickening squish, [src] reforms their whole body, casting their old parts on the floor!"), visible_message(span_warning("With a sickening squish, [src] reforms their whole body, casting their old parts on the floor!"),
span_notice("We reform our body. We are whole once more."), span_notice("We reform our body. We are whole once more."),
span_italics("You hear organic matter ripping and tearing!")) span_warningplain("You hear organic matter ripping and tearing!"))
feedback_add_details("changeling_powers","RR") feedback_add_details("changeling_powers","RR")
return 1 return 1

View File

@@ -216,7 +216,7 @@ Buildable meters
user.visible_message( \ user.visible_message( \
"[user] fastens \the [src].", \ "[user] fastens \the [src].", \
span_notice("You fasten \the [src]."), \ span_notice("You fasten \the [src]."), \
span_italics("You hear ratcheting.")) span_warningplain("You hear ratcheting."))
qdel(src) qdel(src)

View File

@@ -212,13 +212,13 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
MessageNoRecipient(parsed_message) MessageNoRecipient(parsed_message)
send2adminchat() //VOREStation Add send2adminchat() //VOREStation Add
//show it to the person adminhelping too //show it to the person adminhelping too
to_chat(C, span_pm(span_adminnotice("PM to-<b>Admins</b>: [name]"))) to_chat(C, span_admin_pm_notice("PM to-<b>Admins</b>: [name]"))
//send it to irc if nobody is on and tell us how many were on //send it to irc if nobody is on and tell us how many were on
var/admin_number_present = send2irc_adminless_only(initiator_ckey, name) var/admin_number_present = send2irc_adminless_only(initiator_ckey, name)
log_admin("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.") log_admin("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.")
if(admin_number_present <= 0) if(admin_number_present <= 0)
to_chat(C, span_pm(span_notice("No active admins are online, your adminhelp was sent to the admin discord."))) //VOREStation Edit to_chat(C, span_admin_pm_notice("No active admins are online, your adminhelp was sent to the admin discord.")) //VOREStation Edit
send2adminchat() //VOREStation Add send2adminchat() //VOREStation Add
//YW EDIT START //YW EDIT START
var/list/adm = get_admin_counts() var/list/adm = get_admin_counts()
@@ -291,7 +291,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
//won't bug irc //won't bug irc
/datum/admin_help/proc/MessageNoRecipient(msg) /datum/admin_help/proc/MessageNoRecipient(msg)
var/ref_src = "\ref[src]" var/ref_src = "\ref[src]"
var/chat_msg = span_pm(span_adminnotice("<span class='adminhelp'>Ticket [TicketHref("#[id]", ref_src)]</span><b>: [LinkedReplyName(ref_src)] [FullMonty(ref_src)]:</b> [msg]")) var/chat_msg = span_admin_pm_notice(span_adminhelp("Ticket [TicketHref("#[id]", ref_src)]") + span_bold(": [LinkedReplyName(ref_src)] [FullMonty(ref_src)]:") + msg)
AddInteraction("<font color='red'>[LinkedReplyName(ref_src)]: [msg]</font>") AddInteraction("<font color='red'>[LinkedReplyName(ref_src)]: [msg]</font>")
//send this msg to all admins //send this msg to all admins
@@ -666,7 +666,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
if(input == "Yes") if(input == "Yes")
if(current_ticket) if(current_ticket)
current_ticket.MessageNoRecipient(msg) current_ticket.MessageNoRecipient(msg)
to_chat(usr, span_pm(span_adminnotice("PM to-<b>Admins</b>: [msg]"))) to_chat(usr, span_admin_pm_notice("PM to-<b>Admins</b>: [msg]"))
return return
else else
to_chat(usr, span_warning("Ticket not found, creating new one...")) to_chat(usr, span_warning("Ticket not found, creating new one..."))

View File

@@ -6,7 +6,7 @@
set category = null set category = null
set name = "Admin PM Mob" set name = "Admin PM Mob"
if(!holder) //CHOMP Edit: Reverting this to let all staff respond to ahelps if(!holder) //CHOMP Edit: Reverting this to let all staff respond to ahelps
to_chat(src, span_pm(span_warning("Error: Admin-PM-Context: Only administrators may use this command."))) to_chat(src, span_admin_pm_warning("Error: Admin-PM-Context: Only administrators may use this command."))
return return
if( !ismob(M) || !M.client ) if( !ismob(M) || !M.client )
return return
@@ -18,8 +18,7 @@
set category = "Admin" set category = "Admin"
set name = "Admin PM" set name = "Admin PM"
if(!holder) //CHOMP Edit: Reverting this to let all staff respond to ahelps if(!holder) //CHOMP Edit: Reverting this to let all staff respond to ahelps
to_chat(src, span_pm(span_warning("Error: Admin-PM-Panel: Only administrators may use this command."))) to_chat(src, span_admin_pm_warning("Error: Admin-PM-Panel: Only administrators may use this command."))
return
var/list/client/targets[0] var/list/client/targets[0]
for(var/client/T) for(var/client/T)
if(T.mob) if(T.mob)
@@ -39,7 +38,7 @@
/client/proc/cmd_ahelp_reply(whom) /client/proc/cmd_ahelp_reply(whom)
if(prefs.muted & MUTE_ADMINHELP) if(prefs.muted & MUTE_ADMINHELP)
to_chat(src, span_pm(span_warning("Error: Admin-PM: You are unable to use admin PM-s (muted)."))) to_chat(src, span_admin_pm_warning("Error: Admin-PM: You are unable to use admin PM-s (muted)."))
return return
var/client/C var/client/C
if(istext(whom)) if(istext(whom))
@@ -50,7 +49,7 @@
C = whom C = whom
if(!C) if(!C)
if(holder) if(holder)
to_chat(src, span_pm(span_warning("Error: Admin-PM: Client not found."))) to_chat(src, span_admin_pm_warning("Error: Admin-PM: Client not found."))
return return
var/datum/ticket/T = C.current_ticket // CHOMPedit - Ticket System var/datum/ticket/T = C.current_ticket // CHOMPedit - Ticket System
@@ -67,12 +66,12 @@
//Fetching a message if needed. src is the sender and C is the target client //Fetching a message if needed. src is the sender and C is the target client
/client/proc/cmd_admin_pm(whom, msg, datum/ticket/T) // CHOMPedit - Ticket System /client/proc/cmd_admin_pm(whom, msg, datum/ticket/T) // CHOMPedit - Ticket System
if(prefs.muted & MUTE_ADMINHELP) if(prefs.muted & MUTE_ADMINHELP)
to_chat(src, span_pm(span_warning("Error: Admin-PM: You are unable to use admin PM-s (muted)."))) to_chat(src, span_admin_pm_warning("Error: Admin-PM: You are unable to use admin PM-s (muted)."))
return return
if(!holder && !current_ticket) //no ticket? https://www.youtube.com/watch?v=iHSPf6x1Fdo if(!holder && !current_ticket) //no ticket? https://www.youtube.com/watch?v=iHSPf6x1Fdo
to_chat(src, span_pm(span_warning("You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be."))) to_chat(src, span_admin_pm_warning("You can no longer reply to this ticket, please open another one by using the Adminhelp verb if need be."))
to_chat(src, span_pm(span_notice("Message: [msg]"))) to_chat(src, span_admin_pm_notice("Message: [msg]"))
return return
var/client/recipient var/client/recipient
@@ -97,14 +96,14 @@
if(!msg) if(!msg)
return return
if(holder) if(holder)
to_chat(src, span_pm(span_warning("Error: Use the admin IRC channel, nerd."))) to_chat(src, span_admin_pm_warning("Error: Use the admin IRC channel, nerd."))
return return
else else
if(!recipient) if(!recipient)
if(holder) if(holder)
to_chat(src, span_pm(span_warning("Error: Admin-PM: Client not found."))) to_chat(src, span_admin_pm_warning("Error: Admin-PM: Client not found."))
to_chat(src, msg) to_chat(src, msg)
else else
current_ticket.MessageNoRecipient(msg) current_ticket.MessageNoRecipient(msg)
@@ -118,12 +117,12 @@
return return
if(prefs.muted & MUTE_ADMINHELP) if(prefs.muted & MUTE_ADMINHELP)
to_chat(src, span_pm(span_warning("Error: Admin-PM: You are unable to use admin PM-s (muted)."))) to_chat(src, span_admin_pm_warning("Error: Admin-PM: You are unable to use admin PM-s (muted)."))
return return
if(!recipient) if(!recipient)
if(holder) if(holder)
to_chat(src, span_pm(span_warning("Error: Admin-PM: Client not found."))) to_chat(src, span_admin_pm_warning("Error: Admin-PM: Client not found."))
else else
current_ticket.MessageNoRecipient(msg) current_ticket.MessageNoRecipient(msg)
return return
@@ -142,27 +141,27 @@
var/keywordparsedmsg = keywords_lookup(msg) var/keywordparsedmsg = keywords_lookup(msg)
if(irc) if(irc)
to_chat(src, span_pm(span_notice("PM to-<b>Admins</b>: [rawmsg]"))) to_chat(src, span_admin_pm_notice("PM to-<b>Admins</b>: [rawmsg]"))
admin_ticket_log(src, span_pm(span_warning("Reply PM from-<b>[key_name(src, TRUE, TRUE)]</b> to <i>IRC</i>: [keywordparsedmsg]"))) admin_ticket_log(src, span_admin_pm_warning("Reply PM from-<b>[key_name(src, TRUE, TRUE)]</b> to <i>IRC</i>: [keywordparsedmsg]"))
ircreplyamount-- ircreplyamount--
send2irc("Reply: [ckey]",rawmsg) send2irc("Reply: [ckey]",rawmsg)
else else
if(recipient.holder) if(recipient.holder)
if(holder) //both are admins if(holder) //both are admins
to_chat(recipient, span_pm(span_warning("Admin PM from-<b>[key_name(src, recipient, 1)]</b>: [keywordparsedmsg]"))) to_chat(recipient, span_admin_pm_warning("Admin PM from-<b>[key_name(src, recipient, 1)]</b>: [keywordparsedmsg]"))
to_chat(src, span_pm(span_notice("Admin PM to-<b>[key_name(recipient, src, 1)]</b>: [keywordparsedmsg]"))) to_chat(src, span_admin_pm_notice("Admin PM to-<b>[key_name(recipient, src, 1)]</b>: [keywordparsedmsg]"))
//omg this is dumb, just fill in both their tickets //omg this is dumb, just fill in both their tickets
var/interaction_message = span_pm(span_notice("PM from-<b>[key_name(src, recipient, 1)]</b> to-<b>[key_name(recipient, src, 1)]</b>: [keywordparsedmsg]")) var/interaction_message = span_admin_pm_notice("PM from-<b>[key_name(src, recipient, 1)]</b> to-<b>[key_name(recipient, src, 1)]</b>: [keywordparsedmsg]")
admin_ticket_log(src, interaction_message) admin_ticket_log(src, interaction_message)
if(recipient != src) //reeee if(recipient != src) //reeee
admin_ticket_log(recipient, interaction_message) admin_ticket_log(recipient, interaction_message)
else //recipient is an admin but sender is not else //recipient is an admin but sender is not
var/replymsg = span_pm(span_warning("Reply PM from-<b>[key_name(src, recipient, 1)]</b>: [keywordparsedmsg]")) var/replymsg = span_admin_pm_warning("Reply PM from-<b>[key_name(src, recipient, 1)]</b>: [keywordparsedmsg]")
admin_ticket_log(src, replymsg) admin_ticket_log(src, replymsg)
to_chat(recipient, replymsg) to_chat(recipient, replymsg)
to_chat(src, span_pm(span_notice("PM to-<b>Admins</b>: [msg]"))) to_chat(src, span_admin_pm_notice("PM to-<b>Admins</b>: [msg]"))
//play the recieving admin the adminhelp sound (if they have them enabled) //play the recieving admin the adminhelp sound (if they have them enabled)
if(recipient.prefs?.read_preference(/datum/preference/toggle/holder/play_adminhelp_ping)) if(recipient.prefs?.read_preference(/datum/preference/toggle/holder/play_adminhelp_ping))
@@ -173,12 +172,12 @@
if(!recipient.current_ticket) if(!recipient.current_ticket)
new /datum/ticket(msg, recipient, TRUE, 0) // CHOMPedit - Ticket System new /datum/ticket(msg, recipient, TRUE, 0) // CHOMPedit - Ticket System
to_chat(recipient, span_pm(span_warning(span_huge("<b>-- Administrator private message --</b>")))) to_chat(recipient, span_admin_pm_warning(span_huge("<b>-- Administrator private message --</b>")))
to_chat(recipient, span_pm(span_warning("Admin PM from-<b>[key_name(src, recipient, 0)]</b>: [msg]"))) to_chat(recipient, span_admin_pm_warning("Admin PM from-<b>[key_name(src, recipient, 0)]</b>: [msg]"))
to_chat(recipient, span_pm(span_warning("<i>Click on the administrator's name to reply.</i>"))) to_chat(recipient, span_admin_pm_warning("<i>Click on the administrator's name to reply.</i>"))
to_chat(src, span_pm(span_notice("Admin PM to-<b>[key_name(recipient, src, 1)]</b>: [msg]"))) to_chat(src, span_admin_pm_notice("Admin PM to-<b>[key_name(recipient, src, 1)]</b>: [msg]"))
admin_ticket_log(recipient, span_pm(span_notice("PM From [key_name_admin(src)]: [keywordparsedmsg]"))) admin_ticket_log(recipient, span_admin_pm_notice("PM From [key_name_admin(src)]: [keywordparsedmsg]"))
//always play non-admin recipients the adminhelp sound //always play non-admin recipients the adminhelp sound
recipient << 'sound/effects/adminhelp.ogg' recipient << 'sound/effects/adminhelp.ogg'
@@ -197,7 +196,7 @@
return return
else //neither are admins else //neither are admins
to_chat(src, span_pm(span_warning("Error: Admin-PM: Non-admin to non-admin PM communication is forbidden."))) to_chat(src, span_admin_pm_warning("Error: Admin-PM: Non-admin to non-admin PM communication is forbidden."))
return return
if(irc) if(irc)
@@ -205,7 +204,7 @@
for(var/client/X in GLOB.admins) for(var/client/X in GLOB.admins)
if(!check_rights(R_ADMIN|R_SERVER, 0, X)) //CHOMPEdit if(!check_rights(R_ADMIN|R_SERVER, 0, X)) //CHOMPEdit
continue continue
to_chat(X, span_pm(span_notice("<B>PM: [key_name(src, X, 0)]-&gt;IRC:</B> [keywordparsedmsg]"))) to_chat(X, span_admin_pm_notice("<B>PM: [key_name(src, X, 0)]-&gt;IRC:</B> [keywordparsedmsg]"))
else else
log_admin("PM: [key_name(src)]->[key_name(recipient)]: [rawmsg]") log_admin("PM: [key_name(src)]->[key_name(recipient)]: [rawmsg]")
//we don't use message_admins here because the sender/receiver might get it too //we don't use message_admins here because the sender/receiver might get it too
@@ -213,7 +212,7 @@
if(!check_rights(R_ADMIN|R_SERVER, 0, X)) //CHOMPEdit if(!check_rights(R_ADMIN|R_SERVER, 0, X)) //CHOMPEdit
continue continue
if(X.key!=key && X.key!=recipient.key) //check client/X is an admin and isn't the sender or recipient if(X.key!=key && X.key!=recipient.key) //check client/X is an admin and isn't the sender or recipient
to_chat(X, span_pm(span_notice("<B>PM: [key_name(src, X, 0)]-&gt;[key_name(recipient, X, 0)]:</B> [keywordparsedmsg]"))) to_chat(X, span_admin_pm_notice("<B>PM: [key_name(src, X, 0)]-&gt;[key_name(recipient, X, 0)]:</B> [keywordparsedmsg]"))
/proc/IrcPm(target,msg,sender) /proc/IrcPm(target,msg,sender)
var/client/C = GLOB.directory[target] var/client/C = GLOB.directory[target]
@@ -262,11 +261,11 @@
message_admins("IRC message from [sender] to [key_name_admin(C)] : [msg]") message_admins("IRC message from [sender] to [key_name_admin(C)] : [msg]")
log_admin("IRC PM: [sender] -> [key_name(C)] : [msg]") log_admin("IRC PM: [sender] -> [key_name(C)] : [msg]")
to_chat(C, span_pm(span_warning(span_huge("<b>-- Administrator private message --</b>")))) to_chat(C, span_admin_pm_warning(span_huge("<b>-- Administrator private message --</b>")))
to_chat(C, span_pm(span_warning("Admin PM from-<b><a href='?priv_msg=[stealthkey]'>[adminname]</A></b>: [msg]"))) to_chat(C, span_admin_pm_warning("Admin PM from-<b><a href='?priv_msg=[stealthkey]'>[adminname]</A></b>: [msg]"))
to_chat(C, span_pm(span_warning("<i>Click on the administrator's name to reply.</i>"))) to_chat(C, span_admin_pm_warning("<i>Click on the administrator's name to reply.</i>"))
admin_ticket_log(C, span_pm(span_notice("PM From [irc_tagged]: [msg]"))) admin_ticket_log(C, span_admin_pm_notice("PM From [irc_tagged]: [msg]"))
window_flash(C) window_flash(C)
//always play non-admin recipients the adminhelp sound //always play non-admin recipients the adminhelp sound

View File

@@ -101,7 +101,7 @@
to_chat(M, "<B>You hear a voice in your head...</B> <i>[msg]</i>") to_chat(M, "<B>You hear a voice in your head...</B> <i>[msg]</i>")
log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]") log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]")
msg = span_pm(span_adminnotice("<b> SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] :</b> [msg]")) msg = span_admin_pm_notice("<b> SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] :</b> [msg]")
message_admins(msg) message_admins(msg)
admin_ticket_log(M, msg) admin_ticket_log(M, msg)
feedback_add_details("admin_verb","SMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! feedback_add_details("admin_verb","SMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -149,7 +149,7 @@
to_chat(M, msg) to_chat(M, msg)
log_admin("DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]") log_admin("DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]): [msg]")
msg = span_pm(span_adminnotice("<b> DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]):</b> [msg]<BR>")) msg = span_admin_pm_notice("<b> DirectNarrate: [key_name(usr)] to ([M.name]/[M.key]):</b> [msg]<BR>")
message_admins(msg) message_admins(msg)
admin_ticket_log(M, msg) admin_ticket_log(M, msg)
feedback_add_details("admin_verb","DIRN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! feedback_add_details("admin_verb","DIRN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!

View File

@@ -214,7 +214,7 @@
playsound(src, 'sound/machines/click.ogg', 75, 1) playsound(src, 'sound/machines/click.ogg', 75, 1)
user.visible_message("\The [user] attaches \the [src] to the wall.", user.visible_message("\The [user] attaches \the [src] to the wall.",
span_notice("You attach \the [src] to the wall."), span_notice("You attach \the [src] to the wall."),
span_italics("You hear clicking.")) span_warningplain("You hear clicking."))
if(istype(user, /mob/living/silicon/robot)) //Robots cannot unequip/drop items, for Safety Reasons. if(istype(user, /mob/living/silicon/robot)) //Robots cannot unequip/drop items, for Safety Reasons.
forceMove(T) forceMove(T)
user.drop_item(T) user.drop_item(T)

View File

@@ -46,7 +46,7 @@ var/list/mentor_verbs_default = list(
set category = "Admin.Secrets" //CHOMPEdit set category = "Admin.Secrets" //CHOMPEdit
set name = "Make Mentor" set name = "Make Mentor"
if(!holder) if(!holder)
to_chat(src, span_pm(span_warning("Error: Only administrators may use this command."))) to_chat(src, span_admin_pm_warning("Error: Only administrators may use this command."))
return return
var/list/client/targets[0] var/list/client/targets[0]
for(var/client/T in GLOB.clients) for(var/client/T in GLOB.clients)
@@ -56,12 +56,12 @@ var/list/mentor_verbs_default = list(
return return
var/client/C = targets[target] var/client/C = targets[target]
if(has_mentor_powers(C) || C.deadmin_holder) // If an admin is deadminned you could mentor them and that will cause fuckery if they readmin if(has_mentor_powers(C) || C.deadmin_holder) // If an admin is deadminned you could mentor them and that will cause fuckery if they readmin
to_chat(src, span_pm(span_warning("Error: They already have mentor powers."))) to_chat(src, span_admin_pm_warning("Error: They already have mentor powers."))
return return
var/datum/mentor/M = new /datum/mentor(C.ckey) var/datum/mentor/M = new /datum/mentor(C.ckey)
M.associate(C) M.associate(C)
to_chat(C, span_pm(span_notice("You have been granted mentorship."))) to_chat(C, span_admin_pm_notice("You have been granted mentorship."))
to_chat(src, span_pm(span_notice("You have made [C] a mentor."))) to_chat(src, span_admin_pm_notice("You have made [C] a mentor."))
log_admin("[key_name(src)] made [key_name(C)] a mentor.") log_admin("[key_name(src)] made [key_name(C)] a mentor.")
feedback_add_details("admin_verb","Make Mentor") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! feedback_add_details("admin_verb","Make Mentor") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
// CHOMPedit Start - Adding to DB Logic // CHOMPedit Start - Adding to DB Logic
@@ -76,7 +76,7 @@ var/list/mentor_verbs_default = list(
set category = "Admin.Secrets" //CHOMPEdit set category = "Admin.Secrets" //CHOMPEdit
set name = "Unmake Mentor" set name = "Unmake Mentor"
if(!holder) if(!holder)
to_chat(src, span_pm(span_warning("Error: Only administrators may use this command."))) to_chat(src, span_admin_pm_warning("Error: Only administrators may use this command."))
return return
var/list/client/targets[0] var/list/client/targets[0]
for(var/client/T in GLOB.mentors) for(var/client/T in GLOB.mentors)
@@ -86,8 +86,8 @@ var/list/mentor_verbs_default = list(
return return
var/client/C = targets[target] var/client/C = targets[target]
C.mentorholder.disassociate() C.mentorholder.disassociate()
to_chat(C, span_pm(span_warning("Your mentorship has been revoked."))) to_chat(C, span_admin_pm_warning("Your mentorship has been revoked."))
to_chat(src, span_pm(span_notice("You have revoked [C]'s mentorship."))) to_chat(src, span_admin_pm_notice("You have revoked [C]'s mentorship."))
log_admin("[key_name(src)] revoked [key_name(C)]'s mentorship.") log_admin("[key_name(src)] revoked [key_name(C)]'s mentorship.")
feedback_add_details("admin_verb","Unmake Mentor") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! feedback_add_details("admin_verb","Unmake Mentor") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
// CHOMPedit Start - Removing from DB Logic // CHOMPedit Start - Removing from DB Logic
@@ -147,7 +147,7 @@ var/list/mentor_verbs_default = list(
/client/proc/cmd_mhelp_reply(whom) /client/proc/cmd_mhelp_reply(whom)
if(prefs.muted & MUTE_ADMINHELP) if(prefs.muted & MUTE_ADMINHELP)
to_chat(src, span_pm(span_warning("Error: Mentor-PM: You are unable to use admin PM-s (muted)."))) to_chat(src, span_admin_pm_warning("Error: Mentor-PM: You are unable to use admin PM-s (muted)."))
return return
var/client/C var/client/C
if(istext(whom)) if(istext(whom))
@@ -156,7 +156,7 @@ var/list/mentor_verbs_default = list(
C = whom C = whom
if(!C) if(!C)
if(has_mentor_powers(src)) if(has_mentor_powers(src))
to_chat(src, span_pm(span_warning("Error: Mentor-PM: Client not found."))) to_chat(src, span_admin_pm_warning("Error: Mentor-PM: Client not found."))
return return
var/datum/ticket/T = C.current_ticket // CHOMPedit - Ticket System var/datum/ticket/T = C.current_ticket // CHOMPedit - Ticket System
@@ -198,15 +198,13 @@ var/list/mentor_verbs_default = list(
set hidden = 1 set hidden = 1
if(prefs.muted & MUTE_ADMINHELP) if(prefs.muted & MUTE_ADMINHELP)
to_chat(src, span_pm(span_warning("Error: Mentor-PM: You are unable to use admin PM-s (muted)."))) to_chat(src, span_mentor_pm_warning("Error: Mentor-PM: You are unable to use mentor PM-s (muted)."))
return return
//Not a mentor and no open ticket //Not a mentor and no open ticket
if(!has_mentor_powers(src) && !current_ticket) // CHOMPedit - Ticket System if(!has_mentor_powers(src) && !current_ticket) // CHOMPedit - Ticket System
to_chat(src, span_pm(span_warning("You can no longer reply to this ticket, please open another one by using the Mentorhelp verb if need be."))) to_chat(src, span_mentor_pm_warning("You can no longer reply to this ticket, please open another one by using the Mentorhelp verb if need be."))
to_chat(src, span_pm(span_notice("Message: [msg]"))) to_chat(src, span_mentor_pm_notice("Message: [msg]"))
return
var/client/recipient var/client/recipient
if(istext(whom)) if(istext(whom))
@@ -223,12 +221,12 @@ var/list/mentor_verbs_default = list(
return return
if(prefs.muted & MUTE_ADMINHELP) if(prefs.muted & MUTE_ADMINHELP)
to_chat(src, span_pm(span_warning("Error: Mentor-PM: You are unable to use admin PM-s (muted)."))) to_chat(src, span_mentor_pm_warning("Error: Mentor-PM: You are unable to use mentor PM-s (muted)."))
return return
if(!recipient) if(!recipient)
if(has_mentor_powers(src)) if(has_mentor_powers(src))
to_chat(src, span_pm(span_warning("Error:Mentor-PM: Client not found."))) to_chat(src, span_mentor_pm_warning("Error:Mentor-PM: Client not found."))
to_chat(src, msg) to_chat(src, msg)
else else
log_admin("Mentorhelp: [key_name(src)]: [msg]") log_admin("Mentorhelp: [key_name(src)]: [msg]")
@@ -237,10 +235,8 @@ var/list/mentor_verbs_default = list(
//Has mentor powers but the recipient no longer has an open ticket //Has mentor powers but the recipient no longer has an open ticket
if(has_mentor_powers(src) && !recipient.current_ticket) // CHOMPedit - Ticket System if(has_mentor_powers(src) && !recipient.current_ticket) // CHOMPedit - Ticket System
to_chat(src, span_pm(span_warning("You can no longer reply to this ticket."))) to_chat(src, span_mentor_pm_warning("You can no longer reply to this ticket."))
to_chat(src, span_pm(span_notice("Message: [msg]"))) to_chat(src, span_mentor_pm_notice("Message: [msg]"))
return
if (src.handle_spam_prevention(msg,MUTE_ADMINHELP)) if (src.handle_spam_prevention(msg,MUTE_ADMINHELP))
return return
@@ -248,7 +244,7 @@ var/list/mentor_verbs_default = list(
if(!msg) if(!msg)
return return
var/interaction_message = span_pm(span_notice("Mentor-PM from-<b>[src]</b> to-<b>[recipient]</b>: [msg]")) var/interaction_message = span_mentor_pm_notice("Mentor-PM from-<b>[src]</b> to-<b>[recipient]</b>: [msg]")
// CHOMPedit Start - Ticket System // CHOMPedit Start - Ticket System
if (recipient.current_ticket && !has_mentor_powers(recipient)) if (recipient.current_ticket && !has_mentor_powers(recipient))

View File

@@ -358,7 +358,7 @@ GLOBAL_DATUM_INIT(mhelp_tickets, /datum/mentor_help_tickets, new)
if(tgui_alert(usr, "Really escalate this ticket to admins? No mentors will ever be able to interact with it again if you do.","Escalate",list("Yes","No")) != "Yes") if(tgui_alert(usr, "Really escalate this ticket to admins? No mentors will ever be able to interact with it again if you do.","Escalate",list("Yes","No")) != "Yes")
return return
if (src.initiator == null) // You can't escalate a mentorhelp of someone who's logged out because it won't create the adminhelp properly if (src.initiator == null) // You can't escalate a mentorhelp of someone who's logged out because it won't create the adminhelp properly
to_chat(usr, span_pm(span_warning("Error: client not found, unable to escalate."))) to_chat(usr, span_mentor_pm_warning("Error: client not found, unable to escalate."))
return return
var/datum/admin_help/AH = new /datum/admin_help(src.name, src.initiator, FALSE) var/datum/admin_help/AH = new /datum/admin_help(src.name, src.initiator, FALSE)
message_mentors("[usr.ckey] escalated Ticket [TicketHref("#[id]")]") message_mentors("[usr.ckey] escalated Ticket [TicketHref("#[id]")]")
@@ -467,7 +467,7 @@ GLOBAL_DATUM_INIT(mhelp_tickets, /datum/mentor_help_tickets, new)
if(current_mentorhelp) if(current_mentorhelp)
log_admin("Mentorhelp: [key_name(src)]: [msg]") log_admin("Mentorhelp: [key_name(src)]: [msg]")
current_mentorhelp.MessageNoRecipient(msg) current_mentorhelp.MessageNoRecipient(msg)
to_chat(usr, span_adminnotice(span_mentor("Mentor-PM to-<b>Mentors</b>: [msg]"))) to_chat(usr, span_mentor_pm_notice("Mentor-PM to-<b>Mentors</b>: [msg]"))
return return
else else
to_chat(usr, span_warning("Ticket not found, creating new one...")) to_chat(usr, span_warning("Ticket not found, creating new one..."))

View File

@@ -180,7 +180,7 @@
return return
going_kaboom = TRUE going_kaboom = TRUE
visible_message(span_danger("\The [src] lets out an shower of sparks as it starts to lose stability!"),\ visible_message(span_danger("\The [src] lets out an shower of sparks as it starts to lose stability!"),\
span_italics("You hear a loud electrical crack!")) span_warningplain("You hear a loud electrical crack!"))
playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5) playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5)
tesla_zap(src, 5, power_gen * 0.05) tesla_zap(src, 5, power_gen * 0.05)
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), get_turf(src), 2, 3, 4, 8), 100) // Not a normal explosion. addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), get_turf(src), 2, 3, 4, 8), 100) // Not a normal explosion.
@@ -286,7 +286,7 @@
/obj/machinery/power/rtg/kugelblitz/proc/asplod() /obj/machinery/power/rtg/kugelblitz/proc/asplod()
visible_message(span_danger("\The [src] lets out an shower of sparks as it starts to lose stability!"),\ visible_message(span_danger("\The [src] lets out an shower of sparks as it starts to lose stability!"),\
span_italics("You hear a loud electrical crack!")) span_warningplain("You hear a loud electrical crack!"))
playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5) playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5)
var/turf/T = get_turf(src) var/turf/T = get_turf(src)
qdel(src) qdel(src)

View File

@@ -113,14 +113,14 @@ export const MESSAGE_TYPES = [
name: 'Info', name: 'Info',
description: 'Non-urgent messages from the game and items', description: 'Non-urgent messages from the game and items',
selector: selector:
'.notice:not(.pm), .adminnotice:not(.pm), .info, .sinister, .cult, .infoplain, .announce, .hear, .smallnotice, .holoparasite, .boldnotice', '.notice:not(.pm):not(.mentor), .adminnotice:not(.pm), .info, .sinister, .cult, .infoplain, .announce, .hear, .smallnotice, .holoparasite, .boldnotice',
}, },
{ {
type: MESSAGE_TYPE_WARNING, type: MESSAGE_TYPE_WARNING,
name: 'Warnings', name: 'Warnings',
description: 'Urgent messages from the game and items', description: 'Urgent messages from the game and items',
selector: selector:
'.warning:not(.pm), .critical, .userdanger, .italics, .alertsyndie, .warningplain', '.warning:not(.pm):not(.mentor), .critical, .userdanger, .alertsyndie, .warningplain',
}, },
{ {
type: MESSAGE_TYPE_DEADCHAT, type: MESSAGE_TYPE_DEADCHAT,

View File

@@ -380,6 +380,10 @@ img.icon.bigicon {
.body { .body {
} }
.warningplain {
font-style: italic;
}
.hivemind { .hivemind {
font-style: italic; font-style: italic;
} }

View File

@@ -398,6 +398,10 @@ img.icon.bigicon {
.body { .body {
} }
.warningplain {
font-style: italic;
}
.hivemind { .hivemind {
font-style: italic; font-style: italic;
} }

View File

@@ -375,11 +375,14 @@ img.icon.bigicon {
.npcsay, .npcsay,
.infoplain, .infoplain,
.oocplain, .oocplain,
.warningplain,
.chatexport, .chatexport,
.body { .body {
} }
.warningplain {
font-style: italic;
}
.hivemind { .hivemind {
font-style: italic; font-style: italic;
color: #ffffff; color: #ffffff;

View File

@@ -398,6 +398,10 @@ img.icon.bigicon {
.body { .body {
} }
.warningplain {
font-style: italic;
}
.hivemind { .hivemind {
font-style: italic; font-style: italic;
} }