package Ġnet . run elite . plugins . example Ċ Ċ import Ġcom . google . inject . Inject Ċ import Ġcom . google . inject . Provides Ċ import Ġnet . run elite . client . config . Config Manager Ċ import Ġnet . run elite . client . event bus . Subscribe Ċ import Ġnet . run elite . client . events . Config Changed Ċ import Ġnet . run elite . client . plugins . Plugin Ċ import Ġnet . run elite . client . plugins . Plugin Descriptor Ċ import Ġnet . run elite . client . plugins . Plugin Type Ċ import Ġorg . pf 4 j . Extension Ċ Ċ @ Extension Ċ Ċ @ Plugin Descriptor ( ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Example ĠKotlin ĠPlugin ", ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġdeveloper Plugin Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġtype Ġ= ĠPlugin Type . EXTERNAL , ĊĠĠĠĠĠĠĠ Ġtags Ġ= Ġ[" kotlin ", Ġ" po op ", Ġ" bl aze ", Ġ" my Ġbut t "] Ċ ) Ċ public Ġclass ĠExample Kotlin Plugin Ġ: ĠPlugin () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġconfig Manager : ĠConfig Manager ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun ĠgetConfig ( config Manager : ĠConfig Manager ): ĠExample Plugin Config Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġconfig Manager . getConfig ( Example Plugin Config :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ("${ java Class . name } Ġhas Ġstarted ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ĊĠĠĠ Ġfun Ġon Config Changed ( event : ĠConfig Changed ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( event . group Ġ== Ġ" kotlin ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġprintln (" Yo Ġthat s Ġour Ġconfig ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshut Down () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ("${ java Class . name } Ġis Ġshut ting Ġdown ") ĊĠĠĠ Ġ} ĊĊ Ċ }