package Ġcom . j esse cor bet t . disk ord . bot Ċ Ċ import Ġcom . j esse cor bet t . disk ord . api . channel . Channel Client Ċ import Ġcom . j esse cor bet t . disk ord . api . channel . Embed Ċ import Ġcom . j esse cor bet t . disk ord . api . common . Message Ċ import Ġcom . j esse cor bet t . disk ord . api . global . Global Client Ċ import Ġcom . j esse cor bet t . disk ord . api . guild . Guild Client Ċ import Ġcom . j esse cor bet t . disk ord . api . invite . Invite Client Ċ import Ġcom . j esse cor bet t . disk ord . api . webhook . Webhook Client Ċ import Ġcom . j esse cor bet t . disk ord . internal . client . RestClient Ċ import Ġcom . j esse cor bet t . disk ord . util . sendMessage Ċ import Ġcom . j esse cor bet t . disk ord . util . send Reply Ċ Ċ /** Ċ Ġ* ĠCollection Ġof Ġutilities Ġfor Ġdis patched Ġevents , Ġsuch Ġas Ġaccess Ġto Ġclients Ċ Ġ*/ Ċ public Ġinterface ĠBot Context Ġ{ ĊĠĠĠ Ġpublic Ġval Ġclient : ĠRest Client ĊĊĠĠĠ Ġ// ĠGlobal Ġfunctions ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġan Ġinstance Ġof Ġthe Ġglobal Ġclient ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠTODO : ĠShould Ġthis Ġbe Ġa Ġproperty Ġaccessor Ġinstead ? ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġglobal (): ĠGlobal Client Ġ= ĠGlobal Client ( client ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġan Ġinstance Ġof Ġa Ġguild Ġclient ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġguild ( guild Id : ĠString ): ĠGuild Client Ġ= ĠGuild Client ( guild Id , Ġclient ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġan Ġinstance Ġof Ġa Ġchannel Ġclient ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġchannel ( channelId : ĠString ): ĠChannel Client Ġ= ĠChannel Client ( channelId , Ġclient ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġan Ġinstance Ġof Ġan Ġinvite Ġclient ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġinvite ( invite Code : ĠString ): ĠInv ite Client Ġ= ĠInv ite Client ( invite Code , Ġclient ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġan Ġinstance Ġof Ġa Ġwebhook Ġclient ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġwebhook ( webhook Id : ĠString ): ĠWeb hook Client Ġ= ĠWeb hook Client ( webhook Id , Ġclient ) ĊĊĠĠĠ Ġ// ĠMessage Ġreceiv ers ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġan Ġinstance Ġof Ġa Ġchannel Ġclient Ġfor Ġthe Ġ[ Message . channelId ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval ĠMessage . channel : ĠChannel Client ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġchannel ( channelId ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġan Ġinstance Ġof Ġa Ġguild Ġclient Ġfor Ġthe Ġ[ Message . channelId ] Ġor Ġnull Ġif Ġthere Ġis Ġno Ġguild ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval ĠMessage . guild : ĠGuild Client ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġguild Id ?. let Ġ{ Ġguild ( it ) Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDeletes Ġthe Ġmessage ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġsuspend Ġfun ĠMessage . delete () Ġ{ ĊĠĠĠĠĠĠĠ Ġchannel . delete Message ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSend Ġa Ġmessage Ġin Ġthe Ġsame Ġchannel Ġas Ġthis Ġmessage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmessage Ġthe Ġmessage Ġto Ġrespond Ġwith ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see Ġreply ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġsuspend Ġfun ĠMessage . respond ( message : ĠString ): ĠMessage Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġchannel . sendMessage ( message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSend Ġan Ġembed Ġin Ġthe Ġsame Ġchannel Ġas Ġthis Ġmessage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmessage Ġthe Ġmessage Ġto Ġrespond Ġwith ĊĠĠĠĠ Ġ* Ġ@ param Ġblock Ġa Ġblock Ġto Ġset Ġthe Ġembed Ġparameters Ġwith ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see Ġreply ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġsuspend Ġfun ĠMessage . respond Embed ( message : ĠString Ġ= Ġ"", Ġblock : ĠEmbed . () Ġ-> ĠUnit ): ĠMessage Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġchannel . sendMessage ( message , ĠEmbed (). apply Ġ{ Ġblock () Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSend Ġa Ġmessage Ġin Ġthe Ġsame Ġchannel Ġas Ġthis Ġmessage Ġand Ġdelete Ġthe Ġoriginal Ġmessage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmessage Ġthe Ġmessage Ġto Ġrespond Ġwith ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see Ġreply ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġsuspend Ġfun ĠMessage . respond And Delete ( message : ĠString ): ĠMessage Ġ{ ĊĠĠĠĠĠĠĠ Ġchannel . delete Message ( id ) ĊĠĠĠĠĠĠĠ Ġreturn Ġchannel . sendMessage ( message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSends Ġa Ġreply Ġto Ġan Ġexisting Ġmessage Ġusing Ġthe ĠDiscord Ġreply Ġfeature . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmessage Ġthe Ġmessage Ġto Ġreply Ġwith ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see Ġrespond ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġsuspend Ġfun ĠMessage . reply ( message : ĠString ): ĠMessage Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġchannel . send Reply ( this , Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSends Ġa Ġreply Ġto Ġan Ġexisting Ġmessage Ġusing Ġthe ĠDiscord Ġreply Ġfeature . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmessage Ġthe Ġmessage Ġto Ġreply Ġwith ĊĠĠĠĠ Ġ* Ġ@ param Ġblock Ġa Ġblock Ġto Ġset Ġthe Ġembed Ġparameters Ġwith ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see Ġrespond ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġsuspend Ġfun ĠMessage . reply Embed ( message : ĠString Ġ= Ġ"", Ġblock : ĠEmbed . () Ġ-> ĠUnit ): ĠMessage Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġchannel . send Reply ( this , Ġmessage , ĠEmbed (). apply Ġ{ Ġblock () Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġreaction Ġto Ġthis Ġmessage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġemoji Ġthe Ġemoji Ġto Ġreact Ġwith ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġsuspend Ġfun ĠMessage . react ( emoji : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġchannel . addMessage Reaction ( id , Ġemoji ) ĊĠĠĠ Ġ} Ċ } Ċ