package Ġme . me li jn . me lij nb ot . database . message Ċ Ċ import Ġme . me li jn . me lij nb ot . database . HIG HER _ CACHE Ċ import Ġme . me li jn . me lij nb ot . database . NORMAL _ CACHE Ċ import Ġme . me li jn . me lij nb ot . enums . MessageType Ċ import Ġnet . dv 8 tion . j da . api . entities . Message Embed Ċ Ċ class ĠMessage Wrapper ( private Ġval Ġmessage Dao : ĠMessage Dao ) Ġ{ ĊĊĠĠĠ Ġsuspend Ġfun ĠgetMessage ( guild Id : ĠLong , Ġmsg Type : ĠMessageType ): ĠMod ular Message ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmessage Dao . getCache Entry ("$ msg Type :$ guild Id ", ĠH IG HER _ CACHE )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isBlank ()) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMod ular Message . from JSON ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġnull ) Ġreturn Ġresult ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġmessage Dao . get ( guild Id , Ġmsg Type ) ĊĠĠĠĠĠĠĠ Ġif Ġ( json Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Dao . set Cache Entry ("$ msg Type :$ guild Id ", Ġ"", ĠNORMAL _ CACHE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmodular Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMod ular Message . from JSON ( json ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmessage Dao . set Cache Entry ("$ msg Type :$ guild Id ", Ġmodular ?. toJSON () Ġ?: Ġ"", ĠNORMAL _ CACHE ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġmodular ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Message ( message : ĠMod ular Message , Ġguild Id : ĠLong , Ġtype : ĠMessageType ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( should Remove ( message )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Message ( guild Id , Ġtype ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( setMessage ( guild Id , Ġtype , Ġmessage )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġremove Message ( guild Id : ĠLong , Ġtype : ĠMessageType ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmessage Dao . remove ( guild Id , Ġtype ) ĊĠĠĠĠĠĠĠ Ġmessage Dao . set Cache Entry ("$ type :$ guild Id ", Ġ"", ĠNORMAL _ CACHE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Message ( guild Id : ĠLong , Ġtype : ĠMessageType , Ġmessage : ĠMod ular Message ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmessage Dao . set ( guild Id , Ġtype , Ġmessage . toJSON ()) ĊĠĠĠĠĠĠĠ Ġmessage Dao . set Cache Entry ("$ type :$ guild Id ", Ġmessage . toJSON (), ĠNORMAL _ CACHE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshould Remove ( message : ĠMod ular Message ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġmessage . message Content ĊĠĠĠĠĠĠĠ Ġval Ġembed Ġ= Ġmessage . embed ĊĠĠĠĠĠĠĠ Ġval Ġattachments Ġ= Ġmessage . attachments ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcontent Ġ== Ġnull Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattachments . isEmpty () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( embed Ġ== Ġnull Ġ|| Ġembed . isEmpty Ġ|| Ġ! embed . is Send able ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalidate Embed OrNull ( embed : ĠMessage Embed ): ĠMessage Embed ? Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( embed . isEmpty Ġ|| Ġ! embed . is Send able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġembed ĊĠĠĠĠĠĠĠ Ġ} Ċ }