package Ġio . github . ran ol p . kub o Ċ Ċ import Ġio . github . ran ol p . kub o . general . Lambda Processor Ċ import Ġio . github . ran ol p . kub o . general . Processor Ċ import Ġio . github . ran ol p . kub o . general . command . Command Data Ċ import Ġio . github . ran ol p . kub o . general . command . Commands Ċ import Ġio . github . ran ol p . kub o . general . command . Executor Ċ import Ġio . github . ran ol p . kub o . general . event . Event Ċ import Ġio . github . ran ol p . kub o . general . event . Events Ċ Ċ open Ġclass ĠBot Ġ{ ĊĠĠĠ Ġopen Ġfun Ġstart () Ġ{} ĊĊĠĠĠ Ġprotected Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠEvent > Ġwatch ( processor : ĠProcessor < T >) Ġ{ ĊĠĠĠĠĠĠĠ ĠEvents . watch ( T :: class , Ġprocessor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠEvent > Ġwatch ( no inline Ġprocessor : Ġ( T ) Ġ-> ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwatch ( Lambda Processor < T >( processor )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcommand ( name : ĠString , Ġdescription : ĠString ? Ġ= Ġnull , Ġvar arg Ġaliases : ĠString Ġ= Ġempty Array (), Ġexecutor Function : ĠExecutor .( Command Data ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCommands . new ( name , Ġdescription , Ġ* aliases , Ġexecutor Function Ġ= Ġexecutor Function ) ĊĠĠĠ Ġ} Ċ }