package Ġcom . github . ot ak us en p ai . al oh ach at . base . message _ parse Ċ Ċ // ĠNick @ IP Ġtogether Ġis Ġcalled ĠPrefix Ċ Ċ class ĠPrefix () Ġ{ ĊĠĠĠ Ġconstructor ( data : ĠString ) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠ Ġoriginal Prefix Ġ= Ġdata ĊĠĠĠĠĠĠĠ Ġparse ( data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparse ( data : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtemp Ġ= Ġdata ĊĠĠĠĠĠĠĠ Ġnick Ġ= Ġtemp . substring ( 0 , temp . indexOf ('@ ')) ĊĠĠĠĠĠĠĠ Ġtemp Ġ= Ġtemp . substring ( temp . indexOf ('@ ') Ġ+ Ġ 1 , temp . length ) ĊĠĠĠĠĠĠĠ Ġip Ġ= Ġtemp . substring ( 0 , Ġtemp . indexOf (': ')) ĊĠĠĠĠĠĠĠ Ġtemp Ġ= Ġtemp . substring ( temp . indexOf (': ') Ġ+ Ġ 1 , temp . length ) ĊĠĠĠĠĠĠĠ Ġport Ġ Ġ= Ġtemp ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ"$ nick @ $ ip :$ port " ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠPrefix ĊĊĠĠĠĠĠĠĠ Ġif Ġ( nick Ġ!= Ġother . nick ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( ip Ġ!= Ġother . ip ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( port Ġ!= Ġother . port ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( original Prefix Ġ!= Ġother . original Prefix ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġnick . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġip . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġport . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġoriginal Prefix . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġnick : ĠString ĠĠĠ Ġ// ĠNick Ġstring Ġis Ġthe Ġname Ġof Ġthe Ġperson Ġsending Ġit , Ġeg : ĠNe el ĊĠĠĠ Ġlateinit Ġvar Ġip : ĠString ĠĠĠĠĠ Ġ// ĠIP Ġis Ġip Ġof Ġthe Ġperson Ġsending Ġit ĊĠĠĠ Ġlateinit Ġvar Ġport : ĠString ĠĠĠ Ġ// ĠPort Ġnumber ĊĠĠĠ Ġlateinit Ġvar Ġoriginal Prefix : ĠString Ċ }