/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠLe vi ĠP awl ak Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġio . github . h iz tree . the basics . sp ig ot Ċ Ċ import Ġcom . google . common . collect . Lists Ċ import Ġcom . google . inject . Inject Ċ import Ġio . github . h iz tree . the basics . core . The Basics Ċ import Ġio . github . h iz tree . the basics . core . api . Implementation Ċ import Ġio . github . h iz tree . the basics . core . api . cmd . Command Spec Ċ import Ġio . github . h iz tree . the basics . core . api . cmd . Usage Exception Ċ import Ġio . github . h iz tree . the basics . core . api . cmd . sender . Console Sender Ċ import Ġio . github . h iz tree . the basics . core . api . data . World Ċ import Ġio . github . h iz tree . the basics . core . api . inventory . item . Basic Item Ċ import Ġio . github . h iz tree . the basics . core . api . inventory . item . ItemType Ċ import Ġio . github . h iz tree . the basics . core . api . inventory . item . Item Types Ċ import Ġio . github . h iz tree . the basics . core . api . inventory . item . extra . Enchant Type Ċ import Ġio . github . h iz tree . the basics . core . api . log . Basic Logger Ċ import Ġio . github . h iz tree . the basics . core . api . user . User Ċ import Ġio . github . h iz tree . the basics . sp ig ot . impl .* Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . spongepowered . api . Sp onge Ċ import Ġorg . spongepowered . api . command . Command Callable Ċ import Ġorg . spongepowered . api . command . Command Result Ċ import Ġorg . spongepowered . api . command . Command Source Ċ import Ġorg . spongepowered . api . command . source . Console Source Ċ import Ġorg . spongepowered . api . data . key . Keys Ċ import Ġorg . spongepowered . api . data . type . Sk ull Types Ċ import Ġorg . spongepowered . api . entity . living . player . Player Ċ import Ġorg . spongepowered . api . event . Listener Ċ import Ġorg . spongepowered . api . event . Order Ċ import Ġorg . spongepowered . api . event . filter . cause . First Ċ import Ġorg . spongepowered . api . event . game . state . Game Starting Server Event Ċ import Ġorg . spongepowered . api . event . network . Client Connection Event Ċ import Ġorg . spongepowered . api . item . ench ant ment . Enchant ment Ċ import Ġorg . spongepowered . api . item . ench ant ment . Enchant ment Type Ċ import Ġorg . spongepowered . api . item . inventory . ItemStack Ċ import Ġorg . spongepowered . api . plugin . Plugin Ċ import Ġorg . spongepowered . api . text . Text Ċ import Ġorg . spongepowered . api . text . serializer . Text Serial izers Ċ import Ġorg . spongepowered . api . world . Location Ċ import Ġjava . lang . reflect . Invocation TargetException Ċ import Ġjava . util .* Ċ Ċ @ Plugin ( ĊĠĠĠ Ġid Ġ= Ġ" the basics ", ĊĠĠĠ Ġname Ġ= Ġ" The Basics ", ĊĠĠĠ Ġversion Ġ= Ġ" 0 . 0 . 1 ", ĊĠĠĠ Ġauthors Ġ= Ġ[" H iz tree "], ĊĠĠĠ Ġdescription Ġ= Ġ" A Ġset Ġof Ġbasic Ġfunctions Ġfor ĠSp onge Ġservers ." Ċ ) Ċ class ĠSp onge Container Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlog : ĠLogger ĊĊĠĠĠ Ġprivate Ġval Ġcore Ġ= Ġobject Ġ: ĠThe Basics () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogger Ġ= ĠSp onge Logger ( log ) ĊĠĠĠĠĠĠĠ Ġval Ġonline Users Ġ= ĠLists . newArrayList < User >() ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġconsole Sender Ġ= ĠSp onge Console Sender ( Sp onge . getServer (). console ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġusers : ĠArrayList < User > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġonline Users ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Console Sender (): ĠConsole Sender Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġconsole Sender ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Implementation (): ĠImplementation Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠImplementation . SP ON GE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget World ( unique ID : ĠUUID ): ĠWorld ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp onge World Ġ= ĠSp onge . getServer (). get World ( unique ID ). orElse ( null ) Ġ?: Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSp onge World ( sponge World ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Log (): ĠBasic Logger Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlogger ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Listener ĊĠĠĠ Ġfun ĠonStart ( event : ĠGame Starting Server Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcore . init () ĊĊĠĠĠĠĠĠĠ ĠSp onge . getEvent Manager (). unregister Listeners ( Player Listener ()) ĊĠĠĠĠĠĠĠ ĠSp onge . getEvent Manager (). unregister Listeners ( Block Listener ()) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( command Ġin Ġcore . commands ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Command ( command ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Listener ( order Ġ= ĠOrder . EAR LY ) ĊĠĠĠ Ġfun Ġon Join ( event : ĠClient Connection Event . Join , Ġ@ First Ġplayer : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcore . online Users . add ( Sp onge User ( player )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Listener ( order Ġ= ĠOrder . EAR LY ) ĊĠĠĠ Ġfun Ġon Quit ( event : ĠClient Connection Event . Disconnect , Ġ@ First Ġplayer : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcore . online Users . remove ( player . to Basics ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġregister Command ( spec : ĠCommand Spec ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcommand Ġ= Ġobject Ġ: ĠCommand Callable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġprocess ( source : ĠCommand Source , Ġarguments : ĠString ): ĠCommand Result Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġarguments . split (" Ġ"). to Typed Array () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( source Ġis ĠPlayer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcore . getUser ( source . name )?. let Ġ{ Ġspec . perform Cmd ( it , Ġargs ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( source Ġis ĠConsole Source ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspec . perform Cmd ( core . get Console Sender (), Ġargs ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( e ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! is ĠUsage Exception , Ġ! is ĠInvocation TargetException Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource . sendMessage ("& c There Ġwas Ġan Ġerror Ġperforming Ġthe Ġcommand .". translate Color ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCommand Result . empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Suggestions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource : ĠCommand Source , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Position : ĠLocation < org . spongepowered . api . world . World >? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠMutable List < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġarguments . split (" Ġ"). to Typed Array () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( source Ġis ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspec . tab Complete ( source . to Basics (), Ġargs ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspec . tab Complete ( source . to Basics (), Ġargs ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġtest Permission ( source : ĠCommand Source ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsource . has Permission (" the basics .${ spec . label }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Short Description ( source : ĠCommand Source ): ĠOptional < Text > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOptional . empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Help ( source : ĠCommand Source ): ĠOptional < Text > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOptional . empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Usage ( source : ĠCommand Source ): ĠText Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġspec . usage . translate Color () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp onge . get Command Manager () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. register ( this , Ġcommand , Ġarray ListOf ( spec . label , Ġ* spec . aliases . to Typed Array ())) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" Could Ġnot Ġregister Ġcommand : Ġ${ spec . label }! ĠPlease Ġcontact Ġplugin Ġauthor .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠCommand Source . to Basics (): Ġio . github . h iz tree . the basics . core . api . cmd . sender . Command Sender Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( this Ġis ĠUser ) Ġ{ ĊĠĠĠĠĠĠĠ ĠThe Basics . instance . getUser ( this . name ) !! ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠThe Basics . instance . get Console Sender () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠPlayer . to Basics (): ĠUser Ġ{ ĊĠĠĠ Ġreturn ĠThe Basics . instance . getUser ( this . name ) !! Ċ } Ċ Ċ fun ĠLocation <* >. to Basics (): Ġio . github . h iz tree . the basics . core . api . data . Location Ġ{ ĊĠĠĠ Ġreturn Ġio . github . h iz tree . the basics . core . api . data . Location ( ĊĠĠĠĠĠĠĠ Ġthis . x , ĊĠĠĠĠĠĠĠ Ġthis . y , ĊĠĠĠĠĠĠĠ Ġthis . z , ĊĠĠĠĠĠĠĠĠ 0 . 0 , ĊĠĠĠĠĠĠĠĠ 0 . 0 ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun ĠWorld . to Sp onge (): Ġorg . spongepowered . api . world . World Ġ{ ĊĠĠĠ Ġreturn ĠSp onge . getServer (). get World ( this . unique ID ). get () Ċ } Ċ Ċ fun Ġorg . spongepowered . api . world . World . to Basics (): ĠWorld Ġ{ ĊĠĠĠ Ġreturn ĠSp onge World ( this ) Ċ } Ċ Ċ fun Ġio . github . h iz tree . the basics . core . api . data . Location . to Sp onge ( world : Ġorg . spongepowered . api . world . World ): ĠLocation < org . spongepowered . api . world . World > Ġ{ ĊĠĠĠ Ġreturn ĠLocation ( world , Ġthis . x , Ġthis . y , Ġthis . z ) Ċ } Ċ Ċ fun ĠText . to Raw (): ĠString Ġ{ ĊĠĠĠ Ġreturn ĠText Serial izers . FORMAT TING _ CODE . serialize ( this ) Ċ } Ċ Ċ fun ĠItemStack . to Basics (): ĠBasic Item Ġ{ ĊĠĠĠ Ġval Ġdisplay Opt Ġ= Ġthis . get ( Keys . DISPLAY _ NAME ) ĊĠĠĠ Ġval Ġlo re Opt Ġ= Ġthis . get ( Keys . ITEM _ LO RE ) ĊĊĠĠĠ Ġval Ġlo re Ġ= Ġif Ġ( lo re Opt . isPresent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlo re Opt . get (). map Ġ{ Ġit . to Raw () Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġitem Ġ= Ġif Ġ( display Opt . isPresent ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBasic Item ( this . type . to Basics (), Ġthis . quantity , Ġdisplay Opt . get (). to Raw (), Ġlo re ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠBasic Item ( this . type . to Basics (), Ġthis . quantity , Ġlo re Ġ= Ġlo re ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfor Ġ( ench ant ment Ġin Ġthis . get ( Keys . ITEM _ EN CHANT MENTS ). orElse ( emptyList ())) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= ĠEn chant Type . get ByName ( ench ant ment . type . id ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( type Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . ench ant ments . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġio . github . h iz tree . the basics . core . api . inventory . item . extra . Enchant ment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġen chant ment . level ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġitem Ċ } Ċ Ċ fun Ġorg . spongepowered . api . item . ItemType . to Basics (): ĠItem Type Ġ{ ĊĠĠĠ Ġreturn ĠItem Types . get ByName ( this . name ) Ġ?: ĠItem Types . AIR Ċ } Ċ Ċ fun ĠBasic Item . to Sp onge (): ĠItemStack Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġitem : ĠItemStack ĊĊĠĠĠ Ġif Ġ( this . nbt . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . nbt . containsKey (" Sk ull Owner ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ= ĠItemStack . of ( org . spongepowered . api . item . Item Types . SK ULL , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . offer ( Keys . SK ULL _ TYPE , ĠSk ull Types . PLAYER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . offer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKeys . RE PRESENT ED _ PLAYER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp onge . getServer (). game Profile Manager . get ( this . nbt [" Sk ull Owner "]). get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= ĠSp onge . get Registry () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getType ( org . spongepowered . api . item . ItemType :: class . java , Ġthis . item Type . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. orElse Get Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp onge . get Registry () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getType ( org . spongepowered . api . item . ItemType :: class . java , Ġthis . item Type . alt ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. orElse Get Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp onge . get Registry (). getType ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorg . spongepowered . api . item . ItemType :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . item Type . actual Mod ID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). orElse ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorg . spongepowered . api . item . Item Types . AIR ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġitem Ġ= ĠItemStack . of ( type , Ġthis . qty ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġif Ġ( this . name . isNotEmpty ()) ĊĠĠĠĠĠĠĠ Ġitem . offer ( Keys . DISPLAY _ NAME , Ġthis . name . translate Color ()) ĊĊĠĠĠ Ġif Ġ( this . lo re . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext L ore Ġ= ĠLists . newArrayList < Text >() ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġthis . lo re ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext L ore . add ( s . translate Color ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġitem . offer ( Keys . ITEM _ LO RE , Ġtext L ore ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġval Ġen chant ments Ġ= Ġitem . get ( Keys . ITEM _ EN CHANT MENTS ). orElse ( emptyList ()) ĊĊĠĠĠ Ġfor Ġ( ench ant ment Ġin Ġthis . ench ant ments ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsp onge Enchant ment Ġ= Ġen chant ment . to Sp onge () Ġ?: Ġcontinue ĊĊĠĠĠĠĠĠĠ Ġen chant ments . add ( sponge Enchant ment ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( ench ant ments . isNotEmpty ()) ĊĠĠĠĠĠĠĠ Ġitem . offer ( Keys . ITEM _ EN CHANT MENTS , Ġen chant ments ) ĊĊĠĠĠ Ġreturn Ġitem Ċ } Ċ Ċ fun Ġio . github . h iz tree . the basics . core . api . inventory . item . extra . Enchant ment . to Sp onge (): ĠEn chant ment ? Ġ{ ĊĠĠĠ Ġfor Ġ( value Ġin ĠSp onge . get Registry (). getAll For Sp onge ( Enchant ment Type :: class . java )) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( value . id . equals ( this . type . id , Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠEn chant ment . of ( value , Ġthis . level ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġnull Ċ } Ċ Ċ fun ĠString . translate Color (): ĠText Ġ= ĠText Serial izers . FORMAT TING _ CODE . deserialize ( this )