package Ġcom . ch att riggers . ct js . utils . config Ċ Ċ import Ġcom . ch att riggers . ct js . CT JS Ċ import Ġnet . minecraft . client . gui . Gui Screen Ċ import Ġnet . minecraft . client . renderer . Gl StateManager Ċ import Ġjava . io . IOException Ċ import Ġjava . util .* Ċ import Ġkotlin . reflect . full . declared Member Properties Ċ Ċ class ĠGui Config Ġ: ĠGui Screen () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġconfig Options : ĠArrayList < Config Option > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar ĠisOpen Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġval Ġicon Handler Ġ= ĠIcon Handler ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠConfig :: class . declared Member Properties . forEach Ġ{ Ġprop Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprop . annotations . first OrNull Ġ{ Ġann Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġann . annotation Class Ġ== ĠConfig Opt :: class ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. let Ġ{ Ġann Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopt Ġ= Ġann Ġas ĠConfig Opt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Options . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopt . type . construct ors . first (). call ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprop , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopt . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopt . x , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopt . y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġas ĠConfig Option ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdraw Screen ( mouse X : ĠInt , ĠmouseY : ĠInt , Ġpartial Ticks : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ ĠGl StateManager . push Matrix () ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! this . isOpen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . isOpen Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( config Option Ġin Ġthis . config Options ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Option . init () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdraw Background ( 0 ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( config Option Ġin Ġthis . config Options ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Option . draw ( mouse X , ĠmouseY , Ġpartial Ticks ) ĊĊĠĠĠĠĠĠĠ Ġicon Handler . draw Icons () ĊĊĠĠĠĠĠĠĠ ĠGl StateManager . pop Matrix () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Gui Closed () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . isOpen Ġ= Ġfalse ĊĠĠĠĠĠĠĠ ĠCT JS . save Config () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġpublic Ġoverride Ġfun Ġmouse Clicked ( mouse X : ĠInt , ĠmouseY : ĠInt , Ġmouse Button : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( mouse Button Ġ!= Ġ 0 ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( config Option Ġin Ġthis . config Options ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Option . mouse Clicked ( mouse X , ĠmouseY ) ĊĊĠĠĠĠĠĠĠ Ġicon Handler . click Icons ( mouse X , ĠmouseY ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġmouse Released ( mouse X : ĠInt , ĠmouseY : ĠInt , Ġstate : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( config Option Ġin Ġthis . config Options ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Option . mouse Released () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġkey Typed ( typed Char : ĠChar , ĠkeyCode : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . key Typed ( typed Char , ĠkeyCode ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( config Option Ġin Ġthis . config Options ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Option . key Typed ( typed Char , ĠkeyCode ) ĊĠĠĠ Ġ} Ċ }