package Ġink . pt ms . che md ah . api Ċ Ċ import Ġio . lum ine . my th ic . api . My th ic Provider Ċ import Ġio . lum ine . my th ic . core . mo bs . Mob Executor Ċ import Ġio . lum ine . my th ic . core . skills . Skill Metadata Impl Ċ import Ġio . lum ine . x ik age . my th ic mo bs . My th ic M obs Ċ import Ġio . lum ine . x ik age . my th ic mo bs . adapters . Abstract Entity Ċ import Ġio . lum ine . x ik age . my th ic mo bs . adapters . bukkit . Bu kkit Adapter Ċ import Ġio . lum ine . x ik age . my th ic mo bs . adapters . bukkit . Bu kkit Player Ċ import Ġio . lum ine . x ik age . my th ic mo bs . mo bs . Active Mob Ċ import Ġio . lum ine . x ik age . my th ic mo bs . mo bs . Generic C aster Ċ import Ġio . lum ine . x ik age . my th ic mo bs . skills . Skill Me chan ic Ċ import Ġio . lum ine . x ik age . my th ic mo bs . skills . Skill Metadata Ċ import Ġio . lum ine . x ik age . my th ic mo bs . skills . Skill Trigger Ċ import Ġio . lum ine . x ik age . my th ic mo bs . utils . config . file . File Configuration Ċ import Ġorg . bukkit . Bu kkit Ċ import Ġorg . bukkit . Location Ċ import Ġorg . bukkit . entity . Entity Ċ import Ġorg . bukkit . entity . EntityType Ċ import Ġorg . bukkit . entity . Player Ċ import Ġorg . server ct . ers ha . d ungeon . tab ool ib . common . reflect . Ref lex . Companion . invoke Method Ċ import Ġtab ool ib . common . reflect . Ref lex . Companion . getProperty Ċ import Ġtab ool ib . common . reflect . Ref lex . Companion . invoke Constructor Ċ import Ġtab ool ib . module . configuration . Configuration Ċ import Ġtab ool ib . module . configuration . Type Ċ Ċ object ĠMy th ic Ġ{ ĊĊĠĠĠ Ġval Ġis Loaded Ġby Ġlazy Ġ{ ĠBu kkit . get PluginManager (). get Plugin (" My th ic M obs ") Ġ!= Ġnull Ġ} ĊĠĠĠ Ġval Ġis Legacy Ġby Ġlazy Ġ{ Ġkotlin . run Catch ing Ġ{ ĠClass . forName (" io . lum ine . x ik age . my th ic mo bs . My th ic M obs ") Ġ}. get OrNull () Ġ!= Ġnull Ġ} ĊĊĠĠĠ Ġfun Ġget Mob Instance ( entity : ĠEntity ): ĠMob ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( is Legacy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMob 4 ( My th ic M obs . inst (). mob Manager . get My th ic Mob Instance ( entity ) Ġ?: Ġreturn Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMob 5 (( My th ic Provider . get (). mob Manager Ġas ĠMob Executor ). get My th ic Mob Instance ( entity ) Ġ?: Ġreturn Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Skill Me chan ic ( name : ĠString ): ĠSkill ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( is Legacy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSkill 4 ( My th ic M obs . inst (). skill Manager . get Skill Me chan ic ( name ) Ġ?: Ġreturn Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSkill 5 ( My th ic Provider . get (). skill Manager . get Me chan ic ( name ) Ġ?: Ġreturn Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Skill Trigger ( name : ĠString ): ĠSkill . Trigger Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( is Legacy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSkill Trigger 4 ( Skill Trigger . valueOf ( name . uppercase ())) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSkill Trigger 5 ( io . lum ine . my th ic . api . skills . Skill Trigger :: class . java . invoke Method < Any >(" get ", Ġname . uppercase (), Ġfixed Ġ= Ġtrue ) !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠMob Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġinternal Name : ĠString ĊĊĠĠĠĠĠĠĠ Ġval ĠdisplayName : ĠString ĊĊĠĠĠĠĠĠĠ Ġval Ġentity : ĠEntity ĊĊĠĠĠĠĠĠĠ Ġval Ġentity Type : ĠEntityType ĊĊĠĠĠĠĠĠĠ Ġval Ġlevel : ĠDouble ĊĊĠĠĠĠĠĠĠ Ġval Ġst ance : ĠString ĊĊĠĠĠĠĠĠĠ Ġval Ġf action : ĠString ĊĊĠĠĠĠĠĠĠ Ġval Ġconfig : ĠConfiguration ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠSkill Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġexecute ( trigger : ĠTrigger , Ġentity : ĠEntity , Ġtarget : ĠEntity , Ġe Targets : ĠSet < Entity >, Ġl Targets : ĠSet < Location >, Ġpower : ĠFloat ): ĠBoolean ĊĊĠĠĠĠĠĠĠ Ġinterface ĠTrigger Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname : ĠString ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠMob 4 ( obj : ĠAny ) Ġ: ĠMob Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġobj Ġas ĠActive Mob ĊĠĠĠĠĠĠĠ Ġval Ġconf Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfiguration . load FromString ( source . type . config . getProperty < File Configuration >(" fc ") !!. save ToString (), ĠType . YAML ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġinternal Name : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġsource . type . internal Name ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠdisplayName : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġsource . displayName ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġentity : ĠEntity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġsource . entity . bukkit Entity ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġentity Type : ĠEntityType ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġentity . type ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġlevel : ĠDouble ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġsource . level ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġst ance : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġsource . stance ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġf action : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġsource . faction ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġconfig : ĠConfiguration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġconf ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠMob 5 ( obj : ĠAny ) Ġ: ĠMob Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġobj Ġas Ġio . lum ine . my th ic . core . mo bs . Active Mob ĊĠĠĠĠĠĠĠ Ġval Ġconf Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfiguration . load FromString ( source . type . config . getProperty < File Configuration >(" fc ") !!. save ToString (), ĠType . YAML ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġinternal Name : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġsource . type . internal Name ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠdisplayName : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġsource . displayName ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġentity : ĠEntity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġsource . entity . bukkit Entity ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġentity Type : ĠEntityType ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġentity . type ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġlevel : ĠDouble ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġsource . level ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġst ance : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġsource . stance ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġf action : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġsource . faction ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġconfig : ĠConfiguration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġconf ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠSkill 4 ( obj : ĠAny ) Ġ: ĠSkill Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġobj Ġas ĠSkill Me chan ic ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute ( trigger : ĠSkill . Trigger , Ġentity : ĠEntity , Ġtarget : ĠEntity , Ġe Targets : ĠSet < Entity >, Ġl Targets : ĠSet < Location >, Ġpower : ĠFloat ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc aster : ĠAbstract Entity Ġ= Ġif Ġ( entity Ġis ĠPlayer ) ĠBu kkit Player ( entity ) Ġelse ĠBu kkit Adapter . adapt ( entity ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy th ic M obs . inst (). skill Manager . run Second Pass () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsource . execute Skills ( Skill Metadata ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( trigger Ġas ĠSkill Trigger 4 ). source , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGeneric C aster ( caster ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBu kkit Adapter . adapt ( target ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBu kkit Adapter . adapt ( entity . location ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe Targets . map Ġ{ ĠBu kkit Adapter . adapt ( it ) Ġ}. to HashSet (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl Targets . map Ġ{ ĠBu kkit Adapter . adapt ( it ) Ġ}. to HashSet (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpower ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠSkill 5 ( obj : ĠAny ) Ġ: ĠSkill Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġobj Ġas Ġio . lum ine . my th ic . core . skills . Skill Me chan ic ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute ( trigger : ĠSkill . Trigger , Ġentity : ĠEntity , Ġtarget : ĠEntity , Ġe Targets : ĠSet < Entity >, Ġl Targets : ĠSet < Location >, Ġpower : ĠFloat ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc aster : Ġio . lum ine . my th ic . api . adapters . Abstract Entity Ġ= Ġif Ġ( entity Ġis ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġio . lum ine . my th ic . bukkit . adapters . Bu kkit Player ( entity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġio . lum ine . my th ic . bukkit . Bu kkit Adapter . adapt ( entity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsource . execute ( Skill Metadata Impl :: class . java . invoke Constructor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( trigger Ġas ĠSkill Trigger 5 ). source , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġio . lum ine . my th ic . api . mo bs . Generic C aster ( caster ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġio . lum ine . my th ic . bukkit . Bu kkit Adapter . adapt ( target ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġio . lum ine . my th ic . bukkit . Bu kkit Adapter . adapt ( entity . location ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe Targets . map Ġ{ Ġio . lum ine . my th ic . bukkit . Bu kkit Adapter . adapt ( it ) Ġ}. to HashSet (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl Targets . map Ġ{ Ġio . lum ine . my th ic . bukkit . Bu kkit Adapter . adapt ( it ) Ġ}. to HashSet (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpower ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠSkill Trigger 4 ( obj : ĠAny ) Ġ: ĠSkill . Trigger Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġobj Ġas ĠSkill Trigger ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġsource . name ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠSkill Trigger 5 ( obj : ĠAny ) Ġ: ĠSkill . Trigger Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġobj Ġ// Ġas Ġio . lum ine . my th ic . api . skills . Skill Trigger ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġname : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġsource . getProperty < String >(" name ") !! ĊĠĠĠ Ġ} Ċ }