/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠRen ĠBind en Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . r pk it . stat builds . bukkit Ċ Ċ import Ġcom . r pk it . characters . bukkit . character . RP K Character Ċ import Ġcom . r pk it . core . bukkit . plugin . RP K Bu kkit Plugin Ċ import Ġcom . r pk it . core . database . Database Ċ import Ġcom . r pk it . core . database . Database Connection Properties Ċ import Ġcom . r pk it . core . database . Database Migration Properties Ċ import Ġcom . r pk it . core . database . Unsupported Database Dialect Exception Ċ import Ġcom . r pk it . core . service . Services Ċ import Ġcom . r pk it . skills . bukkit . skills . RP K Skill Point Service Ċ import Ġcom . r pk it . stat builds . bukkit . command . stat attribute . Stat Attribute Command Ċ import Ġcom . r pk it . stat builds . bukkit . command . stat build . Stat Build Command Ċ import Ġcom . r pk it . stat builds . bukkit . database . table . RP K Character Stat Points Table Ċ import Ġcom . r pk it . stat builds . bukkit . listener . Async Player Pre Login Listener Ċ import Ġcom . r pk it . stat builds . bukkit . listener . Player Quit Listener Ċ import Ġcom . r pk it . stat builds . bukkit . listener . RP K Character Switch Listener Ċ import Ġcom . r pk it . stat builds . bukkit . messages . Stat Build s Messages Ċ import Ġcom . r pk it . stat builds . bukkit . skill point . RP K Skill Point ServiceImpl Ċ import Ġcom . r pk it . stat builds . bukkit . stat attribute . RP K Stat Attribute Service Ċ import Ġcom . r pk it . stat builds . bukkit . stat attribute . RP K Stat Attribute ServiceImpl Ċ import Ġcom . r pk it . stat builds . bukkit . stat build . RP K Stat Build Service Ċ import Ġcom . r pk it . stat builds . bukkit . stat build . RP K Stat Build ServiceImpl Ċ import Ġcom . r pk it . stats . bukkit . stat . RP K Stat Variable Ċ import Ġcom . r pk it . stats . bukkit . stat . RP K Stat Variable Name Ċ import Ġcom . r pk it . stats . bukkit . stat . RP K Stat Variable Service Ċ import Ġorg . b stats . bukkit . Metrics Ċ import Ġorg . bukkit . configuration . file . Yaml Configuration Ċ import Ġjava . io . File Ċ Ċ class ĠRP K Stat Build s Bu kkit Ġ: ĠRP K Bu kkit Plugin () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġdatabase : ĠDatabase ĊĠĠĠ Ġlateinit Ġvar Ġmessages : ĠStat Build s Messages ĊĊĠĠĠ Ġoverride Ġfun Ġon Enable () Ġ{ ĊĠĠĠĠĠĠĠ ĠSystem . setProperty (" com . r pk it . stat builds . bukkit . shadow . impl . org . jooq . no - logo ", Ġ" true ") ĊĊĠĠĠĠĠĠĠ ĠMetrics ( this , Ġ 6 6 6 3 ) ĊĠĠĠĠĠĠĠ Ġsave Default Config () ĊĊĠĠĠĠĠĠĠ Ġmessages Ġ= ĠStat Build s Messages ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdatabase ConfigFile Ġ= ĠFile ( data Folder , Ġ" database . yml ") ĊĠĠĠĠĠĠĠ Ġif Ġ(! database ConfigFile . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Resource (" database . yml ", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Config Ġ= ĠYaml Configuration . load Configuration ( database ConfigFile ) ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Url Ġ= Ġdatabase Config . getString (" database . url ") ĊĠĠĠĠĠĠĠ Ġif Ġ( database Url Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . se vere (" Database ĠURL Ġnot Ġset !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Username Ġ= Ġdatabase Config . getString (" database . username ") ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Password Ġ= Ġdatabase Config . getString (" database . password ") ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Sql Dialect Ġ= Ġdatabase Config . getString (" database . dialect ") ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Maximum PoolSize Ġ= Ġdatabase Config . getInt (" database . maximum - pool - size ", Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Minimum Idle Ġ= Ġdatabase Config . getInt (" database . minimum - idle ", Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( database Sql Dialect Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . se vere (" Database ĠSQL Ġdialect Ġnot Ġset !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdatabase Ġ= ĠDatabase ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Connection Properties ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Username , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Password , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Sql Dialect , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Maximum PoolSize , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Minimum Idle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Migration Properties ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( database Sql Dialect ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" MYSQL " Ġ-> Ġ" com / r pk it / stat builds / migrations / mysql " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" SQL ITE " Ġ-> Ġ" com / r pk it / stat builds / migrations / sqlite " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠUnsupported Database Dialect Exception (" Unsupported Ġdatabase Ġdialect Ġ$ database Sql Dialect ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" fly way _ schema _ history _ stat _ builds " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass Loader ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdatabase . add Table ( RP K Character Stat Points Table ( database , Ġthis )) ĊĊĠĠĠĠĠĠĠ Ġval Ġstat Attribute Service Ġ= ĠRP K Stat Attribute ServiceImpl ( this ) ĊĠĠĠĠĠĠĠ ĠServices [ RP K Stat Attribute Service :: class . java ] Ġ= Ġstat Attribute Service ĊĠĠĠĠĠĠĠ Ġval Ġstat Build Service Ġ= ĠRP K Stat Build ServiceImpl ( this ) ĊĠĠĠĠĠĠĠ ĠServices [ RP K Stat Build Service :: class . java ] Ġ= Ġstat Build Service ĊĠĠĠĠĠĠĠ ĠServices [ RP K Skill Point Service :: class . java ] Ġ= ĠRP K Skill Point ServiceImpl ( this ) ĊĊĠĠĠĠĠĠĠ ĠServices . require ( RP K Stat Variable Service :: class . java ). when Available Ġ{ Ġstat Variable Service Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstat Attribute Service . stat Attributes . forEach Ġ{ Ġstat Attribute Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstat Variable Service . add Stat Variable ( object Ġ: ĠRP K Stat Variable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġname Ġ= ĠRP K Stat Variable Name ( stat Attribute . name . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget ( character : ĠRP K Character ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstat Build Service . get Pre loaded Stat Points ( character , Ġstat Attribute )?. toDouble () Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġregister Commands () ĊĠĠĠĠĠĠĠ Ġregister Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġregister Commands () Ġ{ ĊĠĠĠĠĠĠĠ Ġget Command (" stat build ") ?. set Executor ( Stat Build Command ( this )) ĊĠĠĠĠĠĠĠ Ġget Command (" stat attribute ") ?. set Executor ( Stat Attribute Command ( this )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġregister Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġregister Listeners ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAsync Player Pre Login Listener (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPlayer Quit Listener (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRP K Character Switch Listener () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ }