package Ġio . github . lun ar watcher . chat bot . bot . commands . meta Ċ Ċ import Ġio . github . lun ar watcher . chat bot . bot . chat . Message Ċ import Ġio . github . lun ar watcher . chat bot . bot . chat . Reply Message Ċ import Ġio . github . lun ar watcher . chat bot . bot . commands . Abstract Command Ċ import Ġio . github . lun ar watcher . chat bot . bot . sites . Chat Ċ Ċ class ĠWho Is Ġ: ĠAbstract Command (" who is ", ĠlistOf (" identify ")){ ĊĠĠĠ Ġoverride Ġfun Ġhandle Command ( message : ĠMessage ): ĠList < Reply Message >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsite : ĠChat Ġ= Ġmessage . chat ĊĠĠĠĠĠĠĠ Ġval Ġwho Ġ= Ġsplit Command ( message . content )[" content "] ?. trim () Ġ?: Ġreturn ĠlistOf ( Reply Message (" You Ġhave Ġto Ġtell Ġme Ġwho Ġto Ġidentify ", Ġtrue )) ĊĠĠĠĠĠĠĠ Ġif ( who . isEmpty ()) Ġreturn ĠlistOf ( Reply Message (" You Ġhave Ġto Ġtell Ġme Ġwho Ġto Ġidentify ", Ġtrue )) ĊĠĠĠĠĠĠĠ Ġval Ġusername : ĠString ĊĠĠĠĠĠĠĠ Ġval Ġuid Ġ= Ġif ( who . matches ( DIGIT _ REGEX )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġsite . getUsername ( who . to Long ()); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwho . to Long () ĊĊĠĠĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġwho ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġsite . get Uid For Username In Room ( who , Ġmessage . room ID ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( r . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" No Ġusers Ġwith Ġthe Ġusername Ġ`$ who ` Ġfound ", Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif ( r . size Ġ> Ġ 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" More Ġthan Ġone Ġuser Ġwith Ġthe Ġusername Ġ`$ who ` Ġfound . ĠPlease Ġuse Ġthe ĠUID . Ġ( found : Ġ$ r )", Ġtrue )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr [ 0 ] !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (""" ${ ĊĠĠĠĠĠĠĠ Ġif Ġ( site . name Ġ== Ġ" stackoverflow " Ġ|| Ġsite . name Ġ== Ġ" met ast ack exchange ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" [$ username ]( ${ site . host . main Site Host }/ users /$ uid )" ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( site . name Ġ== Ġ" stack exchange ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" [$ username ]( ${ site . host . chat Host }/ users /$ uid )" ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġusername ĊĠĠĠĠĠĠĠ Ġ} Ġ( UID Ġ$ uid ) """. trim Indent (). replace ("\ n ", Ġ""), Ġtrue )); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠDIG IT _ REGEX Ġ= Ġ"( \\ d +) ". to Regex () ĊĠĠĠ Ġ} Ċ }