/* Ċ Ġ* ĠPermissions Ex Ċ Ġ* ĠCopyright Ġ( C ) Ġz ml Ġand ĠPermissions Ex Ġ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 Ġca . stell ard rift . permission sex . backend . conversion Ċ Ċ import Ġca . stell ard rift . permission sex . Permissions Ex Ċ import Ġca . stell ard rift . permission sex . backend . DataStore Ċ import Ġca . stell ard rift . permission sex . backend . conversion . group manager . Group Manager DataStore Ċ import Ġca . stell ard rift . permission sex . backend . conversion . luck perms . L uck Per ms Conversion Provider Ċ import Ġjava . util . concurrent . Concurrent HashMap Ċ import Ġnet . ky ori . text . Component Ċ import Ġnet . ky ori . text . serializer . plain . Plain Component Serializer Ċ Ċ data Ġclass ĠConversion Result ( val Ġstore : ĠData Store , Ġval Ġtitle : ĠComponent ) Ċ Ċ interface ĠConversion Provider Ġ{ ĊĠĠĠ Ġval Ġname : ĠComponent ĊĠĠĠ Ġval Ġkey Ġget () Ġ= ĠPlain Component Serializer . INSTANCE . serialize ( name ) ĊĠĠĠ Ġfun Ġlist Conversion Options ( pex : ĠPermissions Ex < *> ): ĠList < Conversion Result > Ċ } Ċ Ċ object ĠConversion Provider Registry Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInternal Ġregistry Ġof Ġproviders ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġproviders : ĠMutable Map < String , ĠConversion Provider > Ġ= ĠConcurrent HashMap () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġan Ġimmutable Ġcopy Ġof Ġthe Ġset Ġof Ġregistered Ġproviders ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġall Providers Ġget () Ġ= Ġproviders . values . toSet () ĊĊĠĠĠ Ġoperator Ġfun Ġget ( provider : ĠString ): ĠConversion Provider ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġproviders [ provider ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegister Ġa Ġsingle Ġprovider ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġregister ( provider : ĠConversion Provider ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġproviders . put If Absent ( provider . key , Ġprovider ) Ġ== Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġregister ( Group Manager DataStore ) ĊĠĠĠĠĠĠĠ Ġregister ( L uck Per ms Conversion Provider ) ĊĠĠĠĠĠĠĠ Ġregister ( Ops DataStore ) ĊĠĠĠ Ġ} Ċ } Ċ