package Ġcom . ill uz ion z stud ios . mist . data . database Ċ Ċ import Ġcom . ill uz ion z stud ios . mist . data . player . Abstract Player Ċ import Ġcom . ill uz ion z stud ios . mist . data . player . Offline Player Ċ Ċ /** Ċ Ġ* ĠA Ġdatabase Ġwhere Ġdata Ġcan Ġbe Ġstored Ċ Ġ*/ Ċ interface ĠDatabase Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġa Ġcached Ġvalue ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġplayer ĠĠĠĠĠĠĠ ĠThe Ġplayer Ġwh os Ġdata Ġto Ġget ĊĠĠĠĠ Ġ* Ġ@ param Ġquerying Field ĠThe Ġfield Ġwe 're Ġtrying Ġto Ġaccess ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġvalue Ġas Ġan Ġ[ Object ] Ġto Ġbe Ġcast ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Cached Value ( player : ĠAbstract Player , Ġquerying Field : ĠString ): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġplayer . cached Data . get OrDefault ( query ing Field , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġa Ġcached Ġvalue ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġplayer ĠĠĠĠĠĠĠ ĠThe Ġplayer Ġwh os Ġdata Ġto Ġset ĊĠĠĠĠ Ġ* Ġ@ param Ġquerying Field ĠThe Ġfield Ġwe 're Ġtrying Ġto Ġaccess ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue ĠĠĠĠĠĠĠĠ ĠThe Ġvalue Ġwe 're Ġsetting Ġin Ġthe Ġdatabase ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Cached Value ( player : ĠAbstract Player , Ġquerying Field : ĠString , Ġvalue : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġplayer . cached Data [ query ing Field ] Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġall Ġstored Ġfields Ġfor Ġa Ġplayer ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠField , ĠValue Ġpairs ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Fields ( player : ĠAbstract Player ): ĠHashMap < String , ĠAny ?> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġa Ġvalue Ġfrom Ġthe Ġdatabase ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġplayer ĠĠĠĠĠĠĠ ĠThe Ġplayer Ġwh os Ġdata Ġto Ġget ĊĠĠĠĠ Ġ* Ġ@ param Ġquerying Field ĠThe Ġfield Ġwe 're Ġtrying Ġto Ġaccess ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġvalue Ġas Ġan Ġ[ Object ] Ġto Ġbe Ġcast ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget FieldValue ( player : ĠAbstract Player , Ġquerying Field : ĠString ): ĠAny ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġa Ġvalue Ġin Ġthe Ġdatabase ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġplayer ĠĠĠĠĠĠĠ ĠThe Ġplayer Ġwh os Ġdata Ġto Ġset ĊĠĠĠĠ Ġ* Ġ@ param Ġquerying Field ĠThe Ġfield Ġwe 're Ġtrying Ġto Ġaccess ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue ĠĠĠĠĠĠĠĠ ĠThe Ġvalue Ġwe 're Ġsetting Ġin Ġthe Ġdatabase ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset FieldValue ( player : ĠAbstract Player , Ġquerying Field : ĠString , Ġvalue : ĠAny ?) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġa Ġlist Ġof Ġall Ġsaved Ġplayers Ġin Ġthe Ġdatabase ĊĠĠĠĠ Ġ* ĠReturned Ġas Ġoffline Ġplayer Ġas Ġmay Ġnot Ġbe Ġonline ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġsaved Players : ĠList < Offline Player >? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOpen Ġconnection Ġto Ġdatabase Ġif Ġnecessary ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠConnected Ġsuccessfully ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġconnect (): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDispose Ġdatabase Ġif Ġneeded ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠDis connected Ġsuccessfully ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdisconnect (): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġif Ġthe Ġdatabase Ġis Ġopen Ġand Ġrunning ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠIf Ġdatabase Ġcan Ġset Ġand Ġretrieve Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġis Alive : ĠBoolean Ċ }