/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 , ĠVal ap he e . Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . val ap he e . t esseract . net . base Ċ Ċ import Ġcom . val ap he e . t esseract . net . Packet Ċ import Ġcom . val ap he e . t esseract . net . Packet Buffer Ċ import Ġcom . val ap he e . t esseract . net . Packet Handler Ċ import Ġcom . val ap he e . t esseract . net . Packet Reader Ċ import Ġcom . val ap he e . t esseract . util . safe List Ċ Ċ /** Ċ Ġ* Ġ@ author ĠKevin ĠL ud w ig Ċ Ġ*/ Ċ class ĠText Packet ( ĊĠĠĠ Ġval Ġtype : ĠType , ĊĠĠĠ Ġval Ġneeds Translation : ĠBoolean , ĊĠĠĠ Ġval Ġsource Name : ĠString ?, ĊĠĠĠ Ġval Ġmessage : ĠString , ĊĠĠĠ Ġval Ġarguments : ĠList < String > ?, ĊĠĠĠ Ġval Ġx box UserId : ĠString , ĊĠĠĠ Ġval Ġplatform Chat Id : ĠString Ċ ) Ġ: ĠPacket () Ġ{ ĊĠĠĠ Ġenum Ġclass ĠType Ġ{ ĊĠĠĠĠĠĠĠ ĠRaw , ĠChat , ĠTranslation , ĠPop Up , ĠJ uke box Pop Up , ĠTip , ĠSystem , ĠWh isper , ĠAnno uncement , ĠObject , ĠObject Wh isper ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġid Ġget () Ġ= Ġ 0 x 0 9 ĊĊĠĠĠ Ġoverride Ġfun Ġwrite ( buffer : ĠPacket Buffer , Ġversion : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuffer . write Byte ( type . ordinal ) ĊĠĠĠĠĠĠĠ Ġbuffer . write Boolean ( needs Translation ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . Chat , ĠType . Wh isper , ĠType . Anno uncement Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . writeString ( source Name !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . writeString ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . Raw , ĠType . Tip , ĠType . System , ĠType . Object , ĠType . Object Wh isper Ġ-> Ġbuffer . writeString ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . Translation , ĠType . Pop Up , ĠType . Ju ke box Pop Up Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . writeString ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments !!. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . write Var UInt ( it . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . forEach Ġ{ Ġbuffer . writeString ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuffer . writeString ( x box UserId ) ĊĠĠĠĠĠĠĠ Ġbuffer . writeString ( platform Chat Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( handler : ĠPacket Handler ) Ġ= Ġhandler . text ( this ) ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ" Text Packet ( type =$ type , Ġneeds Translation =$ needs Translation , Ġsource Name =$ source Name , Ġmessage ='$ message ', Ġarguments =$ arguments , Ġx box UserId ='$ x box UserId ', Ġplatform Chat Id ='$ platform Chat Id ')" Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ author ĠKevin ĠL ud w ig Ċ Ġ*/ Ċ object ĠText Packet Reader Ġ: ĠPacket Reader Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġread ( buffer : ĠPacket Buffer , Ġversion : ĠInt ): ĠText Packet Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= ĠText Packet . Type . values ()[ buffer . read Unsigned Byte (). toInt ()] ĊĠĠĠĠĠĠĠ Ġval Ġneeds Translation Ġ= Ġbuffer . read Boolean () ĊĠĠĠĠĠĠĠ Ġvar Ġsource Name : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġmessage : ĠString ĊĠĠĠĠĠĠĠ Ġvar Ġarguments : ĠList < String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText Packet . Type . Chat , ĠText Packet . Type . Wh isper , ĠText Packet . Type . Anno uncement Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Name Ġ= Ġbuffer . readString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġbuffer . readString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText Packet . Type . Raw , ĠText Packet . Type . Tip , ĠText Packet . Type . System , ĠText Packet . Type . Object , ĠText Packet . Type . Object Wh isper Ġ-> Ġmessage Ġ= Ġbuffer . readString () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText Packet . Type . Translation , ĠText Packet . Type . Pop Up , ĠText Packet . Type . Ju ke box Pop Up Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġbuffer . readString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= Ġsafe List ( buffer . read Var UInt ()) Ġ{ Ġbuffer . readString () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġx box UserId Ġ= Ġbuffer . readString () ĊĠĠĠĠĠĠĠ Ġval Ġplatform Chat Id Ġ= Ġbuffer . readString () ĊĠĠĠĠĠĠĠ Ġreturn ĠText Packet ( type , Ġneeds Translation , Ġsource Name , Ġmessage , Ġarguments , Ġx box UserId , Ġplatform Chat Id ) ĊĠĠĠ Ġ} Ċ } Ċ