Fixes the "Saw this admin message" button not working (#80908)

## About The Pull Request

Wrong fuckin name brother (also topic doesn't automake textnums into
nums)

## Why It's Good For The Game

Closes #80020

## Changelog
🆑
admin: Confirming that you have read an admin message now uh, works.
it's been 2 years bros
/🆑
This commit is contained in:
LemonInTheDark
2024-01-13 15:13:45 -08:00
committed by GitHub
parent 03700a1e78
commit 2ed5a9fca0
3 changed files with 71 additions and 44 deletions
+55 -21
View File
@@ -629,6 +629,19 @@
browser.set_content(jointext(output, ""))
browser.open()
/// Represents a message stored in the db
/datum/admin_message
/// The uid of this message
var/id
/// The admin who left this message
var/admin_key
/// The text of this message
var/text
/// The time this message was first created
var/timestamp
/// The admin who last edited this message
var/editor_key
/proc/get_message_output(type, target_ckey, show_secret = TRUE, after_timestamp)
if(!SSdbcore.Connect())
to_chat(usr, span_danger("Failed to establish database connection."), confidential = TRUE)
@@ -660,29 +673,50 @@
if(!query_get_message_output.warn_execute())
qdel(query_get_message_output)
return
var/list/datum/admin_message/messages = list()
while(query_get_message_output.NextRow())
var/message_id = query_get_message_output.item[1]
var/admin_key = query_get_message_output.item[2]
var/text = query_get_message_output.item[3]
var/timestamp = query_get_message_output.item[4]
var/editor_key = query_get_message_output.item[5]
switch(type)
if("message")
output += "<font color='[COLOR_RED]' size='3'><b>Admin message left by [span_prefix("[admin_key]")] on [timestamp]</b></font>"
output += "<br><font color='[COLOR_RED]'>[text] <A href='?_src_=holder;[HrefToken()];messageread=[message_id]'>(Click here to verify you have read this message)</A></font><br>"
if("note")
output += "<font color='[COLOR_RED]' size='3'><b>Note left by [span_prefix("[admin_key]")] on [timestamp]</b></font>"
output += "<br><font color='[COLOR_RED]'>[text]</font><br>"
if("watchlist entry")
message_admins("<font color='[COLOR_RED]'><B>Notice: </B></font><font color='[COLOR_ADMIN_PINK]'>[key_name_admin(target_ckey)] has been on the watchlist since [timestamp] and has just connected - Reason: [text]</font>")
send2tgs_adminless_only("Watchlist", "[key_name(target_ckey)] is on the watchlist and has just connected - Reason: [text]")
if("memo")
output += "[span_memo("Memo by <span class='prefix'>[admin_key]")] on [timestamp]"
if(editor_key)
output += "<br>[span_memoedit("Last edit by [editor_key] <A href='?_src_=holder;[HrefToken()];messageedits=[message_id]'>(Click here to see edit log)</A>")]"
output += "<br>[text]</span><br>"
var/datum/admin_message/message = new()
message.id = query_get_message_output.item[1]
message.admin_key = query_get_message_output.item[2]
message.text = query_get_message_output.item[3]
message.timestamp = query_get_message_output.item[4]
message.editor_key = query_get_message_output.item[5]
messages += message
qdel(query_get_message_output)
return output
if(!length(messages))
return
return messages
/proc/display_admin_messages(client/display_to)
var/list/text = list()
for(var/datum/admin_message/message in get_message_output("message", display_to.ckey))
text += "<font color='[COLOR_RED]' size='3'><b>Admin message left by [span_prefix("[message.admin_key]")] on [message.timestamp]</b></font>"
text += "<br><font color='[COLOR_RED]'>[message.text] <A href='?messageread=[message.id]'>(Click here to verify you have read this message)</A></font><br>"
if(length(text))
to_chat(display_to, text.Join())
/proc/display_unread_notes(client/display_to, show_after)
var/list/text = list()
for(var/datum/admin_message/message in get_message_output("note", display_to.ckey, FALSE, show_after))
text += "<font color='[COLOR_RED]' size='3'><b>Note left by [span_prefix("[message.admin_key]")] on [message.timestamp]</b></font>"
text += "<br><font color='[COLOR_RED]'>[message.text]</font><br>"
if(length(text))
to_chat(display_to, text.Join())
/proc/display_admin_memos(client/display_to)
var/list/text = list()
for(var/datum/admin_message/message in get_message_output("memo", display_to.ckey))
text += "[span_memo("Memo by <span class='prefix'>[message.admin_key]")] on [message.timestamp]"
if(message.editor_key)
text += "<br>[span_memoedit("Last edit by [message.editor_key] <A href='?_src_=holder;[HrefToken()];messageedits=[message.id]'>(Click here to see edit log)</A>")]"
text += "<br>[message.text]</span><br>"
if(length(text))
to_chat(display_to, text.Join())
/proc/scream_about_watchlists(client/read_from)
for(var/datum/admin_message/message in get_message_output("watchlist entry", read_from.ckey))
message_admins("<font color='[COLOR_RED]'><B>Notice: </B></font><font color='[COLOR_ADMIN_PINK]'>[key_name_admin(read_from.ckey)] has been on the watchlist since [message.timestamp] and has just connected - Reason: [message.text]</font>")
send2tgs_adminless_only("Watchlist", "[key_name(read_from.ckey)] is on the watchlist and has just connected - Reason: [message.text]")
#define NOTESFILE "data/player_notes.sav"
//if the AUTOCONVERT_NOTES is turned on, anytime a player connects this will be run to try and add all their notes to the databas