diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm
index e0d090a28c0..8bd2ff76311 100644
--- a/code/__DEFINES/admin.dm
+++ b/code/__DEFINES/admin.dm
@@ -75,7 +75,7 @@
/// Displays "(SHOW)" in the chat, when clicked it tries to show atom(paper). First you need to set the request_state variable to TRUE for the paper.
#define ADMIN_SHOW_PAPER(atom) "(SHOW)"
/// Displays "(PLAY)" in the chat, when clicked it tries to play internet sounds from the request.
-#define ADMIN_PLAY_INTERNET(text) "(PLAY)"
+#define ADMIN_PLAY_INTERNET(text, credit) "(PLAY)"
/atom/proc/Admin_Coordinates_Readable(area_name, admin_jump_ref)
var/turf/T = Safe_COORD_Location()
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index ba8ac9e52da..0a7b1338cd1 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1804,9 +1804,10 @@
if(!check_rights(R_SOUND))
return
+ var/credit = href_list["credit"]
var/link_url = href_list["play_internet"]
if(!link_url)
return
- web_sound(usr, link_url)
+ web_sound(usr, link_url, credit)
diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm
index 7298852f6e5..17bba0195a2 100644
--- a/code/modules/admin/verbs/playsound.dm
+++ b/code/modules/admin/verbs/playsound.dm
@@ -71,7 +71,7 @@
SSblackbox.record_feedback("tally", "admin_verb", 1, "Play Direct Mob Sound") // If you are copy-pasting this, ensure the 4th parameter is unique to the new proc!
///Takes an input from either proc/play_web_sound or the request manager and runs it through youtube-dl and prompts the user before playing it to the server.
-/proc/web_sound(mob/user, input)
+/proc/web_sound(mob/user, input, credit)
if(!check_rights(R_SOUND))
return
var/ytdl = CONFIG_GET(string/invoke_youtubedl)
@@ -138,6 +138,8 @@
to_chat(world, span_boldannounce("An admin played: [webpage_url]"), confidential = TRUE)
if("Cancel", null)
return
+ if(credit)
+ to_chat(world, span_boldannounce(credit), confidential = TRUE)
SSblackbox.record_feedback("nested tally", "played_url", 1, list("[user.ckey]", "[input]"))
log_admin("[key_name(user)] played web sound: [input]")
message_admins("[key_name(user)] played web sound: [input]")
diff --git a/code/modules/admin/verbs/request_internet_sound.dm b/code/modules/admin/verbs/request_internet_sound.dm
index 0711c2cd169..d61d3cc94c4 100644
--- a/code/modules/admin/verbs/request_internet_sound.dm
+++ b/code/modules/admin/verbs/request_internet_sound.dm
@@ -20,6 +20,15 @@
to_chat(usr, span_danger("Invalid URL. Please use a URL from one of the following sites: [replacetext(CONFIG_GET(string/request_internet_allowed), "\\", "")]"), confidential = TRUE)
return
+ var/credit = tgui_alert(usr, "Credit yourself for requesting this song? (will show up as [usr.name])", "Credit Yourself?", list("No", "Yes", "Cancel"))
+
+ if(credit == "Cancel" || isnull(credit))
+ return
+ else if (credit == "Yes")
+ credit = "[usr.name] requested this track."
+ else
+ credit = "Someone requested this track."
+
log_internet_request("[src.key]/([src.name]): [request_url]")
if(usr.client)
if(usr.client.prefs.muted & MUTE_INTERNET_REQUEST)
@@ -28,9 +37,9 @@
if(src.client.handle_spam_prevention(request_url,MUTE_INTERNET_REQUEST))
return
- GLOB.requests.music_request(usr.client, request_url)
+ GLOB.requests.music_request(usr.client, request_url, credit)
to_chat(usr, span_info("You requested: \"[request_url]\" to be played."), confidential = TRUE)
- request_url = span_adminnotice("MUSIC REQUEST: [ADMIN_FULLMONTY(src)] [ADMIN_SC(src)]: [span_linkify(request_url)] [ADMIN_PLAY_INTERNET(request_url)]")
+ request_url = span_adminnotice("MUSIC REQUEST: [ADMIN_FULLMONTY(src)] [ADMIN_SC(src)]: [span_linkify(request_url)] [ADMIN_PLAY_INTERNET(request_url, credit)]")
for(var/client/admin_client in GLOB.admins)
if(admin_client.prefs.chat_toggles & CHAT_PRAYER)
to_chat(admin_client, request_url, type = MESSAGE_TYPE_PRAYER, confidential = TRUE)