﻿/// EarlyDeveloped's Basic Grammar and Spelling Correction
//  [4/1/2009] Version 1.0.0 BETA - Counter-Strike: Source
//
// ****************************************************************
// Requirements:
//
// ****************************************************************
//
// • ESS 1.5+ (EventScripts Shell aka EventScripts Classic and ES 1.x)
// http://mattie.info/downloads/mattie_eventscripts.zip
//
// • EST v.420+ (EventScripts Tools aka ES_Tools)
// http://forums.mattie.info/cs/forums/download.php?id=889
//
// ****************************************************************
// Version log:
//
// ****************************************************************
//
// [24/3/09] First public version!
// + Features:
//    • Adding a period/question mark at the end of each sentence
//    • Anti spam
//    • Auto capitilizing
//    • Expand abbreviations
//    • Name filter
//    • Spelling correction
//    • Text filter
//
// ****************************************************************
// Special thanks to:
//
// ****************************************************************
//
// • Infamous
// • Pandora
// • Mattie's EventScripts forums


block bgsc_configurations
{
   // *** TEXT FILTER ***
   //
   // Replaces every word you define with [CENSORED].
   // Every word should be separated by a comma.
   es_xset bgsc_chatfilter "arse,ass,asshole,bastard,bitch,cunt,damn,fuck,motherfucker,nigger,nigga,shit,wanker,whore"

   // *** NAME FILTER ***
   //
   // Kicks a player if their name
   // contain any of the given words.
   es_xset bgsc_namefilter "nigger,nigga"

   // *** ABBREVIATIONS ***
   //
   // Whether to expand abbreviations or not.
   // 0 = Don't expand abbreviations
   // 1 = Expand abbreviations
   es_xset bgsc_abbreviations "1"

   // *** ANTI SPAM ***
   //
   // The time a user have to wait between
   // typing messages.
   es_xset bgsc_antispam "0.8"
}

block load
{
   es_xdoblock bgsc/bgsc_configurations
   es_xdoblock bgsc/bgsc_init

   es_xkeygroupcreate bgsc_hook
   foreach player bgsc_allplayers #all "es_keycreate bgsc_hook server_var(bgsc_allplayers);es_keysetvalue bgsc_hook server_var(bgsc_allplayers) bgsc_antispam 0;es_keysetvalue bgsc_hook server_var(bgsc_allplayers) bgsc_register 1"
   est_muteplayer #a

   es_xmsg #multi #greenBGSC # #defaultThePwned's #greenBasic Grammar and Spelling Correction #defaultmod loaded!

   es_xset bgsc_version 1.0.0a
   es_xmakepublic bgsc_version
}

block unload
{
   es_xkeygroupdelete bgsc_hook
   est_unmuteplayer #a
}

block bgsc_init
{
   es_xset bgsc_check_var 0
   es_xset bgsc_command_exists 0
   es_xset bgsc_get_key 0
   es_xset bgsc_get_key2 0
   es_xset bgsc_key_exists 0
   es_xset bgsc_name 0
   es_xset bgsc_text_length 0
   es_xset bgsc_text_length2 0
   es_xset bgsc_text_length3 0
   es_xset bgsc_text_length4 0
   es_xset bgsc_text_length5 0
   es_xset bgsc_text_length6 0
   es_xset bgsc_text_length7 0
   es_xset bgsc_text_rest 0
   es_xset bgsc_text_rest2 0
   es_xset bgsc_text_all 0
   es_xset bgsc_token 0
   es_xset bgsc_token2 0
   es_xset bgsc_token3 0
   es_xset bgsc_token4 0
   es_xset bgsc_token5 0
   es_xset bgsc_token6 0
   es_xset bgsc_tokens 0
   es_xset bgsc_tokens2 0
   es_xset bgsc_tokens3 0
   es_xset bgsc_tokens4 0
   es_xset bgsc_verbs "are,can,could,does,do,did,have,is,r,shall,should,was,were,will,would,y"
}

block bgsc_replace
{
   es_xstring bgsc_text replace " aint " " ain't "
   es_xstring bgsc_text replace " alot " " a lot "
   es_xstring bgsc_text replace " atleast " " at least "
   es_xstring bgsc_text replace " bai " " bye "
   es_xstring bgsc_text replace " boi " " boy "
   es_xstring bgsc_text replace " cant" " can't "
   es_xstring bgsc_text replace " da " " the "
   es_xstring bgsc_text replace " dat " " that "
   es_xstring bgsc_text replace " dont " " don't "
   es_xstring bgsc_text replace " dood " " dude "
   es_xstring bgsc_text replace " evar " " ever "
   es_xstring bgsc_text replace " gawd " " god "
   es_xstring bgsc_text replace " gimme " " give me "
   es_xstring bgsc_text replace " gonna " " going to "
   es_xstring bgsc_text replace " gotta " " got to "
   es_xstring bgsc_text replace " hes " " he's "
   es_xstring bgsc_text replace " hows " " how's "
   es_xstring bgsc_text replace " i " " I "
   es_xstring bgsc_text replace " im " " I'm "
   es_xstring bgsc_text replace " i'm " " I'm "
   es_xstring bgsc_text replace " ill " " I'll "
   es_xstring bgsc_text replace " i'll " " I'll "
   es_xstring bgsc_text replace " kewl " " cool "
   es_xstring bgsc_text replace " kno " " know "
   es_xstring bgsc_text replace " kool " " cool "
   es_xstring bgsc_text replace " itd " " it'd "
   es_xstring bgsc_text replace " liek " " like "
   es_xstring bgsc_text replace " luv " " love "
   es_xstring bgsc_text replace " nah " " no "
   es_xstring bgsc_text replace " neva " " never "
   es_xstring bgsc_text replace " nevah " " never "
   es_xstring bgsc_text replace " noe " " know "
   es_xstring bgsc_text replace " phail " " fail "
   es_xstring bgsc_text replace " rite " " right "
   es_xstring bgsc_text replace " shes " " she's "
   es_xstring bgsc_text replace " teh " " the "
   es_xstring bgsc_text replace " thats " " that's "
   es_xstring bgsc_text replace " theyll " " they'll "
   es_xstring bgsc_text replace " theyre " " they're "
   es_xstring bgsc_text replace " wassup " " what's up "
   es_xstring bgsc_text replace " wasup " " what's up "
   es_xstring bgsc_text replace " wanna " " want to "
   es_xstring bgsc_text replace " wat " " what "
   es_xstring bgsc_text replace " whats " " what's "
   es_xstring bgsc_text replace " wut " " what "
   es_xstring bgsc_text replace " yall " " you all "
   es_xstring bgsc_text replace " youll " " you'll "
   es_xstring bgsc_text replace " youd " " you'd "
   es_xstring bgsc_text replace " yea " " yeah "
   es_xstring bgsc_text replace " youre " " you're "

   es_xstring bgsc_text replace " a hour " " an hour "
   es_xstring bgsc_text replace " an user " " a user "
   es_xstring bgsc_text replace " he am " " he is "
   es_xstring bgsc_text replace " he are " " he is "
   es_xstring bgsc_text replace " I is " " I am "
   es_xstring bgsc_text replace " I does " " I do "
   es_xstring bgsc_text replace " I doesn't " " I don't "
   es_xstring bgsc_text replace " it am " " it is "
   es_xstring bgsc_text replace " it are " " she is "
   es_xstring bgsc_text replace " she am " " she is "
   es_xstring bgsc_text replace " she are " " she is "
   es_xstring bgsc_text replace " they am " " they are "
   es_xstring bgsc_text replace " they is " " they are "
   es_xstring bgsc_text replace " they does " " they do "
   es_xstring bgsc_text replace " they doesn't " " they don't "
   es_xstring bgsc_text replace " we am " " we are "
   es_xstring bgsc_text replace " we is " " we are "
   es_xstring bgsc_text replace " we does " " we do "
   es_xstring bgsc_text replace " we doesn't " " we don't "
   es_xstring bgsc_text replace " you am " " you are "
   es_xstring bgsc_text replace " you is " " you are "
   es_xstring bgsc_text replace " you does " " you do "
   es_xstring bgsc_text replace " you doesn't " " you don't "
   es_xstring bgsc_text replace " привед " " привет "
   ifx true(bgsc_abbreviations)
   {
      es_xdoblock bgsc/bgsc_abbreviations
   }
   else do
   {
      es_xdoblock bgsc/bgsc_chatfilter
   }
}

block bgsc_abbreviations
{
   es_xstring bgsc_text replace " a$$ " " ass "
   es_xstring bgsc_text replace " afk " " away from keyboard "
   es_xstring bgsc_text replace " any1 " " anyone "
   es_xstring bgsc_text replace " asap " " as soon as possible "
   es_xstring bgsc_text replace " atm " " at the moment "
   es_xstring bgsc_text replace " b " " be "
   es_xstring bgsc_text replace " b4 " " before "
   es_xstring bgsc_text replace " bbl " " be back later "
   es_xstring bgsc_text replace " bcos " " because "
   es_xstring bgsc_text replace " bcoz " " because "
   es_xstring bgsc_text replace " bcuz " " because "
   es_xstring bgsc_text replace " bk " " back "
   es_xstring bgsc_text replace " brb " " be right back "
   es_xstring bgsc_text replace " bro " " brother "
   es_xstring bgsc_text replace " btw " " by the way "
   es_xstring bgsc_text replace " cos " " because "
   es_xstring bgsc_text replace " coz " " because "
   es_xstring bgsc_text replace " css " " Counter-Strike: Source "
   es_xstring bgsc_text replace " cs:s " " Counter-Strike: Source "
   es_xstring bgsc_text replace " cu " " see you "
   es_xstring bgsc_text replace " cud " " could "
   es_xstring bgsc_text replace " cuz " " because "
   es_xstring bgsc_text replace " etc " " et cetera "
   es_xstring bgsc_text replace " faq " " frequently asked question "
   es_xstring bgsc_text replace " ffs " " for fuck sake "
   es_xstring bgsc_text replace " ftl " " for the lose "
   es_xstring bgsc_text replace " ftp " " file transfer protocol "
   es_xstring bgsc_text replace " ftw " " for the win "
   es_xstring bgsc_text replace " fu " " fuck you "
   es_xstring bgsc_text replace " fyi " " for your information "
   es_xstring bgsc_text replace " g2g " " got to go "
   es_xstring bgsc_text replace " gg " " good game "
   es_xstring bgsc_text replace " gj " " good job "
   es_xstring bgsc_text replace " gl " " good luck "
   es_xstring bgsc_text replace " glhf " " good luck have fun "
   es_xstring bgsc_text replace " gr8 " " great "
   es_xstring bgsc_text replace " grats " " congratulations "
   es_xstring bgsc_text replace " gratz " " congratulations "
   es_xstring bgsc_text replace " gtfo " " get the fuck out "
   es_xstring bgsc_text replace " gtg " " got to go "
   es_xstring bgsc_text replace " h8 " " hate "
   es_xstring bgsc_text replace " hf " " have fun "
   es_xstring bgsc_text replace " ic " " I see "
   es_xstring bgsc_text replace " idc " " I don't care "
   es_xstring bgsc_text replace " idk " " I don't know "
   es_xstring bgsc_text replace " ily " " I love you "
   es_xstring bgsc_text replace " imo " " in my opinion "
   es_xstring bgsc_text replace " jk " " just kidding "
   es_xstring bgsc_text replace " k " " okay "
   es_xstring bgsc_text replace " kk " " okay "
   es_xstring bgsc_text replace " irl " " in real life "
   es_xstring bgsc_text replace " l4d " " Left 4 Dead "
   es_xstring bgsc_text replace " l8 " " late "
   es_xstring bgsc_text replace " lil " " little "
   es_xstring bgsc_text replace " lol " " laughing out loud "
   es_xstring bgsc_text replace " lmao " " laughing my ass off "
   es_xstring bgsc_text replace " me2 " " me too "
   es_xstring bgsc_text replace " m8 " " mate "
   es_xstring bgsc_text replace " motd " " message of the day "
   es_xstring bgsc_text replace " msg " " message "
   es_xstring bgsc_text replace " n " " and "
   es_xstring bgsc_text replace " n1 " " nice one "
   es_xstring bgsc_text replace " n8 " " night "
   es_xstring bgsc_text replace " no1 " " no one "
   es_xstring bgsc_text replace " np " " no problem "
   es_xstring bgsc_text replace " ns " " nice shot "
   es_xstring bgsc_text replace " nt " " nice try "
   es_xstring bgsc_text replace " nuff " " enough "
   es_xstring bgsc_text replace " nvm " " nevermind "
   es_xstring bgsc_text replace " lol " " laughing out loud "
   es_xstring bgsc_text replace " omg " " oh my god "
   es_xstring bgsc_text replace " omw " " on my way "
   es_xstring bgsc_text replace " orly " " oh really "
   es_xstring bgsc_text replace " ot " " off topic "
   es_xstring bgsc_text replace " pic " " picture "
   es_xstring bgsc_text replace " pl0x " " please "
   es_xstring bgsc_text replace " pl8 " " plate "
   es_xstring bgsc_text replace " pls " " please "
   es_xstring bgsc_text replace " plz " " please "
   es_xstring bgsc_text replace " pm " " private message "
   es_xstring bgsc_text replace " ppl " " people "
   es_xstring bgsc_text replace " pro " " professional "
   es_xstring bgsc_text replace " r " " are "
   es_xstring bgsc_text replace " rl " " real life "
   es_xstring bgsc_text replace " rly " " really "
   es_xstring bgsc_text replace " rofl " " rolling on floor laughing "
   es_xstring bgsc_text replace " roflmao " " rolling on floor laughing my ass off "
   es_xstring bgsc_text replace " srsly " " seriously "
   es_xstring bgsc_text replace " sry " " sorry "
   es_xstring bgsc_text replace " stfu " " shut the fuck up "
   es_xstring bgsc_text replace " sup " " what's up "
   es_xstring bgsc_text replace " tc " " take care "
   es_xstring bgsc_text replace " tbh " " to be honest "
   es_xstring bgsc_text replace " tho " " though "
   es_xstring bgsc_text replace " thx " " thanks "
   es_xstring bgsc_text replace " ty " " thank you "
   es_xstring bgsc_text replace " tyvm " " thank you very much "
   es_xstring bgsc_text replace " u " " you "
   es_xstring bgsc_text replace " u2 " " you too "
   es_xstring bgsc_text replace " ur " " your "
   es_xstring bgsc_text replace " urs " " yours "
   es_xstring bgsc_text replace " uve " " you've "
   es_xstring bgsc_text replace " y " " why "
   es_xstring bgsc_text replace " yt " " you there "
   es_xstring bgsc_text replace " yw " " you're welcome "
   es_xstring bgsc_text replace " w/ " " with "
   es_xstring bgsc_text replace " w8 " " wait "
   es_xstring bgsc_text replace " wb " " welcome back "
   es_xstring bgsc_text replace " w/e " " whatever "
   es_xstring bgsc_text replace " w/out " " without "
   es_xstring bgsc_text replace " wtf " " what the fuck "
   es_xdoblock bgsc/bgsc_capitilize
}

block bgsc_capitilize
{
   es_set bgsc_text_first server_var(bgsc_text)
   es_xstring bgsc_text_first section 0 1
   forcecase bgsc_text_first upper
   es_xdoblock bgsc/bgsc_punctuation
}

block bgsc_punctuation
{
   es_set bgsc_text_end server_var(bgsc_text)
   es_strlen bgsc_text_length server_var(bgsc_text)
   es_xcopy bgsc_text_length2 bgsc_text_length
   es_xmath bgsc_text_length2 - 1
   es_string bgsc_text_end section server_var(bgsc_text_length2) server_var(bgsc_text_length)
   if (server_var(bgsc_text_end) != ?) do
   {
      if (server_var(bgsc_text_end) != !) do
      {
         if (server_var(bgsc_text_end) != .) do
         {
            es_token bgsc_tokens3 server_var(bgsc_text) 0
            ifx parse("bgsc_tokens3 > 1") do
            {
               es_xset bgsc_token_number2 0
               es_xset bgsc_position 0
               es_token bgsc_token5 server_var(bgsc_text) 1
               es_token bgsc_tokens server_var(bgsc_verbs) 0 ,
               es_xdoblock bgsc/bgsc_questionmarks
            }
            else do
            {
               es_token bgsc_token5 server_var(bgsc_text) 1
               if (server_var(bgsc_token5) in "what,when,where,who,why,how") do
               {
                  es_xformatv bgsc_text "%1?" bgsc_text
                  es_xset bgsc_text_end ?
               }
               if (server_var(bgsc_text_end) != ?) do
               {
                  es_xformatv bgsc_text "%1." bgsc_text
               }
               es_xmath bgsc_text_length + 1
               es_xdoblock bgsc/bgsc_createmessage
            }
         }
         else es_xdoblock bgsc/bgsc_createmessage
      }
      else es_xdoblock bgsc/bgsc_createmessage
   }
   else es_xdoblock bgsc/bgsc_createmessage
}

block bgsc_questionmarks
{
   es_xmath bgsc_token_number2 + 1
   ifx parse("bgsc_token_number2 <= bgsc_tokens") do
   {
      es_token bgsc_token server_var(bgsc_verbs) server_var(bgsc_token_number2) ,
      if (server_var(bgsc_token) == server_var(bgsc_token5)) do
      {
         ifx false(bgsc_position) do
         {
            es_xformatv bgsc_text "%1?" bgsc_text
            es_xset bgsc_text_end ?
         }
         else do
         {
            es_token bgsc_token5 server_var(bgsc_text) 1
            if (server_var(bgsc_token5) == what) do
            {
               es_xformatv bgsc_text "%1?" bgsc_text
               es_xset bgsc_text_end ?
            }
            if (server_var(bgsc_token5) == when) do
            {
               es_xformatv bgsc_text "%1?" bgsc_text
               es_xset bgsc_text_end ?
            }
            if (server_var(bgsc_token5) == where) do
            {
               es_xformatv bgsc_text "%1?" bgsc_text
               es_xset bgsc_text_end ?
            }
            if (server_var(bgsc_token5) == who) do
            {
               es_xformatv bgsc_text "%1?" bgsc_text
               es_xset bgsc_text_end ?
            }
            if (server_var(bgsc_token5) == why) do
            {
               es_xformatv bgsc_text "%1?" bgsc_text
               es_xset bgsc_text_end ?
            }
            if (server_var(bgsc_token5) == how) do
            {
               es_xformatv bgsc_text "%1?" bgsc_text
               es_xset bgsc_text_end ?
            }
            es_token bgsc_token5 server_var(bgsc_text) 2
         }
      }
      es_xdoblock bgsc/bgsc_questionmarks
   }
   else do
   {
      ifx false(bgsc_position) do
      {
         es_xset bgsc_position 1
         es_xset bgsc_token_number2 0
         es_token bgsc_token5 server_var(bgsc_text) 2
         es_xdoblock bgsc/bgsc_questionmarks
      }
      else do
      {
         if (server_var(bgsc_text_end) != ?) do
         {
            es_xformatv bgsc_text "%1." bgsc_text
         }
         es_xmath bgsc_text_length + 1
         es_xdoblock bgsc/bgsc_createmessage
      }
   }
}



block bgsc_createmessage
{
   es_xusermsg create bgsc_saytext2_message SayText2
   es_usermsg write byte bgsc_saytext2_message event_var(es_userindex)
   es_xusermsg write byte bgsc_saytext2_message True
   ifx parse("bgsc_text_length > 1") do
   {
      es_string bgsc_text section 1 server_var(bgsc_text_length)
      es_xformatv bgsc_text_all "%1%2" bgsc_text_first bgsc_text
      es_xcopy bgsc_text_first bgsc_text_all
   }
   if (event_var(es_userdead) == 1) do
   {
      if (event_var(teamonly) == 1) do
      {
         if (event_var(es_userteam) == 1) do
         {
            es_xset bgsc_dead_message "(Spectator) %s1 : %s2"
            es_xset bgsc_targetidentifier "#un"
         }
         if (event_var(es_userteam) == 2) do
         {
            es_xset bgsc_dead_message "*DEAD*(Terrorist) %s1 : %s2"
            es_xset bgsc_targetidentifier "#t#dead"
         }
         if (event_var(es_userteam) == 3) do
         {
            es_xset bgsc_dead_message "*DEAD*(Counter-Terrorist) %s1 : %s2"
            es_xset bgsc_targetidentifier "#ct#dead"
         }
      }
      else do
      {
         if (event_var(es_userteam) == 1) do
         {
            es_xset bgsc_dead_message "*SPEC* %s1 : %s2"
            es_xset bgsc_targetidentifier "#dead"
         }
         if (event_var(es_userteam) > 1) do
         {
            es_xset bgsc_dead_message "*DEAD* %s1 : %s2"
            es_xset bgsc_targetidentifier "#dead"
         }
      }
   }
   else do
   {
      if (event_var(teamonly) == 1) do
      {
         if (event_var(es_userteam) == 2) do
         {
            es_xset bgsc_dead_message "(Terrorist) %s1 : %s2"
            es_xset bgsc_targetidentifier "#t"
         }
         if (event_var(es_userteam) == 3) do
         {
            es_xset bgsc_dead_message "(Counter-Terrorist) %s1 : %s2"
            es_xset bgsc_targetidentifier "#ct"
         }
      }
      else do
      {
         if (event_var(es_userteam) > 1) do
         {
            es_xset bgsc_dead_message "%s1 : %s2"
            es_xset bgsc_targetidentifier "#all"
         }
      }
   }
   es_xdoblock bgsc/bgsc_replace2
}

block bgsc_replace2
{
   es_set bgsc_token4 server_var(bgsc_text_first)
   es_token bgsc_tokens2 server_var(bgsc_text_first) 0
   es_token bgsc_token2 server_var(bgsc_text_first) 1
   es_token bgsc_token3 server_var(bgsc_text_first) server_var(bgsc_tokens2)
   es_strlen bgsc_text_length3 server_var(bgsc_token2)
   es_strlen bgsc_text_length4 server_var(bgsc_token3)
   es_strlen bgsc_text_length5 server_var(bgsc_text_first)
   es_math bgsc_text_length5 - server_var(bgsc_text_length4)
   es_string bgsc_token4 section server_var(bgsc_text_length3) server_var(bgsc_text_length5)
   ifx parse("bgsc_tokens2 > 1") do
   {
      es_xformatv bgsc_token2 "%1 " bgsc_token2

      ifx parse("bgsc_text_length3 == 2") do
      {
         es_xstring bgsc_token2 replace "Da " "The "
         es_xstring bgsc_token2 replace "Im " "I'm "
      }
      ifx parse("bgsc_text_length3 == 3") do
      {
         es_xstring bgsc_token2 replace "Bai " "Bye "
         es_xstring bgsc_token2 replace "Boi " "Boy "
         es_xstring bgsc_token2 replace "Dat " "That "
         es_xstring bgsc_token2 replace "Hes " "He's "
         es_xstring bgsc_token2 replace "Itd " "It'd "
         es_xstring bgsc_token2 replace "Kno " "Know "
         es_xstring bgsc_token2 replace "Luv " "Love "
         es_xstring bgsc_token2 replace "Nah " "No "
         es_xstring bgsc_token2 replace "Noe " "Know "
         es_xstring bgsc_token2 replace "Teh " "The "
         es_xstring bgsc_token2 replace "Yea " "Yeah "
         es_xstring bgsc_token2 replace "Wat " "What "
         es_xstring bgsc_token2 replace "Wut " "What "
      }
      ifx parse("bgsc_text_length3 == 4") do
      {
         es_xstring bgsc_token2 replace "Aint " "Ain't "
         es_xstring bgsc_token2 replace "Alot " "A lot "
         es_xstring bgsc_token2 replace "Cant " "Can't "
         es_xstring bgsc_token2 replace "Dont " "Don't "
         es_xstring bgsc_token2 replace "Dood " "Dude "
         es_xstring bgsc_token2 replace "Evar " "Ever "
         es_xstring bgsc_token2 replace "Gawd " "God "
         es_xstring bgsc_token2 replace "Hows " "How's "
         es_xstring bgsc_token2 replace "Kewl " "Cool "
         es_xstring bgsc_token2 replace "Kool " "Cool "
         es_xstring bgsc_token2 replace "Liek " "Like "
         es_xstring bgsc_token2 replace "Neva " "Never "
         es_xstring bgsc_token2 replace "Rite " "Right "
         es_xstring bgsc_token2 replace "Shes " "She's "
         es_xstring bgsc_token2 replace "Yall " "You all "
         es_xstring bgsc_token2 replace "Youd " "You'd "
      }
      ifx parse("bgsc_text_length3 == 5") do
      {
         es_xstring bgsc_token2 replace "Gimme " "Give me "
         es_xstring bgsc_token2 replace "Gonna " "Going to "
         es_xstring bgsc_token2 replace "Gotta " "Got to "
         es_xstring bgsc_token2 replace "Nevah " "Never "
         es_xstring bgsc_token2 replace "Phail " "Fail "
         es_xstring bgsc_token2 replace "Thats " "That's "
         es_xstring bgsc_token2 replace "Wanna " "Want to "
         es_xstring bgsc_token2 replace "Wasup " "What's up "
         es_xstring bgsc_token2 replace "Whats " "What's "
         es_xstring bgsc_token2 replace "Youll " "You'll "
         es_xstring bgsc_token2 replace "Youre " "You're "
      }

      ifx parse("bgsc_text_length3 == 6") do
      {
         es_xstring bgsc_token2 replace "Theyll " "They'll "
         es_xstring bgsc_token2 replace "Theyre " "They're "
         es_xstring bgsc_token2 replace "Wassup " "What's up "
      }

      ifx parse("bgsc_text_length3 == 7") do
      {
         es_xstring bgsc_token2 replace "Atleast " "At least "
      }

      es_xformatv bgsc_token3 " %1" bgsc_token3
      ifx parse("bgsc_text_length4 == 3") do
      {
         es_xstring bgsc_token3 replace " da" " the"
         es_xstring bgsc_token3 replace " im" " I'm"
      }
      ifx parse("bgsc_text_length4 == 4") do
      {
         es_xstring bgsc_token3 replace " bai" " bye"
         es_xstring bgsc_token3 replace " boi" " boy"
         es_xstring bgsc_token3 replace " dat" " that"
         es_xstring bgsc_token3 replace " hes" " he's"
         es_xstring bgsc_token3 replace " itd" " it'd"
         es_xstring bgsc_token3 replace " kno" " know"
         es_xstring bgsc_token3 replace " luv" " love"
         es_xstring bgsc_token3 replace " nah" " no"
         es_xstring bgsc_token3 replace " noe" " know"
         es_xstring bgsc_token3 replace " teh" " the"
         es_xstring bgsc_token3 replace " wat" " what"
         es_xstring bgsc_token3 replace " wut" " what"
         es_xstring bgsc_token3 replace " yea" " yeah"
      }
      ifx parse("bgsc_text_length4 == 5") do
      {
         es_xstring bgsc_token3 replace " aint" " ain't"
         es_xstring bgsc_token3 replace " alot" " a lot"
         es_xstring bgsc_token3 replace " cant" " can't"
         es_xstring bgsc_token3 replace " dont" " don't"
         es_xstring bgsc_token3 replace " dood" " dude"
         es_xstring bgsc_token3 replace " evar" " ever"
         es_xstring bgsc_token3 replace " gawd" " god"
         es_xstring bgsc_token3 replace " hows" " how's"
         es_xstring bgsc_token3 replace " kewl" " cool"
         es_xstring bgsc_token3 replace " kool" " cool"
         es_xstring bgsc_token3 replace " liek" " like"
         es_xstring bgsc_token3 replace " neva" " never"
         es_xstring bgsc_token3 replace " rite" " right"
         es_xstring bgsc_token3 replace " shes" " she's"
         es_xstring bgsc_token3 replace " yall" " you all"
         es_xstring bgsc_token3 replace " youd" " you'd"
      }
      ifx parse("bgsc_text_length4 == 6") do
      {
         es_xstring bgsc_token3 replace " gimme" " give me"
         es_xstring bgsc_token3 replace " gonna" " going to"
         es_xstring bgsc_token3 replace " gotta" " got to"
         es_xstring bgsc_token3 replace " nevah" " never"
         es_xstring bgsc_token3 replace " phail" " fail"
         es_xstring bgsc_token3 replace " thats" " that's"
         es_xstring bgsc_token3 replace " wanna" " want to"
         es_xstring bgsc_token3 replace " wasup" " what's up"
         es_xstring bgsc_token3 replace " whats" " what's"
         es_xstring bgsc_token3 replace " youll" " you'll"
         es_xstring bgsc_token3 replace " youre" " you're"
      }

      ifx parse("bgsc_text_length4 == 7") do
      {
         es_xstring bgsc_token3 replace " theyll" " they'll"
         es_xstring bgsc_token3 replace " theyre" " they're"
         es_xstring bgsc_token3 replace " wassup" " what's up"
      }

      ifx parse("bgsc_text_length4 == 8") do
      {
         es_xstring bgsc_token3 replace " atleast" " at least"
      }

      ifx true(bgsc_abbreviations)
      {
         ifx parse("bgsc_text_length3 == 1") do
         {
            es_xstring bgsc_token2 replace "B " "Be "
            es_xstring bgsc_token2 replace "K " "Okay "
            es_xstring bgsc_token2 replace "N " "And "
            es_xstring bgsc_token2 replace "R " "Are "
            es_xstring bgsc_token2 replace "U " "You "
            es_xstring bgsc_token2 replace "Y " "Why "
         }
         ifx parse("bgsc_text_length3 == 2") do
         {
            es_xstring bgsc_token2 replace "B4 " "Before "
            es_xstring bgsc_token2 replace "Bk " "Back "
            es_xstring bgsc_token2 replace "Cu " "See you "
            es_xstring bgsc_token2 replace "Fu " "Fuck you "
            es_xstring bgsc_token2 replace "Gg " "Good game "
            es_xstring bgsc_token2 replace "Gj " "Good job "
            es_xstring bgsc_token2 replace "Gl " "Good luck "
            es_xstring bgsc_token2 replace "H8 " "Hate "
            es_xstring bgsc_token2 replace "Hf " "Have fun "
            es_xstring bgsc_token2 replace "Ic " "I see "
            es_xstring bgsc_token2 replace "Jk " "Just kidding "
            es_xstring bgsc_token2 replace "Kk " "Okay "
            es_xstring bgsc_token2 replace "L8 " "Late "
            es_xstring bgsc_token2 replace "M8 " "Mate "
            es_xstring bgsc_token2 replace "N1 " "Nice one "
            es_xstring bgsc_token2 replace "N8 " "Night "
            es_xstring bgsc_token2 replace "Np " "No problem "
            es_xstring bgsc_token2 replace "Ns " "Nice shot "
            es_xstring bgsc_token2 replace "Nt " "Nice try "
            es_xstring bgsc_token2 replace "Ot " "Off topic "
            es_xstring bgsc_token2 replace "Pm " "Private message "
            es_xstring bgsc_token2 replace "Rl " "Real life "
            es_xstring bgsc_token2 replace "Tc " "Take care "
            es_xstring bgsc_token2 replace "Ty " "Thank you "
            es_xstring bgsc_token2 replace "U2 " "You too "
            es_xstring bgsc_token2 replace "Ur " "Your "
            es_xstring bgsc_token2 replace "Yt " "You there "
            es_xstring bgsc_token2 replace "Yw " "You're welcome "
            es_xstring bgsc_token2 replace "W/ " "With "
            es_xstring bgsc_token2 replace "W8 " "Wait "
            es_xstring bgsc_token2 replace "Wb " "Welcome back "
         }
         ifx parse("bgsc_text_length3 == 3") do
         {
            es_xstring bgsc_token2 replace "A$$ " "Ass "
            es_xstring bgsc_token2 replace "Afk " "Away from keyboard "
            es_xstring bgsc_token2 replace "Atm " "At the moment "
            es_xstring bgsc_token2 replace "Bbl " "Be back later "
            es_xstring bgsc_token2 replace "Brb " "Be right back "
            es_xstring bgsc_token2 replace "Bro " "Brother "
            es_xstring bgsc_token2 replace "Btw " "By the way "
            es_xstring bgsc_token2 replace "Cos " "Because "
            es_xstring bgsc_token2 replace "Coz " "Because "
            es_xstring bgsc_token2 replace "Css " "Counter-Strike: Source "
            es_xstring bgsc_token2 replace "Cud " "Could "
            es_xstring bgsc_token2 replace "Cuz " "Because "
            es_xstring bgsc_token2 replace "Etc " "Et cetera "
            es_xstring bgsc_token2 replace "Faq " "Frequently asked question "
            es_xstring bgsc_token2 replace "Ffs " "For fuck sake "
            es_xstring bgsc_token2 replace "Ftl " "For the lose "
            es_xstring bgsc_token2 replace "Ftp " "File transfer protocol "
            es_xstring bgsc_token2 replace "Ftw " "For the win "
            es_xstring bgsc_token2 replace "Fyi " "For your information "
            es_xstring bgsc_token2 replace "G2g " "Got to go "
            es_xstring bgsc_token2 replace "Gr8 " "Great "
            es_xstring bgsc_token2 replace "Gtg " "Got to go "
            es_xstring bgsc_token2 replace "Idc " "I don't care "
            es_xstring bgsc_token2 replace "Idk " "I don't know "
            es_xstring bgsc_token2 replace "Ily " "I love you "
            es_xstring bgsc_token2 replace "Imo " "In my opinion "
            es_xstring bgsc_token2 replace "Irl " "In real life "
            es_xstring bgsc_token2 replace "L4d " "Left 4 Dead "
            es_xstring bgsc_token2 replace "Lil " "Little "
            es_xstring bgsc_token2 replace "Lol " "Laughing out loud "
            es_xstring bgsc_token2 replace "Me2 " "Me too "
            es_xstring bgsc_token2 replace "Msg " "Message "
            es_xstring bgsc_token2 replace "No1 " "No one "
            es_xstring bgsc_token2 replace "Nvm " "Nevermind "
            es_xstring bgsc_token2 replace "Lol " "Laughing out loud "
            es_xstring bgsc_token2 replace "Omg " "Oh my god "
            es_xstring bgsc_token2 replace "Omw " "On my way "
            es_xstring bgsc_token2 replace "Pic " "Picture "
            es_xstring bgsc_token2 replace "Pl8 " "Plate "
            es_xstring bgsc_token2 replace "Pls " "Please "
            es_xstring bgsc_token2 replace "Plz " "Please "
            es_xstring bgsc_token2 replace "Ppl " "People "
            es_xstring bgsc_token2 replace "Pro " "Professional "
            es_xstring bgsc_token2 replace "Rly " "Really "
            es_xstring bgsc_token2 replace "Sry " "Sorry "
            es_xstring bgsc_token2 replace "Sup " "What's up "
            es_xstring bgsc_token2 replace "Tbh " "To be honest "
            es_xstring bgsc_token2 replace "Tho " "Though "
            es_xstring bgsc_token2 replace "Thx " "Thanks "
            es_xstring bgsc_token2 replace "Urs " "Yours "
            es_xstring bgsc_token2 replace "Uve " "You've "
            es_xstring bgsc_token2 replace "W/e " "Whatever "
            es_xstring bgsc_token2 replace "Wtf " "What the fuck "
         }
         ifx parse("bgsc_text_length3 == 4") do
         {
            es_xstring bgsc_token2 replace "Any1 " "Anyone "
            es_xstring bgsc_token2 replace "Asap " "As soon as possible "
            es_xstring bgsc_token2 replace "Bcos " "Because "
            es_xstring bgsc_token2 replace "Bcoz " "Because "
            es_xstring bgsc_token2 replace "Bcuz " "Because "
            es_xstring bgsc_token2 replace "Cs:s " "Counter-Strike: Source "
            es_xstring bgsc_token2 replace "Glhf " "Good luck have fun "
            es_xstring bgsc_token2 replace "Gtfo " "Get the fuck out "
            es_xstring bgsc_token2 replace "Lmao " "Laughing my ass off "
            es_xstring bgsc_token2 replace "Motd " "Message of the day "
            es_xstring bgsc_token2 replace "Nuff " "Enough "
            es_xstring bgsc_token2 replace "Orly " "Oh really "
            es_xstring bgsc_token2 replace "Pl0x " "Please "
            es_xstring bgsc_token2 replace "Rofl " "Rolling on floor laughing "
            es_xstring bgsc_token2 replace "Stfu " "Shut the fuck up "
            es_xstring bgsc_token2 replace "Tyvm " "Thank you very much "
         }
         ifx parse("bgsc_text_length3 == 5") do
         {

            es_xstring bgsc_token2 replace "Grats " "Congratulations "
            es_xstring bgsc_token2 replace "Gratz " "Congratulations "
            es_xstring bgsc_token2 replace "Srsly " "Seriously "
            es_xstring bgsc_token2 replace "W/out " "Without "
         }
         ifx parse("bgsc_text_length3 == 7") do
         {
            es_xstring bgsc_token2 replace "Roflmao " "Rolling on floor laughing my ass off "
         }

         ifx parse("bgsc_text_length4 == 2") do
         {
            es_xstring bgsc_token3 replace " b" " be"
            es_xstring bgsc_token3 replace " k" " okay"
            es_xstring bgsc_token3 replace " n" " and"
            es_xstring bgsc_token3 replace " r" " are"
            es_xstring bgsc_token3 replace " u" " you"
            es_xstring bgsc_token3 replace " y" " why"
         }
         ifx parse("bgsc_text_length4 == 3") do
         {
            es_xstring bgsc_token3 replace " b4" " before"
            es_xstring bgsc_token3 replace " bk" " back"
            es_xstring bgsc_token3 replace " cu" " see you"
            es_xstring bgsc_token3 replace " fu" " fuck you"
            es_xstring bgsc_token3 replace " gg" " good game"
            es_xstring bgsc_token3 replace " gj" " good job"
            es_xstring bgsc_token3 replace " gl" " good luck"
            es_xstring bgsc_token3 replace " h8" " hate"
            es_xstring bgsc_token3 replace " hf" " have fun"
            es_xstring bgsc_token3 replace " ic" " I see"
            es_xstring bgsc_token3 replace " jk" " just kidding"
            es_xstring bgsc_token3 replace " kk" " okay"
            es_xstring bgsc_token3 replace " l8" " late"
            es_xstring bgsc_token3 replace " m8" " mate"
            es_xstring bgsc_token3 replace " n1" " nice one"
            es_xstring bgsc_token3 replace " n8" " night"
            es_xstring bgsc_token3 replace " np" " no problem"
            es_xstring bgsc_token3 replace " ns" " nice shot"
            es_xstring bgsc_token3 replace " nt" " nice try"
            es_xstring bgsc_token3 replace " ot" " off topic"
            es_xstring bgsc_token3 replace " pm" " private message"
            es_xstring bgsc_token3 replace " rl" " real life"
            es_xstring bgsc_token3 replace " tc" " take care"
            es_xstring bgsc_token3 replace " ty" " thank you"
            es_xstring bgsc_token3 replace " u2" " you too"
            es_xstring bgsc_token3 replace " ur" " your"
            es_xstring bgsc_token3 replace " yt" " you there"
            es_xstring bgsc_token3 replace " yw" " you're welcome"
            es_xstring bgsc_token3 replace " w/" " with"
            es_xstring bgsc_token3 replace " w8" " wait"
            es_xstring bgsc_token3 replace " wb" " welcome back"
         }
         ifx parse("bgsc_text_length4 == 4") do
         {
            es_xstring bgsc_token3 replace " a$$" " ass"
            es_xstring bgsc_token3 replace " afk" " away from keyboard"
            es_xstring bgsc_token3 replace " atm" " at the moment"
            es_xstring bgsc_token3 replace " bbl" " be back later"
            es_xstring bgsc_token3 replace " brb" " be right back"
            es_xstring bgsc_token3 replace " bro" " brother"
            es_xstring bgsc_token3 replace " btw" " by the way"
            es_xstring bgsc_token3 replace " cos" " because"
            es_xstring bgsc_token3 replace " coz" " because"
            es_xstring bgsc_token3 replace " css" " Counter-Strike: Source"
            es_xstring bgsc_token3 replace " cud" " could"
            es_xstring bgsc_token3 replace " cuz" " because"
            es_xstring bgsc_token3 replace " etc" " et cetera"
            es_xstring bgsc_token3 replace " faq" " frequently asked question"
            es_xstring bgsc_token3 replace " ffs" " for fuck sake"
            es_xstring bgsc_token3 replace " ftl" " for the lose"
            es_xstring bgsc_token3 replace " ftp" " file transfer protocol "
            es_xstring bgsc_token3 replace " ftw" " for the win"
            es_xstring bgsc_token3 replace " fyi" " for your information"
            es_xstring bgsc_token3 replace " g2g" " got to go"
            es_xstring bgsc_token3 replace " gr8" " great"
            es_xstring bgsc_token3 replace " gtg" " got to go"
            es_xstring bgsc_token3 replace " idc" " I don't care"
            es_xstring bgsc_token3 replace " idk" " I don't know"
            es_xstring bgsc_token3 replace " ily" " I love you"
            es_xstring bgsc_token3 replace " imo" " in my opinion"
            es_xstring bgsc_token3 replace " irl" " in real life"
            es_xstring bgsc_token3 replace " l4d" " Left 4 Dead"
            es_xstring bgsc_token3 replace " lil" " little"
            es_xstring bgsc_token3 replace " lol" " laughing out loud"
            es_xstring bgsc_token3 replace " me2" " me too"
            es_xstring bgsc_token3 replace " msg" " message"
            es_xstring bgsc_token3 replace " no1" " no one"
            es_xstring bgsc_token3 replace " nvm" " nevermind"
            es_xstring bgsc_token3 replace " lol" " laughing out loud"
            es_xstring bgsc_token3 replace " omg" " oh my god"
            es_xstring bgsc_token3 replace " omw" " on my way"
            es_xstring bgsc_token3 replace " pic" " picture"
            es_xstring bgsc_token3 replace " pl8" " plate"
            es_xstring bgsc_token3 replace " pls" " please"
            es_xstring bgsc_token3 replace " plz" " please"
            es_xstring bgsc_token3 replace " ppl" " people"
            es_xstring bgsc_token3 replace " pro" " professional"
            es_xstring bgsc_token3 replace " rly" " really"
            es_xstring bgsc_token3 replace " sry" " sorry"
            es_xstring bgsc_token3 replace " sup" " what's up"
            es_xstring bgsc_token3 replace " tbh" " to be honest"
            es_xstring bgsc_token3 replace " tho" " though"
            es_xstring bgsc_token3 replace " thx" " thanks"
            es_xstring bgsc_token3 replace " urs" " yours"
            es_xstring bgsc_token3 replace " uve" " you've"
            es_xstring bgsc_token3 replace " w/e" " whatever"
            es_xstring bgsc_token3 replace " wtf" " what the fuck"
         }
         ifx parse("bgsc_text_length4 == 5") do
         {
            es_xstring bgsc_token3 replace " any1" " anyone"
            es_xstring bgsc_token3 replace " asap" " as soon as possible"
            es_xstring bgsc_token3 replace " bcos" " because"
            es_xstring bgsc_token3 replace " bcoz" " because"
            es_xstring bgsc_token3 replace " bcuz" " because"
            es_xstring bgsc_token3 replace " cs:s" " Counter-Strike: Source"
            es_xstring bgsc_token3 replace " glhf" " good luck have fun"
            es_xstring bgsc_token3 replace " gtfo" " get the fuck out"
            es_xstring bgsc_token3 replace " lmao" " laughing my ass off"
            es_xstring bgsc_token3 replace " motd" " message of the day"
            es_xstring bgsc_token3 replace " nuff" " enough"
            es_xstring bgsc_token3 replace " orly" " oh really"
            es_xstring bgsc_token3 replace " pl0x" " please"
            es_xstring bgsc_token3 replace " rofl" " rolling on floor laughing"
            es_xstring bgsc_token3 replace " stfu" " shut the fuck up"
            es_xstring bgsc_token3 replace " tyvm" " thank you very much"
         }
         ifx parse("bgsc_text_length4 == 6") do
         {
            es_xstring bgsc_token3 replace " grats" " congratulations"
            es_xstring bgsc_token3 replace " gratz" " congratulations"
            es_xstring bgsc_token3 replace " srsly" " seriously"
            es_xstring bgsc_token3 replace " w/out" " without"
         }
         ifx parse("bgsc_text_length4 == 8") do
         {
            es_xstring bgsc_token3 replace " roflmao" " rolling on floor laughing my ass off"
         }
      }

      es_strlen bgsc_text_length3 server_var(bgsc_token2)
      es_strlen bgsc_text_length4 server_var(bgsc_token3)
      es_xmath bgsc_text_length3 - 1
      es_string bgsc_token2 section 0 server_var(bgsc_text_length3)
      es_string bgsc_token3 section 1 server_var(bgsc_text_length4)

      ifx parse("bgsc_tokens2 > 2") do
      {
         es_xformatv bgsc_text_first "%1%2%3" bgsc_token2 bgsc_token4 bgsc_token3
      }
      else do
      {
         es_xformatv bgsc_text_first "%1 %2" bgsc_token2 bgsc_token3
      }
   }

   es_strlen bgsc_text_length5 server_var(bgsc_text_first)

   ifx true(bgsc_abbreviations)
   {
      ifx parse("bgsc_text_length5 == 2") do
      {
         es_xstring bgsc_text_first replace "B" "Be"
         es_xstring bgsc_text_first replace "K" "Okay"
         es_xstring bgsc_text_first replace "N" "And"
         es_xstring bgsc_text_first replace "R" "Are"
         es_xstring bgsc_text_first replace "U" "You"
         es_xstring bgsc_text_first replace "Y" "Why"
      }
      ifx parse("bgsc_text_length5 == 3") do
      {
         es_xstring bgsc_text_first replace "B4" "Before"
         es_xstring bgsc_text_first replace "Bk" "Back"
         es_xstring bgsc_text_first replace "Cu" "See you"
         es_xstring bgsc_text_first replace "Fu" "Fuck you"
         es_xstring bgsc_text_first replace "Gg" "Good game"
         es_xstring bgsc_text_first replace "Gj" "Good job"
         es_xstring bgsc_text_first replace "Gl" "Good luck"
         es_xstring bgsc_text_first replace "H8" "Hate"
         es_xstring bgsc_text_first replace "Hf" "Have fun"
         es_xstring bgsc_text_first replace "Ic" "I see"
         es_xstring bgsc_text_first replace "Jk" "Just kidding"
         es_xstring bgsc_text_first replace "Kk" "Okay"
         es_xstring bgsc_text_first replace "L8" "Late"
         es_xstring bgsc_text_first replace "M8" "Mate"
         es_xstring bgsc_text_first replace "N1" "Nice one"
         es_xstring bgsc_text_first replace "N8" "Night"
         es_xstring bgsc_text_first replace "Np" "No problem"
         es_xstring bgsc_text_first replace "Ns" "Nice shot"
         es_xstring bgsc_text_first replace "Nt" "Nice try"
         es_xstring bgsc_text_first replace "Ot" "Off topic"
         es_xstring bgsc_text_first replace "Pm" "Private message"
         es_xstring bgsc_text_first replace "Rl" "Real life"
         es_xstring bgsc_text_first replace "Tc" "Take care"
         es_xstring bgsc_text_first replace "Ty" "Thank you"
         es_xstring bgsc_text_first replace "U2" "You too"
         es_xstring bgsc_text_first replace "Ur" "Your"
         es_xstring bgsc_text_first replace "Yt" "You there"
         es_xstring bgsc_text_first replace "Yw" "You're welcome"
         es_xstring bgsc_text_first replace "W/" "With"
         es_xstring bgsc_text_first replace "W8" "Wait"
         es_xstring bgsc_text_first replace "Wb" "Welcome back"
      }
      ifx parse("bgsc_text_length5 == 4") do
      {
         es_xstring bgsc_text_first replace "A$$" "Ass"
         es_xstring bgsc_text_first replace "Afk" "Away from keyboard"
         es_xstring bgsc_text_first replace "Atm" "At the moment"
         es_xstring bgsc_text_first replace "Bbl" "Be back later"
         es_xstring bgsc_text_first replace "Brb" "Be right back"
         es_xstring bgsc_text_first replace "Bro" "Brother"
         es_xstring bgsc_text_first replace "Btw" "By the way "
         es_xstring bgsc_text_first replace "Cos" "Because"
         es_xstring bgsc_text_first replace "Coz" "Because"
         es_xstring bgsc_text_first replace "Css" "Counter-Strike: Source"
         es_xstring bgsc_text_first replace "Cud" "Could"
         es_xstring bgsc_text_first replace "Cuz" "Because"
         es_xstring bgsc_text_first replace "Etc" "Et cetera"
         es_xstring bgsc_text_first replace "Faq" "Frequently asked question"
         es_xstring bgsc_text_first replace "Ffs" "For fuck sake"
         es_xstring bgsc_text_first replace "Ftl" "For the lose"
         es_xstring bgsc_text_first replace "Ftp" "File transfer protocol"
         es_xstring bgsc_text_first replace "Ftw" "For the win"
         es_xstring bgsc_text_first replace "Fyi" "For your information"
         es_xstring bgsc_text_first replace "G2g" "Got to go"
         es_xstring bgsc_text_first replace "Gr8" "Great"
         es_xstring bgsc_text_first replace "Gtg" "Got to go"
         es_xstring bgsc_text_first replace "Idc" "I don't care"
         es_xstring bgsc_text_first replace "Idk" "I don't know"
         es_xstring bgsc_text_first replace "Ily" "I love you"
         es_xstring bgsc_text_first replace "Imo" "In my opinion"
         es_xstring bgsc_text_first replace "Irl" "In real life"
         es_xstring bgsc_text_first replace "L4d" "Left 4 Dead"
         es_xstring bgsc_text_first replace "Lil" "Little"
         es_xstring bgsc_text_first replace "Lol" "Laughing out loud"
         es_xstring bgsc_text_first replace "Me2" "Me too"
         es_xstring bgsc_text_first replace "Msg" "Message"
         es_xstring bgsc_text_first replace "No1" "No one"
         es_xstring bgsc_text_first replace "Nvm" "Nevermind"
         es_xstring bgsc_text_first replace "Lol" "Laughing out loud"
         es_xstring bgsc_text_first replace "Omg" "Oh my god"
         es_xstring bgsc_text_first replace "Omw" "On my way"
         es_xstring bgsc_text_first replace "Pic" "Picture"
         es_xstring bgsc_text_first replace "Pl8" "Plate"
         es_xstring bgsc_text_first replace "Pls" "Please"
         es_xstring bgsc_text_first replace "Plz" "Please"
         es_xstring bgsc_text_first replace "Ppl" "People"
         es_xstring bgsc_text_first replace "Pro" "Professional"
         es_xstring bgsc_text_first replace "Rly" "Really"
         es_xstring bgsc_text_first replace "Sry" "Sorry"
         es_xstring bgsc_text_first replace "Sup" "What's up"
         es_xstring bgsc_text_first replace "Tbh" "To be honest"
         es_xstring bgsc_text_first replace "Tho" "Though"
         es_xstring bgsc_text_first replace "Thx" "Thanks"
         es_xstring bgsc_text_first replace "Urs" "Yours"
         es_xstring bgsc_text_first replace "Uve" "You've"
         es_xstring bgsc_text_first replace "W/e" "Whatever"
         es_xstring bgsc_text_first replace "Wtf" "What the fuck"
      }
      ifx parse("bgsc_text_length5 == 5") do
      {
         es_xstring bgsc_text_first replace "Any1" "Anyone"
         es_xstring bgsc_text_first replace "Asap" "As soon as possible"
         es_xstring bgsc_text_first replace "Bcos" "Because"
         es_xstring bgsc_text_first replace "Bcoz" "Because"
         es_xstring bgsc_text_first replace "Bcuz" "Because"
         es_xstring bgsc_text_first replace "Cs:s" "Counter-Strike: Source"
         es_xstring bgsc_text_first replace "Glhf" "Good luck have fun"
         es_xstring bgsc_text_first replace "Gtfo" "Get the fuck out"
         es_xstring bgsc_text_first replace "Lmao" "Laughing my ass off"
         es_xstring bgsc_text_first replace "Motd" "Message of the day"
         es_xstring bgsc_text_first replace "Nuff" "Enough"
         es_xstring bgsc_text_first replace "Orly" "Oh really"
         es_xstring bgsc_text_first replace "Pl0x" "Please"
         es_xstring bgsc_text_first replace "Rofl" "Rolling on floor laughing"
         es_xstring bgsc_text_first replace "Stfu" "Shut the fuck up"
         es_xstring bgsc_text_first replace "Tyvm" "Thank you very much"
      }
      ifx parse("bgsc_text_length5 == 6") do
      {

         es_xstring bgsc_text_first replace "Grats " "Congratulations"
         es_xstring bgsc_text_first replace "Gratz " "Congratulations"
         es_xstring bgsc_text_first replace "Srsly " "Seriously"
         es_xstring bgsc_text_first replace "W/out " "Without"
      }
      ifx parse("bgsc_text_length3 == 8") do
      {
         es_xstring bgsc_text_first replace "Roflmao" "Rolling on floor laughing my ass off"
      }
   }
   es_xset bgsc_token_number2 0
   es_token bgsc_tokens server_var(bgsc_chatfilter) 0 ,
   es_xdoblock bgsc/bgsc_chatfilter
}

block bgsc_chatfilter
{
   es_xmath bgsc_token_number2 + 1
   ifx parse("bgsc_token_number2 <= bgsc_tokens") do
   {
      es_token bgsc_token server_var(bgsc_chatfilter) server_var(bgsc_token_number2) ,
      if (server_var(bgsc_token) in server_var(bgsc_text_first)) do
      {
         es_string bgsc_text_first replace server_var(bgsc_token) "[CENSORED]"
      }
      es_xdoblock bgsc/bgsc_chatfilter
   }
   else do
   {
      es_xdoblock bgsc/bgsc_sendmessage
   }
}

block bgsc_sendmessage
{
   es_usermsg write string bgsc_saytext2_message server_var(bgsc_dead_message)
   es_usermsg write string bgsc_saytext2_message event_var(es_username)
   es_usermsg write string bgsc_saytext2_message server_var(bgsc_text_first)
   es foreach player bgsc_target server_var(bgsc_targetidentifier) "es_usermsg send bgsc_saytext2_message server_var(bgsc_target) 1"
   es_xusermsg delete bgsc_saytext2_message
}

block bgsc_bannednames
{
   es_xmath bgsc_token_number2 + 1
   ifx parse("bgsc_token_number2 <= bgsc_tokens4") do
   {
      es_token bgsc_token server_var(bgsc_namefilter) server_var(bgsc_token_number2) ,
      if (server_var(bgsc_token) in server_var(bgsc_name)) do
      {
         es kickid event_var(userid) "Your name contains one or more words that is inappropriate on this server."
      }
      es_xdoblock bgsc/bgsc_bannednames
   }
}

event es_player_chat
{
   es_exists bgsc_key_exists key bgsc_hook event_var(userid)
   ifx true(bgsc_key_exists) do
   {
      es_keygetvalue bgsc_get_key bgsc_hook event_var(userid) bgsc_register
      ifx true(bgsc_get_key) do
      {
         es_keygetvalue bgsc_get_key2 bgsc_hook event_var(userid) bgsc_antispam
         ifx false(bgsc_get_key2) do
         {
            es_keysetvalue bgsc_hook event_var(userid) bgsc_antispam 1
            es_delayed server_var(bgsc_antispam) es_xkeysetvalue bgsc_hook event_var(userid) bgsc_antispam 0
            es_xevent initialize player_say
            es_event setstring player_say text event_var(text)
            es_event setint player_say userid event_var(userid)
            es_xevent fire player_say
            es_set bgsc_at_symbol event_var(text)
            es_xstring bgsc_at_symbol section 0 1
            if (server_var(bgsc_at_symbol) != @) do
            {
               es_exists bgsc_command_exists saycommand event_var(text)
               ifx false(bgsc_command_exists) do
               {
                  es_set bgsc_text event_var(text)
                  es_xdoblock bgsc/bgsc_replace
               }
            }
            else do
            {
               es_keysetvalue bgsc_hook event_var(userid) bgsc_register 0
               es est_unmuteplayer event_var(userid)
               es_sexec event_var(userid) say event_var(text)
               es_delayed .1 es_xkeysetvalue bgsc_hook event_var(userid) bgsc_register 1
            }
         }
      }
   }
}

event player_say
{
   es est_muteplayer event_var(userid)
}

event player_activate
{
   es_xset bgsc_token_number2 0
   es_set bgsc_name event_var(es_username)
   es_token bgsc_tokens4 server_var(bgsc_namefilter) 0 ,
   es_xdoblock bgsc/bgsc_bannednames
   es_keycreate bgsc_hook event_var(userid)
   es_keysetvalue bgsc_hook event_var(userid) bgsc_antispam 0
   es_keysetvalue bgsc_hook event_var(userid) bgsc_register 1
   es est_muteplayer event_var(userid)
}

event player_changename
{
   es_xset bgsc_token_number2 0
   es_set bgsc_name event_var(newname)
   es_token bgsc_tokens4 server_var(bgsc_namefilter) 0 ,
   es_xdoblock bgsc/bgsc_bannednames
}

event player_disconnect
{
   es_keydelete bgsc_hook event_var(userid)
}

