/* Ċ Ġ* Ġ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 . entity . effect Ċ Ċ 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 . net . Restrict Ċ import Ġcom . val ap he e . t esseract . net . Restriction Ċ Ċ /** Ċ Ġ* Ġ@ author ĠKevin ĠL ud w ig Ċ Ġ*/ Ċ @ Restrict ( Restriction . To Client ) Ċ class ĠEntity Effect Packet ( ĊĠĠĠ Ġval Ġruntime EntityId : ĠLong , ĊĠĠĠ Ġval Ġaction : ĠAction , ĊĠĠĠ Ġval Ġeffect : ĠEffect , ĊĠĠĠ Ġval Ġamp l ifier : ĠInt , ĊĠĠĠ Ġval Ġparticles : ĠBoolean , ĊĠĠĠ Ġval Ġduration : ĠInt Ċ ) Ġ: ĠPacket () Ġ{ ĊĠĠĠ Ġenum Ġclass ĠAction Ġ{ ĊĠĠĠĠĠĠĠ ĠApply , ĠModify , ĠRe voke ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġid Ġget () Ġ= Ġ 0 x 1 C ĊĊĠĠĠ Ġconstructor ( runtime EntityId : ĠLong , Ġaction : ĠAction , Ġeffect : ĠEffect ) Ġ: Ġthis ( runtime EntityId , Ġaction , Ġeffect , Ġ 0 , Ġfalse , Ġ 0 ) ĊĊĠĠĠ Ġoverride Ġfun Ġwrite ( buffer : ĠPacket Buffer , Ġversion : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuffer . write Var UL ong ( runtime EntityId ) ĊĠĠĠĠĠĠĠ Ġbuffer . write Byte ( action . ordinal Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġbuffer . write Var Int ( effect . ordinal Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġbuffer . write Var Int ( amp l ifier ) ĊĠĠĠĠĠĠĠ Ġbuffer . write Boolean ( particles ) ĊĠĠĠĠĠĠĠ Ġbuffer . write Var Int ( duration ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( handler : ĠPacket Handler ) Ġ= Ġhandler . entity Effect ( this ) ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ" Entity Effect Packet ( runtime EntityId =$ runtime EntityId , Ġaction =$ action , Ġeffect =$ effect , Ġamp l ifier =$ amp l ifier , Ġparticles =$ particles , Ġduration =$ duration )" Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ author ĠKevin ĠL ud w ig Ċ Ġ*/ Ċ object ĠEntity Effect Packet Reader Ġ: ĠPacket Reader Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġread ( buffer : ĠPacket Buffer , Ġversion : ĠInt ) Ġ= ĠEntity Effect Packet ( ĊĠĠĠĠĠĠĠ Ġbuffer . read Var UL ong (), ĊĠĠĠĠĠĠĠ ĠEntity Effect Packet . Action . values ()[ buffer . read Byte (). toInt () Ġ- Ġ 1 ], ĊĠĠĠĠĠĠĠ ĠEffect . values ()[ buffer . read Var Int () Ġ- Ġ 1 ], ĊĠĠĠĠĠĠĠ Ġbuffer . read Var Int (), ĊĠĠĠĠĠĠĠ Ġbuffer . read Boolean (), ĊĠĠĠĠĠĠĠ Ġbuffer . read Var Int () ĊĠĠĠ Ġ) Ċ } Ċ