package Ġde . mine form ers . van ill aim m ersion . config Ċ Ċ import Ġnet . minecraftforge . fml . client . config . Config Gui Type Ċ import Ġnet . minecraftforge . fml . client . config . Gui Config Entries Ċ import Ġnet . minecraftforge . fml . client . config . Gui Edit Array Entries Ċ import Ġjava . util . regex . Pattern Ċ Ċ /** Ċ Ġ* ĠMutable Ġbuilder Ġfor Ġconfiguration Ġentries . Ċ Ġ*/ Ċ sealed Ġclass ĠMut Entry ( val Ġname : ĠString , Ġval Ġtype : ĠConfig Gui Type ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġreference Ġto Ġa Ġlocalization Ġto Ġbe Ġused Ġfor Ġdisplaying Ġthe Ġentry . ĊĠĠĠĠ Ġ* ĠIf Ġunspecified , Ġthe Ġentry 's Ġname Ġwill Ġbe Ġused . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġlanguage Key : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġcomment Ġto Ġdisplay Ġalong side Ġthe Ġentry . ĊĠĠĠĠ Ġ* ĠUsed Ġin Ġthe ĠGUI Ġonly Ġif Ġthere Ġis Ġno Ġlocalization Ġkey Ġof Ġthe Ġformat Ġ` language Key . tooltip ` ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġcomment : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFree zes Ġthis Ġmutable Ġrepresentation Ġand Ġturns Ġit Ġimmutable . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġfreeze (): ĠConfig Entry ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġbuilder Ġfor Ġ[ configuration Ġcategories ][ Config Entry . Category ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠCategory ( name : ĠString ) Ġ: ĠMut Entry ( name , ĠConfig Gui Type . CONFIG _ CATEGORY ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġelements Ġ= Ġmutable ListOf < Mut Entry >() ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġstring Ġproperty Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġstring ( name : ĠString , Ġinit : ĠValid ated Property < String >. () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠValid ated Property < String >( name , ĠConfig Gui Type . STRING ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġprop ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġstring Ġproperty Ġrestricted Ġto Ġmod ĠIDs Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġmod id ( name : ĠString , Ġinit : ĠValid ated Property < String >. () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠValid ated Property < String >( name , ĠConfig Gui Type . MOD _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġprop ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġproperty Ġfor Ġa Ġsingle Ġcharacter Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġchar ( name : ĠString , Ġinit : ĠRange d Property < Char >. () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠRange d Property < Char >( name , ĠConfig Gui Type . STRING ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġprop ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġproperty Ġfor Ġa Ġsingle Ġboolean Ġvalue Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġboolean ( name : ĠString , Ġinit : ĠProperty < Boolean >. () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠProperty < Boolean >( name , ĠConfig Gui Type . BOOLEAN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġprop ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġproperty Ġfor Ġa Ġsingle Ġbyte Ġvalue Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġbyte ( name : ĠString , Ġinit : ĠRange d Property < Byte >. () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠRange d Property < Byte >( name , ĠConfig Gui Type . INTEGER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . minimum Ġ= ĠByte . MIN _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . maximum Ġ= ĠByte . MAX _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġprop ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġproperty Ġfor Ġa Ġsingle Ġshort Ġvalue Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġshort ( name : ĠString , Ġinit : ĠRange d Property < Short >. () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠRange d Property < Short >( name , ĠConfig Gui Type . INTEGER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . minimum Ġ= ĠShort . MIN _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . maximum Ġ= ĠShort . MAX _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġprop ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġproperty Ġfor Ġa Ġsingle Ġinteger Ġvalue Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġint ( name : ĠString , Ġinit : ĠRange d Property < Int >. () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠRange d Property < Int >( name , ĠConfig Gui Type . INTEGER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġprop ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġproperty Ġfor Ġa Ġsingle Ġlong Ġvalue Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġlong ( name : ĠString , Ġinit : ĠRange d Property < Long >. () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠRange d Property < Long >( name , ĠConfig Gui Type . INTEGER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . minimum Ġ= ĠLong . MIN _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . maximum Ġ= ĠLong . MAX _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġprop ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġproperty Ġfor Ġa Ġsingle Ġfloat Ġvalue Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġfloat ( name : ĠString , Ġinit : ĠRange d Property < Float >. () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠRange d Property < Float >( name , ĠConfig Gui Type . DOUBLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . minimum Ġ= Ġ- Float . MAX _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . maximum Ġ= ĠFloat . MAX _ VALUE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġprop ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġproperty Ġfor Ġa Ġsingle Ġdouble Ġvalue Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġdouble ( name : ĠString , Ġinit : ĠRange d Property < Double >. () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠRange d Property < Double >( name , ĠConfig Gui Type . DOUBLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġprop ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġlist Ġproperty Ġof Ġa Ġgiven Ġtype Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġitems Ġof Ġthe Ġlist Ġmay Ġbe Ġrestricted . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġlist ( name : ĠString , Ġinit : ĠList Property < T >. () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠList Property < T >( name , ĠConfig Gui Type . STRING ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġprop ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġlist Ġproperty Ġof Ġb ooleans Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġitems Ġof Ġthe Ġlist Ġmay Ġbe Ġrestricted . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġboolean List ( name : ĠString , Ġinit : ĠList Property < Boolean >. () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠList Property < Boolean >( name , ĠConfig Gui Type . BOOLEAN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġprop ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġlist Ġproperty Ġof Ġintegers Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġitems Ġof Ġthe Ġlist Ġmay Ġbe Ġrestricted . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġint List ( name : ĠString , Ġinit : ĠList Property < Int >. () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠList Property < Int >( name , ĠConfig Gui Type . INTEGER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġprop ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġlist Ġproperty Ġof Ġdouble s Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġitems Ġof Ġthe Ġlist Ġmay Ġbe Ġrestricted . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġdouble List ( name : ĠString , Ġinit : ĠList Property < Double >. () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠList Property < Double >( name , ĠConfig Gui Type . DOUBLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġprop ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġanother Ġsub - category Ġto Ġthis Ġcategory . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġcategory ( name : ĠString , Ġinit : ĠCategory . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcfg Ġ= ĠCategory ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcfg . init () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelements Ġ+= Ġcfg ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfreeze () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfig Entry . Category ( name , Ġtype , Ġlanguage Key , Ġcomment , Ġelements . map Ġ{ Ġit . freeze () Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġbuilder Ġfor Ġ[ configuration Ġproperties ][ Config Entry . Property ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġclass ĠProperty < T >( name : ĠString , Ġtype : ĠConfig Gui Type ) Ġ: ĠMut Entry ( name , Ġtype ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġdefault Ġvalue Ġfor Ġthis Ġproperty , Ġwill Ġbe Ġstored Ġto Ġthe Ġdefault Ġconfiguration Ġfile Ġand ĊĠĠĠĠĠĠĠĠ Ġ* Ġis Ġused Ġas Ġa Ġreference Ġfor Ġthe Ġconfiguration ĠGUI . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġdefault : ĠT ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSpecifies Ġwhether Ġthis Ġproperty Ġrequires Ġthe Ġcurrent Ġworld Ġhas Ġto Ġbe Ġrestarted Ġfor Ġthe Ġchanges Ġto Ġtake Ġeffect . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġrequires World Restart : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSpecifies Ġwhether Ġthis Ġproperty Ġrequires Ġthe Ġgame Ġhas Ġto Ġbe Ġrestarted Ġfor Ġthe Ġchanges Ġto Ġtake Ġeffect . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġrequires Game Restart : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġlist Ġof Ġstrings Ġpotential Ġvalues Ġcan Ġbe Ġmatched Ġagainst . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġvalid Values : ĠList < String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġcustom Ġclass Ġto Ġbe Ġused Ġfor Ġconfiguring Ġthis Ġproperty , Ġleave Ġas Ġ` null ` Ġfor Ġdefault . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġgui Class : ĠClass < out ĠGui Config Entries . I Config Entry >? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfreeze () Ġ= ĠConfig Entry . Property ( name , Ġtype , Ġlanguage Key , Ġcomment , Ġdefault , Ġrequires World Restart , Ġrequires Game Restart , Ġvalid Values ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġbuilder Ġfor Ġ[ configuration Ġlist Ġproperties ][ Config Entry . List Property ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠList Property < T >( name : ĠString , Ġtype : ĠConfig Gui Type ) Ġ: ĠProperty < List < T >>( name , Ġtype ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġmaximum Ġnumber Ġof Ġelements Ġthis Ġlist Ġmay Ġstore . ĊĠĠĠĠĠĠĠĠ Ġ* ĠLeave Ġas Ġ`- 1 ` Ġfor Ġan Ġun limited Ġamount . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar ĠmaxLength : ĠInt Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSpecifies Ġwhether Ġthis Ġlist Ġis Ġof Ġa Ġfixed Ġlength , Ġi . e . Ġremains Ġas Ġthe Ġlength Ġof Ġthe Ġdefault Ġvalue . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġfixed Length : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġcustom Ġclass Ġto Ġbe Ġused Ġfor Ġconfiguring Ġthis Ġlist 's Ġelements , Ġleave Ġas Ġ` null ` Ġfor Ġdefault . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġentry Gui Class : ĠClass < out ĠGui Edit Array Entries . I Array Entry >? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfreeze () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfig Entry . List Property ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname , Ġtype , Ġlanguage Key , Ġcomment , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault , Ġrequires World Restart , Ġrequires Game Restart , Ġvalid Values , Ġgui Class , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmaxLength , Ġfixed Length , Ġentry Gui Class ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġbuilder Ġfor Ġ[ validated Ġconfiguration Ġproperties ][ Config Entry . Validated Property ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠValid ated Property < T >( name : ĠString , Ġtype : ĠConfig Gui Type ) Ġ: ĠProperty < T >( name , Ġtype ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġpattern Ġto Ġmatch Ġentered Ġvalues Ġagainst . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġpattern : ĠPattern ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfreeze () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfig Entry . Validated Property ( name , Ġtype , Ġlanguage Key , Ġcomment , Ġdefault , Ġrequires World Restart , Ġrequires Game Restart , Ġvalid Values , Ġgui Class , Ġpattern ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġbuilder Ġfor Ġ[ range d Ġconfiguration Ġproperties ][ Config Entry . Range d Property ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠRange d Property < T >( name : ĠString , Ġtype : ĠConfig Gui Type ) Ġ: ĠProperty < T >( name , Ġtype ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġminimum Ġvalue Ġthis Ġproperty Ġmay Ġtake , Ġleave Ġas Ġ` null ` Ġfor Ġan Ġun limited Ġlower Ġbound . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġminimum : ĠT ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġmaximum Ġvalue Ġthis Ġproperty Ġmay Ġtake , Ġleave Ġas Ġ` null ` Ġfor Ġan Ġun limited Ġupper Ġbound . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġvar Ġmaximum : ĠT ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfreeze () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfig Entry . Range d Property ( name , Ġtype , Ġlanguage Key , Ġcomment , Ġdefault , Ġrequires World Restart , Ġrequires Game Restart , Ġvalid Values , Ġgui Class , Ġminimum , Ġmaximum ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠBuilds Ġa Ġnew Ġconfiguration Ġcategory . ĠConvenience Ġmethod Ġfor Ġ" root " Ġcategories . Ċ Ġ*/ Ċ fun Ġconfig ( name : ĠString , Ġinit : ĠMut Entry . Category . () Ġ-> ĠUnit ): ĠConfig Entry . Category Ġ{ ĊĠĠĠ Ġval Ġcfg Ġ= ĠMut Entry . Category ( name ) ĊĠĠĠ Ġcfg . init () ĊĠĠĠ Ġreturn Ġcfg . freeze () Ċ }