package Ġcom . ill uz ion z stud ios . mist . item . loader Ċ Ċ import Ġcom . crypt om or in . x series . X Enchant ment Ċ import Ġcom . crypt om or in . x series . X Material Ċ import Ġcom . ill uz ion z stud ios . mist . config . Config Section Ċ import Ġcom . ill uz ion z stud ios . mist . config . locale . M ist String Ċ import Ġcom . ill uz ion z stud ios . mist . config . serialization . loader . type . Yaml Section Loader Ċ import Ġcom . ill uz ion z stud ios . mist . exception . Plugin Exception Ċ import Ġcom . ill uz ion z stud ios . mist . item . Custom Item Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠA Ġloader Ġfor Ġa Ġ[ Custom Item ] Ġfrom Ġa ĠYAML Ġconfig Ġsection . ĠCan Ġbe Ġimplemented Ċ Ġ* Ġwith Ġanother Ġcustom Ġitem Ġby Ġoverriding Ġ[. return Implemented Object ] Ġand Ġcreating Ċ Ġ* Ġnew Ġinstance Ġof Ġcustom Ġitem Ġwith Ġloading Ġalready Ġdone Ġfor Ġthat Ġitem . Ċ Ġ*/ Ċ abstract Ġclass ĠBase Custom Item Loader < T Ġ: ĠCustom Item ? >( section : ĠConfig Section ) Ġ: ĠYaml Section Loader < T >( section ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġsave (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠImplement Ġsaving ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Object ( file : ĠConfig Section ?): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠL ets Ġtry Ġbuild Ġthe Ġitem ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġreturn Implemented Object ( file ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġbase Ġoptions ĊĠĠĠĠĠĠĠ Ġitem ?. identifier Ġ= Ġloader ?. node Key !! ĊĠĠĠĠĠĠĠ Ġitem ?. custom Name Ġ= ĠM ist String . of ( loader ?. getString (" item - name ")) ĊĠĠĠĠĠĠĠ Ġitem ?. lo re Ġ= ĠM ist String . fromString List ( loader ?. getString List (" lo re ") ?. to Mutable List () !! ) ĊĠĠĠĠĠĠĠ Ġitem ?. amount Ġ= Ġloader ?. getInt (" amount ") Ġ?: Ġ 1 ĊĠĠĠĠĠĠĠ Ġitem ?. material Ġ= ĠX Material . match X Material ( loader ?. getString (" material ") Ġ?: Ġ" AIR "). get () ĊĠĠĠĠĠĠĠ Ġitem ?. custom Model Data Ġ= Ġloader ?. getInt (" model - data ") Ġ?: Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġval Ġen ch ants : ĠMutable Map < X Enchant ment , ĠInt > Ġ= ĠEnum Map ( X Enchant ment :: class . java ) ĊĠĠĠĠĠĠĠ Ġif Ġ( loader ?. getString List (" ench ants ") Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( to Parse Ġin Ġloader ?. getString List (" ench ants ") !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtokens Ġ= Ġto Parse . split (" :" . to Regex ()). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġen ch ants [ X Enchant ment . match X Enchant ment ( tokens [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. orElse Throw Ġ{ ĠPlugin Exception (" Enchant Ġ" Ġ+ Ġtokens [ 0 ] Ġ+ Ġ" Ġdoes Ġnot Ġexist ") Ġ}] Ġ= Ġtokens [ 1 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġitem ?. ench ants Ġ= Ġen ch ants ĊĠĠĠĠĠĠĠ Ġitem ?. glow ing Ġ= Ġloader ?. getBoolean (" glow ing ") !! ĊĠĠĠĠĠĠĠ Ġitem ?. un break able Ġ= Ġloader ?. getBoolean (" un break able ") !! ĊĠĠĠĠĠĠĠ Ġitem ?. hide Flags Ġ= Ġloader ?. getBoolean (" hide - flags ") !! ĊĠĠĠĠĠĠĠ Ġreturn Ġitem ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCan Ġbe Ġoverridden Ġto Ġreturn Ġthe Ġnew Ġcustom Ġitem Ġwith Ġthe Ġloading Ġdone ĊĠĠĠĠ Ġ* Ġfor Ġthat Ġitem . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġreturn Implemented Object ( config Section : ĠConfig Section ?): ĠT Ċ }