package Ġme . phantom x . f jet pack re loaded . modules Ċ Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . yield Ċ import Ġme . phantom x . f jet pack re loaded . F Jet pack Re loaded Ċ import Ġme . phantom x . f jet pack re loaded . data . Config Ċ import Ġme . phantom x . f jet pack re loaded . data . Custom Fuel Ċ import Ġme . phantom x . f jet pack re loaded . data . Jet pack Ċ import Ġme . phantom x . f jet pack re loaded . data . Messages Ċ import Ġme . phantom x . f jet pack re loaded . data . hook . Super ior Sky block 2 Config Ċ import Ġme . phantom x . f jet pack re loaded . data . hook . Super ior Sky block 2 Player Ċ import Ġme . phantom x . f jet pack re loaded . extensions .* Ċ import Ġme . phantom x . f jet pack re loaded . fields . Hook Plugin . Super ior Sky block 2 ConfigFile Ċ import Ġme . phantom x . f jet pack re loaded . fields . Hook Plugin . Super ior Sky block 2 Name Ċ import Ġme . phantom x . f jet pack re loaded . fields . Hook Plugin . super ior Players Data Ċ import Ġme . phantom x . f jet pack re loaded . fields . Hook Plugin . super ior Sky block 2 Config Loaded Ċ import Ġme . phantom x . f jet pack re loaded . fields . Plugin Ċ import Ġme . phantom x . f jet pack re loaded . nms . Item MetaData Ċ import Ġme . phantom x . f jet pack re loaded . sealed s . On Death Ċ import Ġme . phantom x . f jet pack re loaded . sealed s . On Empty Fuel Ċ import Ġnet . mam oe . yaml kt . Yaml Ċ import Ġorg . bukkit . command . Command Sender Ċ import Ġorg . bukkit . configuration . Invalid ConfigurationException Ċ import Ġorg . bukkit . configuration . file . Yaml Configuration Ċ import Ġorg . json . JSONArray Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ import Ġkotlin . reflect . K Mutable Property Ċ import Ġkotlin . reflect . full . member Properties ĊĊ Ċ object ĠModule Ġ: ĠPlugin () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġmessages Ġ= ĠMessages ( default Prefix ) ĊĠĠĠĠĠĠĠ ĠmetaData Ġ= ĠItem MetaData () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLoad Ġall Ġconfigs ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun ĠF Jet pack Re loaded . load ( sender : ĠCommand Sender ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase Directory Ġ= ĠFile ( plugin . data Folder , Ġ" database ") ĊĊĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġsender . safe Run ( false ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreload Config () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodified Config Ġ= ĠConfig ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig [" version ", Ġ 1 ]. toString (). toInt Safe ( 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig [" update Notification ", Ġtrue ]. toString (). to Boolean (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig [" configs Yaml ", Ġtrue ]. toString (). to Boolean () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( config Version Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetResource ( config ()) ?. use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStringBuilder (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScanner ( it ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( it . hasNext ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( it . nextLine ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Version Ġ= ĠtoString (). toInt Safe ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( data Folder , Ġconfig ()). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! exists ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave All Default Config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( modified Config . version Ġ< Ġconfig Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . with Safe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġ" WARNING !: Ġ% s Ġhas Ġbeen Ġupdated !" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& e WARNING !: ĠConfig Ġdoesn 't Ġsupport ! ". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( data Folder , Ġ" configs - v ${ modified Config . version }- backup "). let Ġ{ Ġbackup Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( backup . mkdir s () Ġ&& Ġexists () Ġ&& Ġrename To ( File ( backup , Ġconfig ()))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ( m , Ġconfig ()). send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= ĠFile ( data Folder , Ġmessages ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( msg . exists () Ġ&& Ġmsg . rename To ( File ( backup , Ġmessages ()))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ( m , Ġmessages ()). send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj ps Ġ= ĠFile ( data Folder , Ġjet packs ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j ps . exists () Ġ&& Ġj ps . rename To ( File ( backup , Ġjet packs ()))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ( m , Ġjet packs ()). send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave All Default Config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Messages ( this ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Jet packs ( this ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Custom F ue ls ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġsender . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"& c Load Ġconfigs Ġfailed ! ". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( server . is Plugin Active ( Super ior Sky block 2 Name )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Database ( Super ior Sky block 2 Name ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . safe Run ( false ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġss 2 Config Ġ= ĠSuper ior Sky block 2 ConfigFile ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! modified Config . configs Yaml ) Ġss 2 Config Ġ= Ġss 2 Config . replace (". yml ", Ġ". json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( data Folder , Ġss 2 Config ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! exists () Ġ|| Ġlength () Ġ< Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Safe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent File . mkdir s () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent File . mkdir () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrite Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( modified Config . configs Yaml ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠYaml . encode ToString ( Super ior Sky block 2 Config . serializer (), ĠSuper ior Sky block 2 Config ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( Super ior Sky block 2 Config ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuperior Sky block 2 Config Loaded Ġ= Ġif Ġ( modified Config . configs Yaml ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠYaml . decode FromString ( Super ior Sky block 2 Config . serializer (), Ġread Text ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . fromJson ( read Text (), ĠSuper ior Sky block 2 Config :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& a Loaded Ġconfig Ġ& b $ Super ior Sky block 2 Name ". send ( this ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġgson . fromJson ( it , ĠArray < Super ior Sky block 2 Player >:: class . java )?. to Mutable List () Ġ?: Ġmutable ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuperior Players Data . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuperior Players Data [ it . uuid ] Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& a Loaded Ġdatabase Ġ& b ${ Super ior Sky block 2 Name }". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& a Hook ed Ġto Ġ& b $ Super ior Sky block 2 Name ". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġ"& c Failed Ġto Ġload Ġconfig Ġ& b $ Super ior Sky block 2 Name ". send ( sender ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġr ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġload Ġmessages Ġconfig ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġorg . bukkit . plugin . Plugin . load Messages ( sender : ĠCommand Sender ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessages File Ġ= Ġif Ġ( modified Config . configs Yaml ) Ġmessages Yaml Ġelse Ġmessages () ĊĠĠĠĠĠĠĠ ĠFile ( data Folder , Ġmessages File ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . safe Run ( false ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! exists () Ġ|| Ġ! parent File . exists ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Default Messages Config () ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconf Ġ= Ġbuffered Reader (). use Ġ{ Ġit . read Text () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessages Ġ= Ġif Ġ( modified Config . configs Yaml ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠYaml . decode FromString ( Messages . serializer (), Ġconf ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . fromJson ( conf , ĠMessages :: class . java ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& a Messages Ġconfig Ġhas Ġbeen Ġloaded .". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġsender . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Invalid Config ( this @ apply , Ġmessages File ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Default Messages Config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& c Invalid ĠMessages Ġconfig !. ĠAutomatic Ġrestore Ġwith Ġdefault Ġconfig ! ". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Messages ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġload ĠJet packs Ġconfig ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġorg . bukkit . plugin . Plugin . load Jet packs ( sender : ĠCommand Sender ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjp File Ġ= Ġif Ġ( modified Config . configs Yaml ) Ġjet packs Yaml Ġelse Ġjet packs () ĊĠĠĠĠĠĠĠ ĠFile ( data Folder , Ġjp File ). apply Ġfile @{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . safe Run ( false ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! exists () Ġ|| Ġ! parent File . exists ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Default Jet packs Config () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjet packs . clear () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( modified Config . configs Yaml ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠYaml Configuration . load Configuration ( this @ file ). let Ġ{ Ġy ml Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy ml . getConfiguration Section ( string Empty )?. get Keys ( false )?. forEach Ġ{ Ġj pid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj pp ath Ġ= Ġ"$ j pid ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjp Ġ= ĠJet pack ( id Ġ= Ġj pid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy ml . getConfiguration Section ( j pid )?. get Keys ( false )?. forEach Ġ{ Ġkey Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjp :: class . member Properties . forEach Ġfield @{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . name Ġ!= Ġkey Ġ|| Ġit Ġ! is ĠK Mutable Property <* >) Ġreturn @ field ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . returnType . classifier ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList :: class Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setter . call ( jp , Ġy ml . getString List ("$ j pp ath .$ key ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBoolean :: class Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setter . call ( jp , Ġy ml . getBoolean ("$ j pp ath .$ key ", Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInt :: class Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setter . call ( jp , Ġy ml . getInt ("$ j pp ath .$ key ", Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLong :: class Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setter . call ( jp , Ġy ml . getLong ("$ j pp ath .$ key ", Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy ml . getString ("$ j pp ath .$ key ") ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setter . call ( jp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( it . name Ġ== Ġ" permission ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlowercase () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis ). replace ("# id ", Ġj pid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjet packs [ jp . id ] Ġ= Ġjp . init Jet pack Se aled () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& a Loaded ĠJet pack : Ġ& 6 & b ${ jp . id }". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& 6 ${ jet packs . size } Ġ& a Jet packs Ġconfig Ġhas Ġbeen Ġloaded .". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Array Ġ= ĠJSONArray ( buffered Reader (). use Ġ{ Ġit . read Text () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( json Ġin Ġjson Array ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsafe Run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyield () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . fromJson ( json . toString (), ĠJet pack :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Jet pack Se aled () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpermission Ġ= Ġpermission . replace ("# id ", Ġid ). lowercase () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjet packs [ id ] Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& a Loaded ĠJet pack : Ġ& 6 & b $ id ". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġ" Failed ĠTo ĠLoad ĠJet pack Ġat Ġindex Ġ$ count ". send ( this ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& 6 $ count Ġ& a Jet packs Ġconfig Ġhas Ġbeen Ġloaded .". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġsender . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Invalid Config ( this @ file , Ġjp File ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Default Jet packs Config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& c Invalid ĠJet packs Ġconfig !. ĠAutomatic Ġrestore Ġwith Ġdefault Ġconfig ! ". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Jet packs ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġload ĠCustom ĠF ue ls Ġconfig ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġorg . bukkit . plugin . Plugin . load Custom F ue ls ( sender : ĠCommand Sender ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcustom Fuel File Ġ= Ġif Ġ( modified Config . configs Yaml ) Ġcustom F ue ls Yaml Ġelse Ġcustom F ue ls () ĊĠĠĠĠĠĠĠ ĠFile ( data Folder , Ġcustom Fuel File ). apply Ġfile @{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . safe Run ( false ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! exists () Ġ|| Ġ! parent File . exists ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Default Custom F ue ls Config () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Fuel . clear () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( modified Config . configs Yaml ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠYaml Configuration . load Configuration ( this @ file ). let Ġ{ Ġy ml Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy ml . getConfiguration Section ( string Empty )?. get Keys ( false )?. forEach Ġ{ Ġcf id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcf path Ġ= Ġ"$ cf id ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcf Ġ= ĠCustom Fuel ( id Ġ= Ġcf id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy ml . getConfiguration Section ( cf id )?. get Keys ( false )?. forEach Ġ{ Ġkey Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcf :: class . member Properties . forEach Ġfield @{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . name Ġ!= Ġkey Ġ|| Ġit Ġ! is ĠK Mutable Property <* >) Ġreturn @ field ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . returnType . classifier ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList :: class Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setter . call ( cf , Ġy ml . getString List ("$ cf path .$ key ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBoolean :: class Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setter . call ( cf , Ġy ml . getBoolean ("$ cf path .$ key ", Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy ml . getString ("$ cf path .$ key ") ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setter . call ( cf , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( it . name Ġ== Ġ" permission ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlowercase () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis ). replace ("# id ", Ġcf id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Fuel [ cf . id ] Ġ= Ġcf ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& a Loaded ĠCustom Fuel : Ġ& 6 ${ cf . id }". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthrow ĠInvalid ConfigurationException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& 6 ${ custom Fuel . size } Ġ& a Custom F ue ls Ġconfig Ġhas Ġbeen Ġloaded .". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Array Ġ= ĠJSONArray ( buffered Reader (). use Ġ{ Ġit . read Text () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( json Ġin Ġjson Array ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsafe Run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyield () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . fromJson ( json . toString (), ĠCustom Fuel :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpermission Ġ= Ġpermission . replace ("# id ", Ġid ). lowercase () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Module . custom Fuel [ id ] Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& a Loaded ĠCustom ĠF uel : Ġ& 6 $ id ". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġ" Failed ĠTo ĠLoad ĠCustom ĠF uel Ġat Ġindex Ġ$ count ". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& 6 $ count Ġ& a Custom F ue ls Ġconfig Ġhas Ġbeen Ġloaded .". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġsender . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Invalid Config ( this @ file , Ġcustom Fuel File ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Default Custom F ue ls Config () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& c Invalid ĠCustom F ue ls Ġconfig !. ĠAutomatic Ġrestore Ġwith Ġdefault Ġconfig ! ". send ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Custom F ue ls ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġconfig Ġis Ġinvalid Ġwill Ġrename Ġwith Ġsuffix Ġ. error ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġorg . bukkit . plugin . Plugin . handle Invalid Config ( file : ĠFile , Ġpath : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġfile . with Safe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġerror Loc Ġ= ĠFile ( data Folder , Ġ"${ path }. error ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ(! rename To ( error Loc )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! rename To ( this )) Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Loc Ġ= ĠFile ( data Folder , Ġ"${ path }$ count . error ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun ĠJet pack . init Jet pack Se aled (): ĠJet pack Ġ{ ĊĠĠĠĠĠĠĠ Ġon No Fuel Ġ= Ġwhen Ġ( on Empty Fuel . lowercase ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" drop " Ġ-> ĠOn Empty Fuel . Drop ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" remove " Ġ-> ĠOn Empty Fuel . Remove ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠOn Empty Fuel . Nothing ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġon Di ed Ġ= Ġwhen Ġ( on Death . lowercase ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" drop " Ġ-> ĠOn Death . Drop ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" remove " Ġ-> ĠOn Death . Remove ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠOn Death . Nothing ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ Ċ }