Merge pull request #14464 from GrayRachnid/filter
Enables the in character filter for server configuration
This commit is contained in:
@@ -87,12 +87,15 @@
|
|||||||
|
|
||||||
//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam
|
//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam
|
||||||
#define MAX_MESSAGE_LEN 4096 //Citadel edit: What's the WORST that could happen?
|
#define MAX_MESSAGE_LEN 4096 //Citadel edit: What's the WORST that could happen?
|
||||||
#define MAX_FLAVOR_LEN 4096
|
#define MAX_FLAVOR_LEN 4096
|
||||||
#define MAX_TASTE_LEN 40 //lick... vore... ew...
|
#define MAX_TASTE_LEN 40 //lick... vore... ew...
|
||||||
#define MAX_NAME_LEN 42
|
#define MAX_NAME_LEN 42
|
||||||
#define MAX_BROADCAST_LEN 512
|
#define MAX_BROADCAST_LEN 512
|
||||||
#define MAX_CHARTER_LEN 80
|
#define MAX_CHARTER_LEN 80
|
||||||
|
|
||||||
|
// Is something in the IC chat filter? This is config dependent.
|
||||||
|
#define CHAT_FILTER_CHECK(T) (config.ic_filter_regex && findtext(T, config.ic_filter_regex))
|
||||||
|
|
||||||
// Audio/Visual Flags. Used to determine what sense are required to notice a message.
|
// Audio/Visual Flags. Used to determine what sense are required to notice a message.
|
||||||
#define MSG_VISUAL (1<<0)
|
#define MSG_VISUAL (1<<0)
|
||||||
#define MSG_AUDIBLE (1<<1)
|
#define MSG_AUDIBLE (1<<1)
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
var/motd
|
var/motd
|
||||||
// var/policy
|
// var/policy
|
||||||
|
|
||||||
// var/static/regex/ic_filter_regex
|
var/static/regex/ic_filter_regex
|
||||||
|
|
||||||
/datum/controller/configuration/proc/admin_reload()
|
/datum/controller/configuration/proc/admin_reload()
|
||||||
if(IsAdminAdvancedProcCall())
|
if(IsAdminAdvancedProcCall())
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
loadmaplist(CONFIG_MAPS_FILE)
|
loadmaplist(CONFIG_MAPS_FILE)
|
||||||
LoadMOTD()
|
LoadMOTD()
|
||||||
// LoadPolicy()
|
// LoadPolicy()
|
||||||
// LoadChatFilter()
|
LoadChatFilter()
|
||||||
|
|
||||||
if (Master)
|
if (Master)
|
||||||
Master.OnConfigLoad()
|
Master.OnConfigLoad()
|
||||||
@@ -486,7 +486,7 @@ Example config:
|
|||||||
continue
|
continue
|
||||||
runnable_modes[M] = probabilities[M.config_tag]
|
runnable_modes[M] = probabilities[M.config_tag]
|
||||||
return runnable_modes
|
return runnable_modes
|
||||||
/*
|
|
||||||
/datum/controller/configuration/proc/LoadChatFilter()
|
/datum/controller/configuration/proc/LoadChatFilter()
|
||||||
var/list/in_character_filter = list()
|
var/list/in_character_filter = list()
|
||||||
if(!fexists("[directory]/in_character_filter.txt"))
|
if(!fexists("[directory]/in_character_filter.txt"))
|
||||||
@@ -499,7 +499,7 @@ Example config:
|
|||||||
continue
|
continue
|
||||||
in_character_filter += REGEX_QUOTE(line)
|
in_character_filter += REGEX_QUOTE(line)
|
||||||
ic_filter_regex = in_character_filter.len ? regex("\\b([jointext(in_character_filter, "|")])\\b", "i") : null
|
ic_filter_regex = in_character_filter.len ? regex("\\b([jointext(in_character_filter, "|")])\\b", "i") : null
|
||||||
*/
|
|
||||||
//Message admins when you can.
|
//Message admins when you can.
|
||||||
/datum/controller/configuration/proc/DelayedMessageAdmins(text)
|
/datum/controller/configuration/proc/DelayedMessageAdmins(text)
|
||||||
addtimer(CALLBACK(GLOBAL_PROC, /proc/message_admins, text), 0)
|
addtimer(CALLBACK(GLOBAL_PROC, /proc/message_admins, text), 0)
|
||||||
|
|||||||
@@ -90,11 +90,11 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
|
|||||||
var/static/list/one_character_prefix = list(MODE_HEADSET = TRUE, MODE_ROBOT = TRUE, MODE_WHISPER = TRUE)
|
var/static/list/one_character_prefix = list(MODE_HEADSET = TRUE, MODE_ROBOT = TRUE, MODE_WHISPER = TRUE)
|
||||||
|
|
||||||
var/ic_blocked = FALSE
|
var/ic_blocked = FALSE
|
||||||
/*
|
|
||||||
if(client && !forced && config.ic_filter_regex && findtext(message, config.ic_filter_regex))
|
if(client && !forced && CHAT_FILTER_CHECK(message))
|
||||||
//The filter doesn't act on the sanitized message, but the raw message.
|
//The filter doesn't act on the sanitized message, but the raw message.
|
||||||
ic_blocked = TRUE
|
ic_blocked = TRUE
|
||||||
*/
|
|
||||||
if(sanitize)
|
if(sanitize)
|
||||||
message = trim(copytext_char(sanitize(message), 1, MAX_MESSAGE_LEN))
|
message = trim(copytext_char(sanitize(message), 1, MAX_MESSAGE_LEN))
|
||||||
if(!message || message == "")
|
if(!message || message == "")
|
||||||
@@ -103,6 +103,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
|
|||||||
if(ic_blocked)
|
if(ic_blocked)
|
||||||
//The filter warning message shows the sanitized message though.
|
//The filter warning message shows the sanitized message though.
|
||||||
to_chat(src, "<span class='warning'>That message contained a word prohibited in IC chat! Consider reviewing the server rules.\n<span replaceRegex='show_filtered_ic_chat'>\"[message]\"</span></span>")
|
to_chat(src, "<span class='warning'>That message contained a word prohibited in IC chat! Consider reviewing the server rules.\n<span replaceRegex='show_filtered_ic_chat'>\"[message]\"</span></span>")
|
||||||
|
SSblackbox.record_feedback("tally", "ic_blocked_words", 1, lowertext(config.ic_filter_regex.match))
|
||||||
return
|
return
|
||||||
|
|
||||||
var/datum/saymode/saymode = SSradio.saymodes[talk_key]
|
var/datum/saymode/saymode = SSradio.saymodes[talk_key]
|
||||||
@@ -333,7 +334,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
|
|||||||
var/obj/item/bodypart/rightarm = get_bodypart(BODY_ZONE_R_ARM)
|
var/obj/item/bodypart/rightarm = get_bodypart(BODY_ZONE_R_ARM)
|
||||||
if(HAS_TRAIT(src, TRAIT_MUTE) && get_selected_language() != /datum/language/signlanguage)
|
if(HAS_TRAIT(src, TRAIT_MUTE) && get_selected_language() != /datum/language/signlanguage)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
if (get_selected_language() == /datum/language/signlanguage)
|
if (get_selected_language() == /datum/language/signlanguage)
|
||||||
var/left_disabled = FALSE
|
var/left_disabled = FALSE
|
||||||
var/right_disabled = FALSE
|
var/right_disabled = FALSE
|
||||||
|
|||||||
Reference in New Issue
Block a user