/* Ċ Ġ* ĠMinecraft ĠDev Ġfor ĠIntelliJ Ċ Ġ* Ċ Ġ* Ġhttps :// minecraft dev . org Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 7 Ġm inecraft - dev Ċ Ġ* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ*/ Ċ Ċ package Ġcom . de mon wav . mc dev . platform . forge . ins pe ctions . side only Ċ Ċ import Ġcom . de mon wav . mc dev . facet . Minecraft Facet Ċ import Ġcom . de mon wav . mc dev . platform . forge . Forge Module Type Ċ import Ġcom . de mon wav . mc dev . platform . forge . util . Forge Constants Ċ import Ġcom . de mon wav . mc dev . util . Abstract Project Component Ċ import Ġcom . de mon wav . mc dev . util . run Inline Read Action Ċ import Ġcom . intellij . facet . Project Facet Manager Ċ import Ġcom . intellij . openapi . progress . Progress Indicator Ċ import Ġcom . intellij . openapi . progress . Progress Manager Ċ import Ġcom . intellij . openapi . progress . Task Ċ import Ġcom . intellij . openapi . project . D umb Service Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . startup . Startup Manager Ċ import Ġcom . intellij . psi . Java Psi Facade Ċ import Ġcom . intellij . psi . search . Global Search Scope Ċ import Ġcom . intellij . psi . search . sear ches . Annotated Elements Search Ċ Ċ class ĠSide Only Project Component ( project : ĠProject ) Ġ: ĠAbstract Project Component ( project ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġproject Opened () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfac ets Ġ= ĠProject Facet Manager . getInstance ( project ). get Fac ets ( Minecraft Facet . ID ) ĊĠĠĠĠĠĠĠ Ġif Ġ( fac ets . none Ġ{ Ġf Ġ-> Ġf . is OfType ( Forge Module Type ) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠStartup Manager . getInstance ( project ). register Post Startup Activity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠD umb Service . getInstance ( project ). smart Invoke Later Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProgress Manager . getInstance (). run ( object Ġ: ĠTask . Background able ( project , Ġ" Indexing Ġ@ Side d Proxy ", Ġtrue , Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun ( indicator : ĠProgress Indicator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Inline Read Action Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator . isIn determinate Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscope Ġ= ĠGlobal Search Scope . project Scope ( my Project ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġside d Proxy Ġ= ĠJava Psi Facade . getInstance ( my Project ). find Class ( Forge Constants . SID ED _ PROXY _ AN NOT ATION , Ġscope ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġannotated Fields Ġ= ĠAnnot ated Elements Search . search Psi Fields ( side d Proxy , Ġscope ). findAll () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator . isIn determinate Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 . 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( field Ġin Ġannotated Fields ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS ided Proxy Annot ator . check ( field ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindicator . fraction Ġ= Ġindex Ġ/ Ġannotated Fields . size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ