//..//addons/eventscripts/ich_swearfilter/es_ich_swearfilter.txt //To load: // es_load ich_swearfilter //For autoload when you resart server // add es_load ich_swearfilter to autoexec.cfg block config { swear_clear_on_disconnect 1 //If on player swear counts will be zerod when they disconnect swear_limit 4 //If a player swears this many times, they are banned swear_warning "Swearing is not permitted on this server!" swear_bantime 60 //Time in minutes to ban a player for swearing swear_banip 1 //If set to 1 will also ban players IP address //These words will match partial matches es_keycreate swear_words asshole es_keycreate swear_words bitch es_keycreate swear_words fuck es_keycreate swear_words dick es_keycreate swear_words gay //These words will only match the word (notice the spaces) es_keycreate swear_words " niger " es_keycreate swear_words " ass " } block warning { if (server_var(swear_game) = cstrike) do { es_format swear_format "#default[Swear Filter] #lightgreenWarning #green%1 #lightgreen%2 (%3/%4)" event_var(es_username) server_var(swear_warning) server_var(swear_count) server_var(swear_limit) es_msg #multi server_var(swear_format) } else do { es_format swear_format "[Ichthys Swear Filter] Warning %1 %2 (%3/%4)" event_var(es_username) server_var(swear_warning) server_var(swear_count) server_var(swear_limit) es_msg server_var(swear_format) } } block load { es_xsetinfo swear_clear_on_disconnect 0 es_xsetinfo swear_limit 0 es_xsetinfo swear_warning 0 es_xsetinfo swear_bantime 0 es_xsetinfo swear_banip 0 es_xsetinfo swear_format 0 es_xsetinfo swear_exists 0 es_xsetinfo swear_count 0 es_xsetinfo swear_version "1.6" es_xmakepublic swear_version es_xkeygroupcreate swear_words es_xkeygroupcreate swear_users es_xsetinfo swear_game 0 es_xgetgame swear_game if ("Counter-Strike" in server_var(swear_game)) then es_xsetinfo swear_game "cstrike" es_xdoblock ich_swearfilter/config } block unload { es_keygroupdelete swear_words es_keygroupdelete swear_users } //event player_say event es_player_chat { es_format swear_format " %1 " event_var(text) es_xstring swear_format replace A a es_xstring swear_format replace B b es_xstring swear_format replace C c es_xstring swear_format replace D d es_xstring swear_format replace E e es_xstring swear_format replace F f es_xstring swear_format replace G g es_xstring swear_format replace H h es_xstring swear_format replace I i es_xstring swear_format replace J j es_xstring swear_format replace K k es_xstring swear_format replace L l es_xstring swear_format replace M m es_xstring swear_format replace N n es_xstring swear_format replace O o es_xstring swear_format replace P p es_xstring swear_format replace Q w es_xstring swear_format replace R r es_xstring swear_format replace S s es_xstring swear_format replace T t es_xstring swear_format replace U u es_xstring swear_format replace V v es_xstring swear_format replace W w es_xstring swear_format replace X x es_xstring swear_format replace Y y es_xstring swear_format replace Z z es_xforeachkey word in swear_words "es_xdoblock ich_swearfilter/fek" } block fek { if (server_var(word) in server_var(swear_format)) do { es_xsetinfo swear_exists 0 es_xsetinfo swear_count 0 es_exists swear_exists key swear_users event_var(es_steamid) if (server_var(swear_exists) = 0) do { es_keycreate swear_users event_var(es_steamid) } else do { es_keygetvalue swear_count swear_users event_var(es_steamid) count } es_xmath swear_count + 1 es_keysetvalue swear_users event_var(es_steamid) count server_var(swear_count) if (server_var(swear_count) >= server_var(swear_limit)) do { if (server_var(swear_banip) = 1) do { es_keygetvalue swear_ip swear_users event_var(userid) ip es_soon addip server_var(swear_bantime) server_var(swear_ip) } es_keydelete swear_users event_var(es_steamid) es banid server_var(swear_bantime) event_var(userid) kick } else do { es_doblock ich_swearfilter/warning } } } event player_connect { es_xsetinfo swear_ip 0 es_token swear_ip event_var(address) 1 : es_keycreate swear_users event_var(userid) es_keysetvalue swear_users event_var(userid) ip server_var(swear_ip) } event player_disconnect { if (server_var(swear_clear_on_disconnect) = 1) do { es_exists swear_exists key swear_users event_var(es_steamid) if (server_var(swear_exists) = 1) then es_xkeydelete swear_users event_var(es_steamid) } //Remove key used only to track players IP address es_exists swear_exists key swear_users event_var(userid) if (server_var(swear_exists) = 1) then es_xkeydelete swear_users event_var(userid) }