From 1f1880e3f963572235dd92ae9d2d2f14c810aac2 Mon Sep 17 00:00:00 2001 From: Jordie0608 Date: Fri, 23 Oct 2015 00:41:01 +1100 Subject: [PATCH] selective ooc muting --- code/game/verbs/ooc.dm | 22 ++++++++++++++++++++- code/modules/client/preferences.dm | 2 ++ code/modules/client/preferences_savefile.dm | 2 ++ html/changelogs/Jordie0608 ignore.yml | 5 +++++ 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/Jordie0608 ignore.yml diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 3a5b8178aae..93ac4001ebe 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -55,7 +55,7 @@ C << "OOC: [keyname][holder.fakekey ? "/([holder.fakekey])" : ""]: [msg]" else C << "OOC: [holder.fakekey ? holder.fakekey : key]: [msg]" - else + else if(!C.prefs.ignoring.Find(key)) C << "OOC: [keyname]: [msg]" /proc/toggle_ooc(toggle = null) @@ -138,3 +138,23 @@ var/global/normal_ooc_colour = "#002eb8" return show_note(usr, null, 1) + +/client/proc/ignore_key(client) + var/client/C = client + prefs.ignoring ^= C.key + src << "You are [prefs.ignoring.Find(src.key) ? "now" : "no longer"] ignoring [C.key] on the OOC channel." + prefs.save_preferences() + +/client/verb/select_ignore() + set name = "Ignore" + set category = "OOC" + set desc ="Ignore a player's messages on the OOC channel" + + var/list/keys = list() + for(var/mob/M in player_list) + if(M.client != src) + keys += M.client + var/selection = input("Please, select a player!", "Ignore", null, null) as null|anything in sortKey(keys) + if(!selection) + return + ignore_key(selection) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index e8e18041d66..617c452c178 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -94,6 +94,8 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set var/unlock_content = 0 + var/list/ignoring = list() + /datum/preferences/New(client/C) blood_type = random_blood_type() custom_names["ai"] = pick(ai_names) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 8940823d8d7..1a7aeb92a45 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -106,6 +106,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["toggles"] >> toggles S["ghost_form"] >> ghost_form S["preferred_map"] >> preferred_map + S["ignoring"] >> ignoring //try to fix any outdated data if necessary if(needs_update >= 0) @@ -140,6 +141,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["chat_toggles"] << chat_toggles S["ghost_form"] << ghost_form S["preferred_map"] << preferred_map + S["ignoring"] << ignoring return 1 diff --git a/html/changelogs/Jordie0608 ignore.yml b/html/changelogs/Jordie0608 ignore.yml new file mode 100644 index 00000000000..2e0f81fc8a1 --- /dev/null +++ b/html/changelogs/Jordie0608 ignore.yml @@ -0,0 +1,5 @@ +author: Jordie0608 +delete-after: True + +changes: + - rscadd: "You can now selectively mute non-admin players from OOC with the Ignore verb in the OOC tab."