diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index 57a0746ed28..7c3da2f99c3 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -3,7 +3,6 @@ var/list/admins = list() //all clients whom are admins var/list/deadmins = list() //all clients who have used the de-admin verb. var/list/directory = list() //all ckeys with associated client var/list/stealthminID = list() //reference list with IDs that store ckeys, for stealthmins -var/global/list/current_watchlist = list() //stores players that are currently online and in the watchlist //Since it didn't really belong in any other category, I'm putting this here //This is for procs to replace all the goddamn 'in world's that are chilling around the code diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index 2204b66004c..26dfbfee0ad 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -567,7 +567,6 @@ var/datum/subsystem/garbage_collector/SSgarbage SearchVar(deadmins) SearchVar(directory) SearchVar(stealthminID) - SearchVar(current_watchlist) SearchVar(player_list) SearchVar(mob_list) SearchVar(living_mob_list) diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index e0f3eb437bf..4fbd792b90f 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -9,7 +9,6 @@ Show Job Debug
Admin Log
Show Admin List
- Show online players in the watchlist

"} @@ -120,13 +119,6 @@ dat += "[ckey] - [D.rank.name]
" usr << browse(dat, "window=showadmins;size=600x500") - if("show_current_watchlist") - var/dat = "Watchlist:
" - if(current_watchlist) - for(var/ckey in current_watchlist) - dat += "[ckey] - [current_watchlist[ckey]]" - usr << browse(dat, "window=showcurrentwatchlist;size=600x500") - if("tdomereset") if(!check_rights(R_ADMIN)) return diff --git a/code/modules/admin/sql_message_system.dm b/code/modules/admin/sql_message_system.dm index 7411de7fd29..0b6dddedc1a 100644 --- a/code/modules/admin/sql_message_system.dm +++ b/code/modules/admin/sql_message_system.dm @@ -154,7 +154,7 @@ message_admins("[key_name_admin(usr)] has toggled [target_ckey]'s [type] made by [admin_ckey] to [secret ? "not secret" : "secret"]") browse_messages(target_ckey = target_ckey) -/proc/browse_messages(type, target_ckey, index, linkless = 0) +/proc/browse_messages(type, target_ckey, index, linkless = 0, filter) if(!dbcon.IsConnected()) usr << "Failed to establish database connection." return @@ -176,7 +176,11 @@ output += "\[Add memo\]" else if(type == "watchlist entry") output += "

Watchlist entries

" - output += "\[Add watchlist entry\]" + output += "\[Add watchlist entry\]" + if(filter) + output += "|\[Unfilter clients\]" + else + output += "|\[Filter offline clients\]" output += ruler var/DBQuery/query_get_type_messages = dbcon.NewQuery("SELECT id, targetckey, adminckey, text, timestamp, server, lasteditor FROM [format_table_name("messages")] WHERE type = '[type]'") if(!query_get_type_messages.Execute()) @@ -186,6 +190,8 @@ while(query_get_type_messages.NextRow()) var/id = query_get_type_messages.item[1] var/t_ckey = query_get_type_messages.item[2] + if(type == "watchlist entry" && filter && !(t_ckey in directory)) + continue var/admin_ckey = query_get_type_messages.item[3] var/text = query_get_type_messages.item[4] var/timestamp = query_get_type_messages.item[5] @@ -229,13 +235,20 @@ data += " \[Delete\]" if(type == "note") data += " [secret ? "\[Secret\]" : "\[Not secret\]"]" - data += " \[Edit\]" + if(type == "message sent") + data += " Message has been sent" + if(editor_ckey) + data += "|" + else + data += " \[Edit\]" if(editor_ckey) data += " Last edit by [editor_ckey] (Click here to see edit log)" data += "
[text]
" switch(type) if("message") messagedata += data + if("message sent") + messagedata += data if("watchlist entry") watchdata += data if("note") @@ -303,7 +316,7 @@ proc/get_message_output(type, target_ckey) log_game("SQL ERROR obtaining id, adminckey, text, timestamp, lasteditor from messages table. Error : \[[err]\]\n") return while(query_get_message_output.NextRow()) - var/id = query_get_message_output.item[1] + var/message_id = query_get_message_output.item[1] var/admin_ckey = query_get_message_output.item[2] var/text = query_get_message_output.item[3] var/timestamp = query_get_message_output.item[4] @@ -311,15 +324,19 @@ proc/get_message_output(type, target_ckey) switch(type) if("message") output += "Admin message left by [admin_ckey] on [timestamp]" - output += "
[text]" - delete_message(id, 0) + output += "
[text]
" + var/DBQuery/query_message_read = dbcon.NewQuery("UPDATE [format_table_name("messages")] SET type = 'message sent' WHERE id = [message_id]") + if(!query_message_read.Execute()) + var/err = query_message_read.ErrorMsg() + log_game("SQL ERROR updating message type. Error : \[[err]\]\n") + return if("watchlist entry") message_admins("Notice: [key_name_admin(target_ckey)] is on the watchlist and has just connected - Reason: [text]") send2irc_adminless_only("Watchlist", "[key_name(target_ckey)] is on the watchlist and has just connected - Reason: [text]") if("memo") output += "Memo by [admin_ckey] on [timestamp]" if(editor_ckey) - output += "
Last edit by [editor_ckey] (Click here to see edit log)" + output += "
Last edit by [editor_ckey] (Click here to see edit log)" output += "
[text]

" return output @@ -368,4 +385,4 @@ this proc can take several minutes to execute fully if converting and cause DD t world << "Deleting NOTESFILE" fdel(NOTESFILE) world << "Finished mass note conversion, remember to turn off AUTOCONVERT_NOTES"*/ -#undef NOTESFILE \ No newline at end of file +#undef NOTESFILE diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 1cd42d6eb1f..3ce2157aa55 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1087,6 +1087,9 @@ else if(href_list["showwatch"]) browse_messages("watchlist entry") + else if(href_list["showwatchfilter"]) + browse_messages("watchlist entry", filter = 1) + else if(href_list["showmessageckey"]) var/target = href_list["showmessageckey"] browse_messages(target_ckey = target) diff --git a/code/modules/mob/logout.dm b/code/modules/mob/logout.dm index 67252a405c1..77d6ca571ea 100644 --- a/code/modules/mob/logout.dm +++ b/code/modules/mob/logout.dm @@ -2,7 +2,6 @@ SStgui.on_logout(src) unset_machine() player_list -= src - current_watchlist -= ckey log_access("Logout: [key_name(src)]") if(admin_datums[src.ckey]) if (ticker && ticker.current_state == GAME_STATE_PLAYING) //Only report this stuff if we are currently playing.