/* Ċ Ġ* ĠMinecraft ĠDev Ġfor ĠIntelliJ Ċ Ġ* Ċ Ġ* Ġhttps :// minecraft dev . org Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 Ġm inecraft - dev Ċ Ġ* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ*/ Ċ Ċ package Ġcom . de mon wav . mc dev . creator Ċ Ċ import Ġcom . de mon wav . mc dev . creator . build system . Build System Type Ċ import Ġcom . de mon wav . mc dev . platform . Platform Type Ċ import Ġcom . intellij . util . containers . isNull OrEmpty Ċ Ċ private Ġval Ġbracket Regex Ġ= ĠRegex ("[ \\ [ \\ ]] ") Ċ private Ġval Ġcomma Regex Ġ= ĠRegex ("\\ s *, \\ s * ") Ċ Ċ abstract Ġclass ĠProject Config Ġ{ ĊĊĠĠĠ Ġabstract Ġvar Ġtype : ĠPlatform Type ĊĠĠĠ Ġopen Ġval Ġpreferred Build System : ĠBuild System Type ? Ġ= Ġnull ĊĊĠĠĠ Ġlateinit Ġvar Ġplugin Name : ĠString ĊĊĠĠĠ Ġvar Ġwebsite : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġfun Ġhas Website () Ġ= Ġ! website . isNull Or Blank () ĊĊĠĠĠ Ġval Ġauthors : ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġfun Ġhas Authors () Ġ= Ġlist Contains At Least One ( authors ) ĊĠĠĠ Ġfun Ġset Authors ( string : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġauthors . clear () ĊĠĠĠĠĠĠĠ Ġauthors . addAll ( comma Split ( string )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġdescription : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġfun Ġhas Description () Ġ= Ġ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 () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġ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 ĊĠĠĠ Ġ} Ċ } Ċ