/** Ċ Ġ* ĠSp onge Kt Ċ Ġ* ĠCopyright Ġ( C ) Ġz ml Ġand ĠSp onge Kt Ġcontributors Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġxyz . ao eu . sponge kt Ċ Ċ import Ġorg . spongepowered . api . text . Text Ċ import Ġorg . spongepowered . api . text . action . Click Action Ċ import Ġorg . spongepowered . api . text . action . Hover Action Ċ import Ġorg . spongepowered . api . text . action . Shift Click Action Ċ import Ġorg . spongepowered . api . text . format . TextColor Ċ import Ġorg . spongepowered . api . text . format . Text Format Ċ import Ġorg . spongepowered . api . text . format . TextStyle Ċ Ċ /** Ċ Ġ* ĠOperator Ġover loads Ġand Ġextensions Ġfor Ġ[ String ], Ġ[ Text Builder ], Ġand Ġ[ Text ] Ġto Ġallow Ġsimpler Ġconversions . Ċ Ġ* ĠKeep Ġin Ġmind Ġthat Ġall Ġextension Ġmethods Ġfor ĠText Ġand ĠString Ġobjects Ġinvolve Ġa Ġround trip Ġfrom Ġa ĠText Ġbuilder , Ġso Ġfor Ġmore Ġcomplicated Ġoperations Ċ Ġ* Ġbuilder Ġusage Ġis Ġpreferred Ċ Ġ*/ Ċ Ċ // Ġ-- ĠSimple Ġconversion Ġover loads Ċ operator Ġfun ĠString . unary Plus (): ĠText Ġ{ ĊĠĠĠ Ġreturn ĠText . of ( this ) Ċ } Ċ Ċ operator Ġfun ĠString . unary Minus (): ĠText . Builder Ġ{ ĊĠĠĠ Ġreturn ĠText . builder ( this ) Ċ } Ċ Ċ // Ġ-- ĠProvide ĠText Ġoperations Ġon ĠStrings Ċ fun ĠString . format ( format : ĠText Format ): ĠText Ġ= ĠText . builder ( this ). format ( format ). build () Ċ fun ĠString . color ( color : ĠText Color ): ĠText Ġ= ĠText . builder ( this ). color ( color ). build () Ċ fun ĠString . style ( var arg Ġstyles : ĠTextStyle ): ĠText Ġ= ĠText . builder ( this ). style (* styles ). build (); Ċ fun ĠString . onClick ( click Action : ĠClick Action < *> ): ĠText Ġ= ĠText . builder ( this ). onClick ( click Action ). build () Ċ fun ĠString . on Hover ( hover Action : ĠHover Action < *> ): ĠText Ġ= ĠText . builder ( this ). on Hover ( hover Action ). build () Ċ fun ĠString . on Shift Click ( shift Click Action : ĠShift Click Action < *> ): ĠText Ġ= ĠText . builder ( this ). on Shift Click ( shift Click Action ). build () Ċ Ċ // ĠAllow Ġcombining ĠText s Ċ operator Ġfun ĠString . plus ( text : ĠText ): ĠText Ġ{ ĊĠĠĠ Ġreturn ĠText . builder (). append (+ this , Ġtext ). build () Ċ } Ċ Ċ operator Ġfun ĠText . plus ( text : ĠText ): ĠText Ġ{ ĊĠĠĠ Ġreturn ĠText . builder (). append ( this , Ġtext ). build () Ċ } Ċ Ċ operator Ġfun ĠText . plus ( text : ĠString ): ĠText Ġ{ ĊĠĠĠ Ġreturn ĠText . builder (). append ( this , Ġ+ text ). build (); Ċ } Ċ Ċ // ĠTODO : ĠHow Ġto Ġgo Ġon Ġfrom Ġhere ? Ċ // ĠThere Ġare Ġsome Ġthings Ġthat Ġcould Ġbe Ġadded , Ġbut ĠI 'm Ġnot Ġsure Ġif Ġit Ġmakes Ġsense Ġto Ġgo Ġthe Ġsame Ġway Ġph ro a Ġhas Ġin Ġproviding Ġnamed Ġmethods Ġfor Ċ // ĠText Colors Ġand Ġformatting . ĠInstead , Ġother Ġthoughts : Ċ // Ġ- ĠRep lic ate Ġall ĠText . Builder Ġmethods Ġas Ġextensions Ġon ĠString Ċ // Ġ- ĠSpecific Ġformatting Ġoptions Ġshould Ġbe Ġleft Ġto Ġplugins Ġto Ġimplement Ġthemselves ? Ċ // Ġ- ĠLink Ġformatting ? ĠText . Builder . link ( URL Ġtarget ) Ċ // Ġ- ĠType - safe - style Ġbuild ers ? ĠHow Ġwould Ġthis Ġlook Ġwhen Ġadding Ġchild Ġelements ? Ġ( having Ġthe Ġunary Plus Ġextension Ġmethod ? Ċ