/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 Ġd kim 1 9 3 7 5 Ċ Ġ* Ċ Ġ* Ġ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 Ġme . dk im 1 9 3 7 5 . bed w ars . plugin . manager Ċ Ċ import Ġme . dk im 1 9 3 7 5 . bed w ars . plugin . Bed w ars Plugin Ċ import Ġme . dk im 1 9 3 7 5 . bed w ars . plugin . data . Game Data Ċ import Ġme . dk im 1 9 3 7 5 . bed w ars . plugin . enum class . Main Shop Items Ċ import Ġorg . bukkit . Bu kkit Ċ import Ġorg . bukkit . Location Ċ import Ġjava . util .* Ċ Ċ class ĠData FileManager ( private Ġval Ġplugin : ĠBed w ars Plugin ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġsave Ġ= Ġfalse ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠBu kkit . get Scheduler (). run Task ( plugin ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBu kkit . get Scheduler (). run Task Timer ( plugin , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( save ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugin . data File . save () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 1 0 0 L , Ġ 1 0 0 L ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Quick Buy Slot ( slot : ĠInt , Ġplayer : ĠUUID ): ĠMain Shop Items ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMain Shop Items . fromString ( plugin . data File . config . getString ("$ player . shop . quick - buy .$ slot ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Quick Buy Slot ( slot : ĠInt , Ġplayer : ĠUUID , Ġitem : ĠMain Shop Items ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugin . data File . config . set ("$ player . shop . quick - buy .$ slot ", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġplugin . data File . config . set ("$ player . shop . quick - buy .$ slot ", Ġitem . name ) ĊĠĠĠĠĠĠĠ Ġsave Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Game Data ( data : ĠGame Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplugin . data File . config . set (" game - data .${ data . world . name }", Ġdata ) ĊĠĠĠĠĠĠĠ Ġsave Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove Game Data ( data : ĠGame Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplugin . data File . config . set (" game - data .${ data . world . name }", Ġnull ) ĊĠĠĠĠĠĠĠ Ġsave Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Game Data ( world : ĠString ): ĠGame Data ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġplugin . data File . config . get (" game - data .$ world ") Ġas ? ĠGame Data ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Game Datas (): ĠSet < Game Data > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsection Ġ= Ġplugin . data File . config . getConfiguration Section (" game - data ") Ġ?: Ġreturn Ġempty Set () ĊĠĠĠĠĠĠĠ Ġval ĠdataSet Ġ= Ġmutable Set Of < Game Data >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( key Ġin Ġsection . get Keys ( false )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Bu kkit . get World ( key ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġsection . get ( key ) Ġ?: Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ! is ĠGame Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdataSet . add ( data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠdataSet . toSet () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Lobby ( location : ĠLocation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplugin . data File . config . set (" lob by ", Ġlocation ) ĊĠĠĠĠĠĠĠ Ġsave Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Lobby (): ĠLocation ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġplugin . data File . config . get (" lob by ") Ġas ? ĠLocation ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Editing ( data : ĠGame Data ) Ġ= Ġplugin . data File . config . getBoolean (" editing .${ data . world . name }") ĊĊĠĠĠ Ġfun Ġset Editing ( data : ĠGame Data , Ġediting : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! editing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugin . data File . config . set (" editing .${ data . world . name }", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġplugin . data File . config . set (" editing .${ data . world . name }", Ġediting ) ĊĠĠĠĠĠĠĠ Ġsave Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} Ċ }