package Ġcom . d md irc . kt irc . messages . processors čĊč Ċ import Ġcom . d md irc . kt irc . events . C tcp Reply Received č Ċ import Ġcom . d md irc . kt irc . events . I rc Event č Ċ import Ġcom . d md irc . kt irc . events . Notice Received č Ċ import Ġcom . d md irc . kt irc . messages . CT CP _ BYTE č Ċ import Ġcom . d md irc . kt irc . model . I rc Message č Ċ import Ġcom . d md irc . kt irc . model . User č Ċ import Ġcom . d md irc . kt irc . util . logger čĊč Ċ internal Ġclass ĠNotice Processor Ġ: ĠMessage Processor Ġ{ čĊčĊĠĠĠ Ġprivate Ġval Ġlog Ġby Ġlogger () čĊčĊĠĠĠ Ġoverride Ġval Ġcommands Ġ= ĠarrayOf (" NOTICE ") čĊčĊĠĠĠ Ġoverride Ġfun Ġprocess ( message : ĠI rc Message ) Ġ= Ġwhen Ġ{ čĊĠĠĠĠĠĠĠ Ġmessage . params . size Ġ< Ġ 2 Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . warning Ġ{ Ġ" Discard ing ĠNOTICE Ġline Ġwith Ġins ufficient Ġparameters : Ġ$ message " Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġmessage . is C tcp () Ġ-> Ġhandle C tcp ( message , Ġmessage . source User ) čĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠlistOf ( Notice Received ( message . metadata , Ġmessage . source User čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠUser ("* "), ĠString ( message . params [ 0 ]), ĠString ( message . params [ 1 ]))) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġhandle C tcp ( message : ĠI rc Message , Ġuser : ĠUser ?): ĠList < I rc Event > Ġ{ čĊĠĠĠĠĠĠĠ Ġuser Ġ?: Ġreturn Ġempty List () čĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= ĠString ( message . params [ 1 ]. slice Array ( 1 Ġuntil Ġmessage . params [ 1 ]. size Ġ- Ġ 1 )) čĊĠĠĠĠĠĠĠ Ġval Ġparts Ġ= Ġcontent . split (' Ġ', Ġlimit Ġ= Ġ 2 ) čĊĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġif Ġ( parts . size Ġ== Ġ 2 ) Ġparts [ 1 ] Ġelse Ġ"" čĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( C tcp Reply Received ( message . metadata , Ġuser , ĠString ( message . params [ 0 ]), Ġparts [ 0 ], Ġbody )) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun ĠI rc Message . is C tcp () Ġ= Ġparams [ 1 ]. size Ġ> Ġ 2 Ġ&& Ġparams [ 1 ][ 0 ] Ġ== ĠC TCP _ BYTE Ġ&& Ġparams [ 1 ][ params [ 1 ]. size Ġ- Ġ 1 ] Ġ== ĠC TCP _ BYTE čĊč Ċ } čĊ