/* Ċ Ġ* Ġ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 . auction s . bukkit . database . table Ċ Ċ import Ġcom . r pk it . auction s . bukkit . RP KA uction s Bu kkit Ċ import Ġcom . r pk it . auction s . bukkit . auction . RP KA uction Ċ import Ġcom . r pk it . auction s . bukkit . auction . RP KA uction Id Ċ import Ġcom . r pk it . auction s . bukkit . auction . RP KA uction Service Ċ import Ġcom . r pk it . auction s . bukkit . bid . RP KB id Ċ import Ġcom . r pk it . auction s . bukkit . bid . RP KB id Id Ċ import Ġcom . r pk it . auction s . bukkit . bid . RP KB id Impl Ċ import Ġcom . r pk it . auction s . bukkit . database . create Ċ import Ġcom . r pk it . auction s . bukkit . database . jooq . Tables . RP KIT _ BID Ċ import Ġcom . r pk it . characters . bukkit . character . RP K Character Id Ċ import Ġcom . r pk it . characters . bukkit . character . RP K Character Service Ċ import Ġcom . r pk it . core . database . Database Ċ import Ġcom . r pk it . core . database . Table Ċ import Ġcom . r pk it . core . service . Services Ċ Ċ /** Ċ Ġ* ĠRepresents Ġthe Ġbid Ġtable . Ċ Ġ*/ Ċ class ĠRP KB id Table ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdatabase : ĠDatabase , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġplugin : ĠRP KA uction s Bu kkit Ċ ) Ġ: ĠTable Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcache Ġ= Ġif Ġ( plugin . config . getBoolean (" caching . r pk it _ bid . id . enabled ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase . cache Manager . create Cache ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" r pk - auction s - bukkit . r pk it _ bid . id ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInt :: class . java ObjectType , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRP KB id :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugin . config . getLong (" caching . r pk it _ bid . id . size ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert ( entity : ĠRP KB id ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġauction Id Ġ= Ġentity . auction . id Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġcharacter Id Ġ= Ġentity . character . id Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġdatabase . create ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. insert Into ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ BID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ BID . AU CTION _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ BID . CHARACTER _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ BID . AMOUNT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauction Id . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcharacter Id . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity . amount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġdatabase . create . last ID (). toInt () ĊĠĠĠĠĠĠĠ Ġentity . id Ġ= ĠRP KB id Id ( id ) ĊĠĠĠĠĠĠĠ Ġcache ?. set ( id , Ġentity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate ( entity : ĠRP KB id ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġentity . id Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġauction Id Ġ= Ġentity . auction . id Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġcharacter Id Ġ= Ġentity . character . id Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġdatabase . create ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. update ( RP KIT _ BID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( RP KIT _ BID . AU CTION _ ID , Ġauction Id . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( RP KIT _ BID . CHARACTER _ ID , Ġcharacter Id . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( RP KIT _ BID . AMOUNT , Ġentity . amount ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( RP KIT _ BID . ID . eq ( id . value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġcache ?. set ( id . value , Ġentity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġget ( id : ĠRP KB id Id ): ĠRP KB id ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( cache ?. containsKey ( id . value ) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcache [ id . value ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdatabase . create ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. select ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ BID . AU CTION _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ BID . CHARACTER _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRP KIT _ BID . AMOUNT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( RP KIT _ BID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( RP KIT _ BID . ID . eq ( id . value )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch One () Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġauction Service Ġ= ĠServices [ RP KA uction Service :: class . java ] Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġauction Id Ġ= Ġresult . get ( RP KIT _ BID . AU CTION _ ID ) ĊĠĠĠĠĠĠĠ Ġval Ġauction Ġ= Ġauction Service . get Auction ( RP KA uction Id ( auction Id )) ĊĠĠĠĠĠĠĠ Ġval Ġcharacter Service Ġ= ĠServices [ RP K Character Service :: class . java ] Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġcharacter Id Ġ= Ġresult . get ( RP KIT _ BID . CHARACTER _ ID ) ĊĠĠĠĠĠĠĠ Ġval Ġcharacter Ġ= Ġcharacter Service . get Character ( RP K Character Id ( character Id )) ĊĠĠĠĠĠĠĠ Ġif Ġ( auction Ġ!= Ġnull Ġ&& Ġcharacter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbid Ġ= ĠRP KB id Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcharacter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . get ( RP KIT _ BID . AMOUNT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache ?. set ( id . value , Ġbid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbid ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . create ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. delete From ( RP KIT _ BID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( RP KIT _ BID . ID . eq ( id . value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġall Ġb ids Ġfor Ġa Ġparticular Ġauction . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġlist Ġof Ġthe Ġb ids Ġmade Ġon Ġthe Ġauction ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget ( auction : ĠRP KA uction ): ĠList < RP KB id > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġdatabase . create ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. select ( RP KIT _ BID . ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( RP KIT _ BID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( RP KIT _ BID . AU CTION _ ID . eq ( auction . id ?. value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch () ĊĠĠĠĠĠĠĠ Ġreturn Ġresults . map Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( RP KB id Id ( result . get ( RP KIT _ BID . ID ))) ĊĠĠĠĠĠĠĠ Ġ}. filter NotNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( entity : ĠRP KB id ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġentity . id Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġdatabase . create ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. delete From ( RP KIT _ BID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( RP KIT _ BID . ID . eq ( id . value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġcache ?. remove ( id . value ) ĊĠĠĠ Ġ} Ċ }