/* Ċ Ġ* ĠMinecraft ĠDev Ġfor ĠIntelliJ Ċ Ġ* Ċ Ġ* Ġhttps :// minecraft dev . org Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 Ġm inecraft - dev Ċ Ġ* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ*/ Ċ Ċ package Ġcom . de mon wav . mc dev . platform Ċ Ċ import Ġcom . de mon wav . mc dev . build system . Build System Ċ import Ġcom . intellij . openapi . progress . Progress Indicator Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . vfs . Virtual File Ċ import Ġcom . intellij . util . containers . isNull OrEmpty Ċ Ċ private Ġval Ġbracket Regex Ġ= ĠRegex ("[ \\ [ \\ ]] ") Ċ private Ġval Ġcomma Regex Ġ= ĠRegex ("\\ s *, \\ s * ") Ċ Ċ abstract Ġclass ĠProject Configuration Ġ{ ĊĊĠĠĠ Ġdata Ġclass ĠBase Configs ( ĊĠĠĠĠĠĠĠ Ġval Ġplugin Name : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġplugin Version : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġmain Class : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġdescription : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġwebsite : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġauthors : ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġvar Ġbase : ĠBase Configs ? Ġ= Ġnull ĊĊĠĠĠ Ġabstract Ġvar Ġtype : ĠPlatform Type ĊĊĠĠĠ Ġabstract Ġfun Ġcreate ( project : ĠProject , Ġbuild System : ĠBuild System , Ġindicator : ĠProgress Indicator ) ĊĊĠĠĠ Ġfun Ġhas Authors () Ġ= Ġlist Contains At Least One ( base ?. authors ) ĊĠĠĠ Ġfun Ġset Authors ( string : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbase ?. authors ?. let Ġ{ Ġauthors Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthors . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthors . addAll ( comma Split ( string )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Description () Ġ= Ġbase ?. description ?. isNotBlank () Ġ== Ġtrue ĊĊĠĠĠ Ġprotected Ġfun Ġcomma Split ( string : ĠString ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(! string . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstring . trim (). replace ( bracket Regex , Ġ""). split ( comma Regex ). toList () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlist Contains At Least One ( list : ĠMutable List < String >? ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( list . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlist ?. remove If ( String :: isBlank ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġlist ?. size Ġ!= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġget Main Class Directory ( files : ĠArray < String >, Ġfile : ĠVirtual File ): ĠVirtual File Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmoving File Ġ= Ġfile ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġ( files . size Ġ- Ġ 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs Ġ= Ġfiles [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= Ġmoving File . find Child ( s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmoving File Ġ= Ġif Ġ( temp Ġ!= Ġnull Ġ&& Ġtemp . isDirectory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmoving File . create Child Directory ( this , Ġs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġmoving File ĊĠĠĠ Ġ} Ċ } Ċ