/* Ċ Ġ* Ġ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 . base . manager . update . converter . converter _ 1 _ 2 _ to _ 1 _ 3 Ċ Ċ import Ġcom . mongodb . ConnectionString Ċ import Ġcom . mongodb . Mongo Client Ċ import Ġeu . the simple cloud . api . player . Offline Cloud Player Ċ import Ġeu . the simple cloud . api . property . Property Ċ import Ġeu . the simple cloud . base . manager . player . Load Offline Cloud Player Ċ import Ġeu . the simple cloud . base . manager . player . exception . Offline Player Load Exception Ċ import Ġeu . the simple cloud . base . manager . startup . Manager Ċ import Ġeu . the simple cloud . json lib . Json Lib Ċ import Ġorg . lit ote . km ongo . K Mongo Ċ import Ġorg . lit ote . km ongo . get Collection Ċ import Ġjava . io . File ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby ĠIntelliJ ĠIDEA . Ċ Ġ* ĠDate : Ġ 1 8 . 0 6 . 2 0 2 0 Ċ Ġ* ĠTime : Ġ 1 2 : 5 1 Ċ Ġ* Ġ@ author ĠFre der ick ĠBa ier Ċ Ġ*/ Ċ class ĠMongoDB Converter Ġ{ ĊĊĠĠĠ Ġfun Ġconvert () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= ĠJson Lib . fromJson File ( File (" storage / mongo . json ")) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= Ġconfig . getString (" host ") !! ĊĠĠĠĠĠĠĠ Ġval Ġport Ġ= Ġconfig . getInt (" port ") !! ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Name Ġ= Ġconfig . getString (" database Name ") !! ĊĠĠĠĠĠĠĠ Ġval ĠuserName Ġ= Ġconfig . getString (" userName ") !! ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġconfig . getString (" password ") !! ĊĠĠĠĠĠĠĠ Ġval Ġcollection Prefix Ġ= Ġconfig . getString (" collection Prefix ") !! ĊĠĠĠĠĠĠĠ Ġval Ġmongo Client Ġ= Ġcreate Mongo Client ( host , Ġport , Ġdatabase Name , Ġpassword , ĠuserName ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcollection Ġ= Ġmongo Client . get Database ( database Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Collection < Load Offline Cloud Player >( collection Prefix Ġ+ Ġ" players ") ĊĊĠĠĠĠĠĠĠ Ġcollection . drop () ĊĊĠĠĠĠĠĠĠ ĠFile (" storage / mongo . json "). delete () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġfrom Load Offline Player ( load Offline Cloud Player : ĠLoad Offline Cloud Player ?): ĠOff line Cloud Player ? Ġ{ ĊĠĠĠĠĠĠĠ Ġload Offline Cloud Player Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġproperty Map As Document Ġ= Ġload Offline Cloud Player . property Map ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproperty Map Ġ= Ġproperty Map As Document . to Sorted Map (). map Values Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue String Ġ= Ġit . value . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Lib Ġ= ĠJson Lib . fromJson String ( value String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠclassName Ġ= Ġjson Lib . getString (" className ") !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclazz Ġ= Ġthis . find Class ( className ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġjson Lib . getObject (" saved Value ", Ġclazz ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperty ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOff line Cloud Player ( load Offline Cloud Player . name , Ġload Offline Cloud Player . unique Id , Ġload Offline Cloud Player . first Login , Ġload Offline Cloud Player . last Login , Ġload Offline Cloud Player . online Time , Ġload Offline Cloud Player . last Player Connection , ĠHashMap ( property Map )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠOff line Player Load Exception (" Error Ġwhile Ġloading ĠOff line Player Ġ${ load Offline Cloud Player . name } :", Ġex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget ConnectionString ( host : ĠString , Ġport : ĠInt , Ġdatabase Name : ĠString , Ġpassword : ĠString , ĠuserName : ĠString ): ĠConnection String Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( password . isBlank () Ġ|| ĠuserName . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠConnection String (" mongodb :// $ host :$ port /$ database Name ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠConnection String (" mongodb :// $ userName :$ password @ $ host :$ port /$ database Name ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Mongo Client ( host : ĠString , Ġport : ĠInt , Ġdatabase Name : ĠString , Ġpassword : ĠString , ĠuserName : ĠString ): ĠMongo Client Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠK Mongo . create Client ( getConnection String ( host , Ġport , Ġdatabase Name , Ġpassword , ĠuserName )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfind Class ( className : ĠString ): ĠClass < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclazz Ġ= Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠManager . instance . cloud Module Handler . find Module Class ( className ) ĊĠĠĠĠĠĠĠ Ġ}. get OrNull () ĊĠĠĠĠĠĠĠ Ġif Ġ( clazz Ġ!= Ġnull ) Ġreturn Ġclazz ĊĊĠĠĠĠĠĠĠ Ġval Ġclass Loader Ġ= ĠManager . instance . app ClassLoader ĊĠĠĠĠĠĠĠ Ġreturn ĠClass . forName ( className , Ġtrue , Ġclass Loader ) ĊĊĠĠĠ Ġ} Ċ Ċ }