package Ġpossible _ triangle . divide . hack s Ċ Ċ import Ġnet . minecraft . nbt . Compound Tag Ċ import Ġnet . minecraft . nbt . List Tag Ċ import Ġnet . minecraft . server . Minecraft Server Ċ import Ġnet . minecraft . server . level . Server Player Ċ import Ġnet . minecraft . world . entity . Entity Ċ import Ġnet . minecraftforge . event . entity . player . Player Event Ċ import Ġnet . minecraftforge . event bus . api . Subscribe Event Ċ import Ġnet . minecraftforge . fml . common . Mod Ċ import Ġpossible _ triangle . divide . data . Mod Saved Data Ċ import Ġjava . util .* Ċ Ċ @ Mod . EventBus Subscriber Ċ object ĠData H acker Ġ{ ĊĊĠĠĠ Ġenum Ġclass ĠType ( val Ġflag : ĠInt ) Ġ{ ĠG LOW ING ( 6 ), ĠIN VISIBLE ( 5 ) Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠReason ( ĊĠĠĠĠĠĠĠ Ġval Ġtype : ĠType , ĊĠĠĠĠĠĠĠ Ġval Ġtarget : ĠUUID , ĊĠĠĠĠĠĠĠ Ġval Ġapplied To : ĠList < UUID >, ĊĠĠĠĠĠĠĠ Ġval Ġuntil : ĠLong , ĊĠĠĠĠĠĠĠ Ġval Ġclear On Death : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġclear In Base : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġid : ĠString ? ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Subscribe Event ĊĠĠĠ Ġfun Ġon Death ( event : ĠPlayer Event . Player Resp awn Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġserver Ġ= Ġevent . player . server Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ ĠData [ server ]. remove If Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . clear On Death Ġ&& Ġit . target Ġ== Ġevent . player . uuid ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Reason ( type : ĠType , Ġtarget : ĠUUID , Ġplayer : ĠServer Player ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= Ġplayer . level . game Time ĊĠĠĠĠĠĠĠ Ġreturn ĠData [ player . server ]. any Ġ{ Ġreason Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreason . type Ġ== Ġtype ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġreason . until Ġ>= Ġnow ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġreason . target Ġ== Ġtarget ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġreason . applied To . any Ġ{ Ġit Ġ== Ġplayer . uuid Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove Reason ( server : ĠMinecraft Server , Ġpredicate : Ġ( Reason ) Ġ-> ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠData . modify ( server ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġremoved Ġ= Ġfilter ( predicate ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremoved . forEach Ġ{ ĠPacket Intercept ing . update Data ( it . target , Ġserver ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove All ( removed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremoved . isNotEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Reason ( ĊĠĠĠĠĠĠĠ Ġtype : ĠType , ĊĠĠĠĠĠĠĠ Ġtarget : ĠEntity , ĊĠĠĠĠĠĠĠ Ġapplied To : ĠList < Server Player >, ĊĠĠĠĠĠĠĠ Ġduration : ĠInt , ĊĠĠĠĠĠĠĠ Ġclear On Death : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġclear In Base : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġid : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( applied To . isEmpty ()) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġserver Ġ= Ġapplied To . first (). server ĊĠĠĠĠĠĠĠ ĠData . modify ( server ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠReason ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . uuid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplied To . map Ġ{ Ġit . uuid Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver . over world (). game Time Ġ+ Ġduration Ġ* Ġ 2 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear On Death , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear In Base , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠPacket Intercept ing . update Data ( target , Ġserver ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠData Ġ= Ġobject Ġ: ĠMod Saved Data < Mutable List < Reason >> (" entity _ data _ hack s ") Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsave ( nbt : ĠCompound Tag , Ġvalue : ĠMutable List < Reason >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠList Tag () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . forEach Ġ{ Ġreason Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtag Ġ= ĠCompound Tag () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . put UUID (" target ", Ġreason . target ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . put Long (" until ", Ġreason . until ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . putString (" type ", Ġreason . type . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . put (" applied To ", Ġreason . applied To . map To ( List Tag ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCompound Tag (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput UUID (" uuid ", Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn bt . put (" re asons ", Ġlist ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġload ( nbt : ĠCompound Tag , Ġserver : ĠMinecraft Server ): ĠMutable List < Reason > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnow Ġ= Ġserver . over world (). game Time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġn bt . getList (" re asons ", Ġ 1 0 ). map Ġ{ Ġit Ġas ĠCompound Tag Ġ}. map Ġ{ Ġtag Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġtag . get UUID (" target ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapplied To Ġ= Ġtag . getList (" applied To ", Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit Ġas ĠCompound Tag Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . get UUID (" uuid ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuntil Ġ= Ġtag . getLong (" until ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġif Ġ( tag . contains (" id ")) Ġtag . getString (" id ") Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= ĠType . valueOf ( tag . getString (" type ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠReason ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplied To , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuntil , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . getBoolean (" clear On Death "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . getBoolean (" clear In Base "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. filter Ġ{ Ġit . until Ġ> Ġnow Ġ}. to Mutable List () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdefault (): ĠMutable List < Reason > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }