package Ġv ood oo . data . flat Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonIgnore Ċ import Ġcom . fasterxml . jackson . annotation . JsonInclude Ċ import Ġmu . K Logging Ċ import Ġv ood oo . data . Feature Ċ import Ġv ood oo . data . User Files Ċ import Ġv ood oo . data . lock . Lock Entry Ċ import Ġv ood oo . data . lock . Lock Pack Ċ import Ġv ood oo . data . sk . Launch Ċ import Ġv ood oo . util . read Json OrNull Ċ import Ġv ood oo . util . write Json Ċ import Ġjava . io . File ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġn ik ky Ġon Ġ 2 8 / 0 3 / 1 8 . Ċ Ġ* Ġ@ author ĠNik ky Ċ Ġ*/ Ċ Ċ @ JsonInclude ( JsonInclude . Include . NON _ DEFAULT ) Ċ data Ġclass ĠMod Pack ( ĊĠĠĠĠĠĠĠ Ġ@ JsonInclude ( JsonInclude . Include . ALWAYS ) ĊĠĠĠĠĠĠĠ Ġvar Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġvar Ġtitle : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġ@ JsonInclude ( JsonInclude . Include . ALWAYS ) ĊĠĠĠĠĠĠĠ Ġvar Ġversion : ĠString Ġ= Ġ" 1 . 0 ", ĊĠĠĠĠĠĠĠ Ġval Ġauthors : ĠList < String > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġvar Ġmc Version : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġvar Ġfor ge : ĠString Ġ= Ġ" recommended ", ĊĠĠĠĠĠĠĠ Ġvar Ġfor ge Build : ĠInt Ġ= Ġ- 1 , ĊĠĠĠĠĠĠĠ Ġ@ JsonInclude ( JsonInclude . Include . ALWAYS ) ĊĠĠĠĠĠĠĠ Ġval Ġlaunch : ĠLaunch Ġ= ĠLaunch (), ĊĠĠĠĠĠĠĠ Ġ@ JsonInclude ( JsonInclude . Include . ALWAYS ) ĊĠĠĠĠĠĠĠ Ġvar Ġuser Files : ĠUser Files Ġ= ĠUser Files (), ĊĠĠĠĠĠĠĠ Ġvar Ġentries : ĠList < Entry > Ġ= Ġempty List (), ĊĊĠĠĠĠĠĠĠ Ġvar Ġversion Cache : ĠFile Ġ= ĠFile (". vo od oo /", Ġname ), ĊĠĠĠĠĠĠĠ Ġvar Ġfeature Cache : ĠFile Ġ= ĠFile (". vo od oo /", Ġname ), ĊĊĠĠĠĠĠĠĠ Ġ@ JsonInclude ( JsonInclude . Include . ALWAYS ) ĊĠĠĠĠĠĠĠ Ġvar Ġlocal Dir : ĠString Ġ= Ġ" local ", ĊĠĠĠĠĠĠĠ Ġ@ JsonInclude ( JsonInclude . Include . ALWAYS ) ĊĠĠĠĠĠĠĠ Ġvar Ġm inecraft Dir : ĠString Ġ= Ġname Ċ ) Ġ{ ĊĠĠĠ Ġ@ JsonIgnore ĊĠĠĠ Ġval Ġversions : ĠMutable Map < String , ĠLock Entry > ĊĠĠĠ Ġ@ JsonIgnore ĊĠĠĠ Ġval Ġfeatures : ĠMutable List < Feature > ĊĊĠĠĠ Ġcompanion Ġobject Ġ: ĠK Logging () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( version Cache . path Ġ== Ġfeature Cache . path ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Cache . mkdir s () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeature Cache . mkdir s () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( version Cache . isDirectory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Cache Ġ= Ġversion Cache . resolve (" versions . json ") ĊĊĠĠĠĠĠĠĠ Ġlogger . info (" using Ġversion Ġcache : Ġ$ version Cache ") ĊĠĠĠĠĠĠĠ Ġversions Ġ= Ġversion Cache . read Json OrNull () Ġ?: Ġmutable Map Of () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( feature Cache . isDirectory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeature Cache Ġ= Ġfeature Cache . resolve (" features . json ") ĊĊĠĠĠĠĠĠĠ Ġlogger . info (" using Ġfeature Ġcache : Ġ$ feature Cache ") ĊĠĠĠĠĠĠĠ Ġfeatures Ġ= Ġfeature Cache . read Json OrNull () Ġ?: Ġmutable ListOf () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġwrite Version Cache () Ġ{ ĊĠĠĠĠĠĠĠ Ġversion Cache . write Json ( versions ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwrite Feature Cache () Ġ{ ĊĠĠĠĠĠĠĠ Ġfeature Cache . write Json ( features ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlock (): ĠLock Pack Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLock Pack ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġversion , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthors Ġ= Ġauthors , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmc Version Ġ= Ġmc Version , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ge Ġ= Ġfor ge Build , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ= Ġlaunch , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Files Ġ= Ġuser Files , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Dir Ġ= Ġlocal Dir , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm inecraft Dir Ġ= Ġm inecraft Dir , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentries Ġ= Ġentries . map Ġ{ Ġversions [ it . name ] !! Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeatures Ġ= Ġfeatures ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ }