package Ġcom . cout 9 7 0 . f ira . gui . config Ċ Ċ import Ġcom . cout 9 7 0 . f ira . util . Proxy Ċ import Ġcom . cout 9 7 0 . f ira . util . Utils Ċ import Ġcom . cout 9 7 0 . f ira . util . Utils . color Ċ import Ġnet . minecraft . client . gui . Gui TextField Ċ Ċ class ĠConfig Option Int ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġdescription : ĠString , ĊĠĠĠĠĠĠĠ Ġproxy : ĠProxy < Int > Ċ ) Ġ: ĠConfig Option () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġheight : ĠInt Ġ= ĠCELL _ HEIGHT ĊĠĠĠ Ġvar Ġvalue : ĠInt Ġby Ġproxy ĊĠĠĠ Ġvar Ġselected Ġ= Ġfalse ĊĠĠĠ Ġval Ġtext : ĠGui TextField Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠGui TextField ( 0 , ĠUtils . font (), ĠCELL _ WIDTH Ġ/ Ġ 2 , Ġ 0 , ĠCELL _ WIDTH Ġ/ Ġ 2 , ĠCELL _ HEIGHT ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . enable Background Drawing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdraw () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtitle Ġ= Ġname ĊĠĠĠĠĠĠĠ Ġvar Ġvalue Len Ġ= ĠgetString Width ( value . toString ()) Ġ+ Ġ 4 ĊĊĠĠĠĠĠĠĠ Ġif Ġ( selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Box ( CELL _ WIDTH Ġ* Ġ 3 Ġ/ Ġ 4 , Ġ 0 , ĠCELL _ WIDTH Ġ/ Ġ 4 , ĠCELL _ HEIGHT , Ġcolor ( 0 x 0 0 7 F 0 0 , Ġ 0 . 5 f )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext . y Ġ= Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext . x Ġ= ĠCELL _ WIDTH Ġ* Ġ 3 Ġ/ Ġ 4 Ġ+ Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext . width Ġ= ĠCELL _ WIDTH Ġ/ Ġ 4 Ġ- Ġ 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext . draw TextBox () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Len Ġ= Ġtext . width ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( getString Width ( name ) Ġ+ Ġvalue Len Ġ> ĠCELL _ WIDTH Ġ- Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġname Length Ġ= Ġname . length ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( getString Width ( title ) Ġ+ Ġvalue Len Ġ> ĠCELL _ WIDTH Ġ- Ġ 1 0 Ġ&& Ġname Length Ġ> Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Length Ġ-= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġname . substring ( 0 , Ġname Length ) Ġ+ Ġ" ..." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdraw String ( title , Ġ 4 , Ġ 4 , Ġcolor ( 0 x FFFFFF )) ĊĠĠĠĠĠĠĠ Ġif Ġ(! selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw String ( value . toString (), ĠCELL _ WIDTH Ġ- ĠgetString Width ( value . toString ()) Ġ- Ġ 4 , Ġ 4 , Ġcolor ( 0 x FFFFFF )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġun Select () Ġ{ ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġtext . text . toInt OrNull () Ġ?: Ġvalue ĊĠĠĠĠĠĠĠ Ġselected Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclick ( mouse X : ĠInt , ĠmouseY : ĠInt , Ġmouse Button : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext . text Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext . mouse Clicked ( mouse X , ĠmouseY , Ġmouse Button ) ĊĠĠĠĠĠĠĠ Ġsuper . click ( mouse X , ĠmouseY , Ġmouse Button ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġoutside Click ( mouse Button : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġun Select () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġkey Typed ( typed Char : ĠChar , ĠkeyCode : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! selected ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( keyCode Ġ== Ġ 2 8 Ġ/* ENTER */ Ġ|| ĠkeyCode Ġ== Ġ 1 Ġ/* ESC */) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun Select () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext . textbox Key Typed ( typed Char , ĠkeyCode ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhover ( mouse X : ĠInt , ĠmouseY : ĠInt ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( selected ) Ġreturn Ġempty List () ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . hover ( mouse X , ĠmouseY ) ĊĠĠĠ Ġ} Ċ }