package Ġcom . r 4 g 3 b aby . simp les core . score board Ċ Ċ import Ġcom . r 4 g 3 b aby . simp les core . Simple Score Ċ import Ġcom . r 4 g 3 b aby . simp les core . score board . handlers . Bu kkit Score board Ċ import Ġcom . r 4 g 3 b aby . simp les core . score board . handlers . Protocol Score board Ċ import Ġcom . r 4 g 3 b aby . simp les core . score board . handlers . Score board Handler Ċ import Ġcom . r 4 g 3 b aby . simp les core . score board . listeners . Mc M MO Listener Ċ import Ġcom . r 4 g 3 b aby . simp les core . score board . listeners . Players Listener Ċ import Ġcom . r 4 g 3 b aby . simp les core . score board . models . Player Data Ċ import Ġcom . r 4 g 3 b aby . simp les core . score board . models . Score board Ċ import Ġcom . r 4 g 3 b aby . simp les core . score board . placeholders . P API Expansion Ċ import Ġcom . r 4 g 3 b aby . simp les core . score board . tasks . Score board Task Ċ import Ġcom . r 4 g 3 b aby . simp les core . score board . world guard . World Guard API Ċ import Ġcom . r 4 g 3 b aby . simp les core . utils . configs . ConfigFile Ċ import Ġcom . r 4 g 3 b aby . simp les core . utils . isEqual Ċ import Ġorg . bukkit . Bu kkit Ċ import Ġorg . bukkit . Location Ċ import Ġorg . bukkit . World Ċ import Ġorg . bukkit . entity . Player Ċ import Ġorg . bukkit . plugin . Plugin Ċ import Ġjava . util .* Ċ Ċ class ĠScore board Manager Ġ{ ĊĠĠĠ Ġinternal Ġval Ġscore board Handler : ĠScore board Handler ĊĊĠĠĠ Ġval Ġscore boards : ĠScore boards Ġ= ĠScore boards () ĊĠĠĠ Ġval Ġplayers Data : ĠP layers Data Ġ= ĠP layers Data () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠBu kkit . get PluginManager (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Events ( Players Listener (), ĠSimple Score . plugin ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Bu kkit . get PluginManager (). is Plugin Enabled (" mc M MO ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister Events ( Mc M MO Listener (), ĠSimple Score . plugin ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Simple Score . use Placeholder API ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠP API Expansion ( Simple Score . plugin ). register () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġscore board Handler Ġ= Ġif Ġ(! Simple Score . config . force Legacy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Bu kkit . get PluginManager (). is Plugin Enabled (" Protocol Lib ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProtocol Score board () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĠBu kkit Score board () ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĠBu kkit Score board () ĊĊĠĠĠĠĠĠĠ ĠScore board Task (). run Task Timer As ynchronously ( Simple Score . plugin , Ġ 2 0 L , Ġ 1 L ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġreload () Ġ{ ĊĠĠĠĠĠĠĠ Ġscore boards . clear Cache () ĊĠĠĠĠĠĠĠ Ġif Ġ(! Simple Score . config . save Player Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayers Data . clear Player Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġplayers Data . forEach Ġ{ Ġ(_, Ġplayer Data ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer Data . get Score board ( Simple Score . plugin )?. let Ġ{ Ġscore board Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer Data . set Score board ( Simple Score . plugin , Ġscore boards . get ( score board . name )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠBu kkit . get Online Players (). forEach Ġ{ Ġscore board Handler . clear Score board ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġupdate Score board State ( player : ĠPlayer , Ġto : ĠLocation Ġ= Ġplayer . location , Ġfrom : ĠLocation ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplayers Data . get ( player ). let Ġ{ Ġplayer Data Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġworld Board s Ġ= Ġscore boards . get For World ( to . world ). filter Ġ{ Ġit . can See ( player ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġregion Board s Ġ= ĠWorld Guard API . get Flag ( player , Ġto ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġneeds Score board Ġ= Ġ! player Data . is Disabled Ġ&& Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer Data . has Score boards Ġ|| Ġworld Board s . isNotEmpty () Ġ|| Ġregion Board s . isNotEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( score board Handler . has Score board ( player )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! needs Score board ) Ġscore board Handler . remove Score board ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( player Data . is Hidden ) Ġscore board Handler . clear Score board ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( from Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfrom World Board s Ġ= Ġscore boards . get For World ( from . world ). filter Ġ{ Ġit . can See ( player ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfrom Region Board s Ġ= ĠWorld Guard API . get Flag ( player , Ġfrom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! from World Board s . isEqual ( world Board s ) Ġ|| Ġ! from Region Board s . isEqual ( region Board s )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBu kkit . get Scheduler (). run Task ( Simple Score . plugin ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscore board Handler . clear Score board ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( needs Score board ) Ġscore board Handler . create Score board ( player ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠScore boards Ġ: ĠIterable < Map . Entry < String , ĠScore board >> Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġworld Score boards Cache Ġ= ĠHashMap < String , ĠList < Score board >>() ĊĊĠĠĠĠĠĠĠ Ġfun Ġget ( score board : ĠString ): ĠScore board ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSimple Score . config . score boards [ score board . lowercase ()] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget For World ( world : ĠWorld ) Ġ= Ġget For World ( world . name ) ĊĠĠĠĠĠĠĠ Ġfun Ġget For World ( world : ĠString ): ĠList < Score board > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġworld Score boards Cache . compute If Absent ( world ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable ListOf < Score board >(). also Ġ{ Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Score . config . world s . forEach Ġ{ Ġ( predicate , Ġscore boards ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( predicate . test ( world )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscore boards . map NotNull Ġ{ Ġget ( it ) Ġ}. forEach Ġ{ Ġscore board Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( score board ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ forEach ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġclear Cache () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworld Score boards Cache . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġiterator (): ĠIterator < Map . Entry < String , ĠScore board >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSimple Score . config . score boards . as Iterable (). iterator () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠP layers Data Ġ: ĠIterable < Map . Entry < UUID , ĠPlayer Data >> Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġplayers Data Ġ= ĠHashMap < UUID , ĠPlayer Data >() ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġplayers Data File : ĠConfig File Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfig File ( Simple Score . plugin , Ġ" players Data "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . options (). header (" This Ġfile Ġis Ġgenerated Ġby Ġthe Ġplugin Ġto Ġstore Ġplayer Ġinformation .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Simple Score . config . save Player Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Score . plugin . logger . info (" Loading Ġplayer Ġdata ...") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayers Data File . config . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Keys ( false ). forEach Ġ{ Ġunique Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplayer Section Ġ= Ġget Configuration Section ( unique Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Hidden Ġ= Ġplayer Section . getBoolean (" is Hidden ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Disabled Ġ= Ġplayer Section . getBoolean (" is Disabled ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscore board Ġ= Ġplayer Section . getString (" score board ", Ġnull )?. let Ġ{ Ġscore board Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Score . config . score boards [ score board . lowercase ()] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayers Data [ UUID . fromString ( unique Id )] Ġ= ĠPlayer Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Hidden ) Ġmutable Set Of ( Simple Score . plugin ) Ġelse Ġmutable Set Of (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Disabled ) Ġmutable Set Of ( Simple Score . plugin ) Ġelse Ġmutable Set Of (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( score board Ġ!= Ġnull ) ĠLinkedHashMap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( Simple Score . plugin Ġto Ġscore board ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġelse ĠLinkedHashMap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Score . plugin . logger . info (" Player Ġdata Ġloaded .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġsave () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Simple Score . config . save Player Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Score . plugin . logger . info (" Saving Ġplayer Ġdata ...") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayers Data File . config . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠClear Ġcurrent Ġplayer Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Keys ( false ). forEach Ġ{ Ġset ( it , Ġnull ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayers Data . forEach Ġ{ Ġ( unique Id , Ġplayer Data ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Hidden Ġ= Ġplayer Data . is H iding ( Simple Score . plugin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Disabled Ġ= Ġplayer Data . is Dis abling ( Simple Score . plugin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscore board Ġ= Ġplayer Data . get Score board ( Simple Score . plugin ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Hidden Ġ|| Ġis Disabled Ġ|| Ġscore board Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Section ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunique Id . toString (), Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" is Hidden " Ġto Ġif Ġ( is Hidden ) Ġtrue Ġelse Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" is Disabled " Ġto Ġif Ġ( is Disabled ) Ġtrue Ġelse Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" score board " Ġto Ġscore board ?. name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave ( players Data File ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Score . plugin . logger . info (" Player Ġdata Ġsaved .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġclear Player Data () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayers Data . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget ( player : ĠPlayer ) Ġ= Ġget ( player . unique Id ) ĊĠĠĠĠĠĠĠ Ġfun Ġget ( unique Id : ĠUUID ): ĠPlayer Data Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġplayers Data . get Or Put ( unique Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ get Or Put ĠPlayer Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Score boards ( player : ĠPlayer ): ĠList < Score board > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget ( player ). score boards ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġhas Score boards ( player : ĠPlayer ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget ( player ). has Score boards ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Score board ( plugin : ĠPlugin , Ġplayer : ĠPlayer ): ĠScore board ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget ( player ). get Score board ( plugin ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Score board ( plugin : ĠPlugin , Ġplayer : ĠPlayer , Ġscore board : ĠScore board ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( player ). set Score board ( plugin , Ġscore board ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Score . manager . update Score board State ( player ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġis Hidden ( player : ĠPlayer ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget ( player ). is Hidden ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġis H iding ( plugin : ĠPlugin , Ġplayer : ĠPlayer ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget ( player ). is H iding ( plugin ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Hidden ( plugin : ĠPlugin , Ġplayer : ĠPlayer , Ġhidden : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( player ). also Ġ{ Ġplayer Data Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( hidden ) Ġplayer Data . hide ( plugin ) Ġelse Ġplayer Data . show ( plugin ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Score . manager . update Score board State ( player ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġtoggle Hidden ( plugin : ĠPlugin , Ġplayer : ĠPlayer ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Hidden Ġ= Ġget ( player ). let Ġ{ Ġplayer Data Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( player Data . hide ( plugin )) Ġreturn @ let Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ let Ġ! player Data . show ( plugin ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Score . manager . update Score board State ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġis Hidden ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġis Disabled ( player : ĠPlayer ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget ( player ). is Disabled ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġis Dis abling ( plugin : ĠPlugin , Ġplayer : ĠPlayer ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget ( player ). is Dis abling ( plugin ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Disabled ( plugin : ĠPlugin , Ġplayer : ĠPlayer , Ġdisabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( player ). also Ġ{ Ġplayer Data Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( disabled ) Ġplayer Data . disable ( plugin ) Ġelse Ġplayer Data . enable ( plugin ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Score . manager . update Score board State ( player ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġtoggle Disabled ( plugin : ĠPlugin , Ġplayer : ĠPlayer ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Disabled Ġ= Ġget ( player ). let Ġ{ Ġplayer Data Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( player Data . disable ( plugin )) Ġreturn @ let Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ let Ġ! player Data . enable ( plugin ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Score . manager . update Score board State ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġis Disabled ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġiterator (): ĠIterator < Map . Entry < UUID , ĠPlayer Data >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġplayers Data . as Iterable (). iterator () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }