package Ġio . github . shadow creative . ch adow . entity Ċ Ċ import Ġcom . google . common . collect . ArrayList Multimap Ċ import Ġcom . google . gson . Json Element Ċ import Ġio . github . shadow creative . shadow . Activator Ċ import Ġio . github . shadow creative . shadow . platform . Generic Instance Ċ import Ġio . github . shadow creative . shadow . plugin . Integr ated Plugin Ċ import Ġjava . util .* Ċ Ċ open Ġclass ĠE Collection < E Ġ: ĠEntity < E >> Ġ: ĠGeneric Instance < E >, ĠActiv ator < E Collection < E >> Ċ { ĊĠĠĠ Ġoverride Ġfun Ġon Init ( handle Instance : ĠAny ?): ĠAny ? ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Init ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Enabled (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Enabled ( handle Instance : ĠE Collection < E >) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Enabled ( active : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġregister Object ( entity : ĠEntity < E >, Ġobject Id : ĠString ): ĠBoolean ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġhandle Plugin Ġ= Ġthis . instance Plugin ĊĠĠĠĠĠĠĠ Ġif ( this . instance Plugin Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Plugin Ġ= ĠIntegr ated Plugin . Core Plugin ĊĊĠĠĠĠĠĠĠ Ġif ( handle Plugin Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Warning : ĠThe Ġcontrolled Ġplugin Ġwas Ġunhandled Ġ-> Ġ" Ġ+ Ġ"${ entity :: class . java . typeName }@ ${ entity . get UniqueId () }") ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity . set Plugin ( handle Plugin ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . entity Collection !!. add ( entity ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġconstructor () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" Le aking This ") ĊĠĠĠĠĠĠĠ ĠE Collection . get E Collections (). put ( null , Ġthis ) ĊĠĠĠĠĠĠĠ Ġthis . entity Collection Ġ= ĠArrayList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġconstructor ( uuid Ġ: ĠString ) Ġ: Ġsuper () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . entity Collection Ġ= ĠArrayList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġset Ident ifiable Object ( var arg Ġfield String Ġ: ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . identifier . addAll ( field String ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġinstance Plugin Ġ: ĠIntegr ated Plugin ? Ġ= Ġnull ĊĠĠĠ Ġfun Ġget Plugin () Ġ: ĠIntegr ated Plugin ? Ġ= Ġthis . instance Plugin ĊĊĠĠĠ Ġprivate Ġvar Ġentity Collection Ġ: ĠMutable List < Entity < E >> ? Ġ= Ġnull ĊĠĠĠ Ġfun Ġget Entities () Ġ: ĠMutable List < Entity < E >> ? Ġ= Ġthis . entity Collection ĊĊĠĠĠ Ġprivate Ġval Ġidentifier Ġ: ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠ Ġfun Ġget Identifier () Ġ: ĠMutable List < String > Ġ= Ġthis . identifier ĊĊĠĠĠ Ġopen Ġfun Ġget Entity ( object Data : ĠAny ?) Ġ: ĠE ? ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( object Data Ġ== Ġnull ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠ Ġreturn ĠE Collection . getEntity 0 ( object Data ) Ġas ? ĠE ? ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Entity Object ( object Data Ġ: ĠAny ?) Ġ: ĠE ? ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġplugin Collections Ġ: ĠArrayList Multimap < Integr ated Plugin , ĠE Collection <* >> Ġ= ĠArrayList Multimap . create () ĊĠĠĠĠĠĠĠ Ġfun Ġget E Collections () Ġ: ĠArrayList Multimap < Integr ated Plugin , ĠE Collection <* >> Ġ= Ġthis . plugin Collections ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Entity 0 ( object Data : ĠAny ): ĠAny ? ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( k Ġin Ġplugin Collections . values ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġ< U > Ġdeserialize ( element Ġ: ĠJson Element , Ġreference : ĠClass <* >) Ġ: ĠU ? ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġfun Ġas Reference ( entity : ĠEntity <* >) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( k Ġin ĠE Collection . get E Collections (). values ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( k . get Persistent Class () Ġ== Ġentity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġe Field Ġ= Ġentity :: class . java . super class . getDeclared Field (" e Collection ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe Field . is Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe Field . set ( entity , Ġk ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe Field Ġ= Ġentity :: class . java . super class . getDeclared Field (" uuid ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe Field . is Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe Field . set ( entity , ĠUUID . randomUUID (). toString (). replace ("- ", Ġ"")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ