// ĠTodo : ĠFIX Ċ Ċ package Ġcom . gab riel . lun ala . project . util . command Ċ Ċ import Ġcom . gab riel . lun ala . project . util . L un ala Profile Ċ import Ġcom . gab riel . lun ala . project . util . L un ala Reply Ċ import Ġcom . gitlab . k ord lib . core . behavior . channel . Message Channel Behavior Ċ import Ġcom . gitlab . k ord lib . core . behavior . channel . create Message Ċ import Ġcom . gitlab . k ord lib . rest . builder . message . Embed Builder Ċ import Ġcom . gitlab . k ord lib . rest . builder . message . Message Create Builder Ċ Ċ class ĠL un ala Embed d able Reply ( ĊĠĠĠ Ġprefix : ĠString , ĊĠĠĠ Ġmessage : ĠString , ĊĠĠĠ Ġmentions : ĠBoolean , ĊĠĠĠ Ġvar Ġembed : ĠEmbed Builder ? Ġ= Ġnull , Ċ ): ĠL un ala Reply ( prefix , Ġmessage , Ġmentions ) Ċ Ċ operator Ġfun ĠL un ala Reply . Companion . invoke ( message : ĠString ? Ġ= Ġnull , Ġembed : ĠEmbed Builder . () Ġ-> ĠUnit ): ĠL un ala Reply Ġ= ĊĠĠĠ ĠL un ala Embed d able Reply (": large _ blue _ di amond :", Ġmessage . or Empty (), Ġtrue , ĠEmbed Builder (). apply ( embed )) Ċ Ċ class ĠReply DSL Ġ{ ĊĊĠĠĠ Ġval Ġreplies Ġ= Ġmutable ListOf < L un ala Reply >() ĊĊĠĠĠ Ġfun Ġappend ( reply : ĠL un ala Embed d able Reply . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreplies . add ( L un ala Embed d able Reply (": large _ blue _ di amond :", Ġ"", Ġreplies . isEmpty ()). apply ( reply )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcompile ( target : ĠL un ala Profile ?) Ġ= ĠMessage Create Builder (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġcontent Ġ= Ġreplies ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġreply Ġ-> Ġreply . compile ( target ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ("\ n ") ĊĠĠĠĠĠĠĠ Ġembed Ġ= Ġreplies ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġreply Ġ-> Ġ( reply Ġas ? ĠL un ala Embed d able Reply )?. embed Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull () ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ suspend Ġfun ĠMessage Channel Behavior . reply ( target : ĠL un ala Profile ? Ġ= Ġnull , Ġreply : ĠReply DSL ) Ġ{ ĊĠĠĠ Ġcreate Message Ġ{ ĊĠĠĠĠĠĠĠ Ġreply . compile ( target ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġit . content ĊĠĠĠĠĠĠĠĠĠĠĠ Ġembed Ġ= Ġit . embed ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ suspend Ġfun ĠMessage Channel Behavior . reply ( target : ĠL un ala Profile ? Ġ= Ġnull , Ġbuilder : ĠReply DSL . () Ġ-> ĠUnit ) Ġ= ĊĠĠĠ Ġreply ( target , ĠReply DSL (). apply ( builder ))