/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠThe ĠSimple Cloud Ġauthors Ċ Ġ* Ċ Ġ* Ġ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 Ġeu . the simple cloud . module . permission . service . velocity Ċ Ċ import Ġcom . velocity powered . api . permission . Permission Function Ċ import Ġcom . velocity powered . api . permission . Permission Provider Ċ import Ġcom . velocity powered . api . permission . Permission Subject Ċ import Ġcom . velocity powered . api . permission . Tri state Ċ import Ġcom . velocity powered . api . proxy . Player Ċ import Ġeu . the simple cloud . module . permission . Permission Pool Ċ Ċ class ĠVe locity Permission Provider Ġ: ĠPermission Provider Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Function ( subject : ĠPermission Subject ): ĠPermission Function ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( subject Ġ! is ĠPlayer ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn ĠCloud Permission Function ( subject ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠCloud Permission Function ( private Ġval Ġplayer : ĠPlayer ) Ġ: ĠPermission Function Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Permission Value ( permission : ĠString ?): ĠTri state Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( permission Ġ== Ġnull ) Ġreturn ĠTri state . FALSE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpermission Player Ġ= ĠPermission Pool . instance . get Permission Player Manager (). get Cached Permission Player ( player . unique Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( permission Player Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" WARNING : ĠPermission Player Ġis ĠNULL Ġ(${ player . username }) ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTri state . FALSE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTri state . from Boolean ( permission Player . has Permission ( permission )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }