package Ġcom . github . br yan ser . fox classes . impl . wizard . passive Ċ Ċ import Ġcom . github . br yan ser . fox classes . Main Ċ import Ġcom . github . br yan ser . fox classes . Pass ive Ċ import Ġcom . github . br yan ser . fox classes . Player Data Ċ import Ġcom . github . br yan ser . fox classes . impl . war ri or . War ri or Ċ import Ġcom . github . br yan ser . fox classes . util . Config Entry Ċ import Ġcom . github . br yan ser . fox classes . util . tools . Particle Effect Ċ import Ġgithub . sa uki ya . sx attribute . event . SX Load Item Data Event Ċ import Ġorg . bukkit . Bu kkit Ċ import Ġorg . bukkit . Material Ċ import Ġorg . bukkit . attribute . Attribute Ċ import Ġorg . bukkit . entity . Living Entity Ċ import Ġorg . bukkit . entity . Player Ċ import Ġorg . bukkit . event . EventHandler Ċ import Ġorg . bukkit . event . Event Priority Ċ import Ġorg . bukkit . event . Handler List Ċ import Ġorg . bukkit . event . Listener Ċ import Ġorg . bukkit . event . entity . Entity Damage By Entity Event Ċ import Ġorg . bukkit . event . player . Player Interact Event Ċ import Ġorg . bukkit . inventory . Equipment Slot Ċ import Ġorg . bukkit . scheduler . Bu kkit Runnable Ċ import Ġorg . bukkit . util . Vector Ċ import Ġjava . util .* Ċ Ċ object ĠFl ame Sh ock Ġ: ĠPass ive (" Fl ame Sh ock ", Ġ" çģ« çĦ ° åĨ² åĩ» ", ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġ" æ¯ı çº§ å¢ŀåĬł æ³ķ åĬĽ åĢ¼ ", ĊĠĠĠĠĠĠĠ Ġ" æĹłæ³ķ ä½¿çĶ¨ æŃ¦ åĻ¨ è¿Ľè¡Į æĻ®éĢļ æĶ» åĩ» ", ĊĠĠĠĠĠĠĠ Ġ" ä½Ĩæĺ¯ å¹³ A ä¼ļ åıĳ å°Ħ ä¸Ģ æŀļ åı¯ä»¥ ç© ¿ éĢı ä¸¤ä¸ª çĽ®æłĩ çļĦ çģ« çĦ ° å¼¹ éĢł æĪĲ é¢Ŀ å¤ĸ ( æŃ¦ åĻ¨ ) ä¼ ¤ å®³ " Ċ )), ĠListener Ġ{ ĊĊĠĠĠ Ġval Ġman a Ġ= ĠConfig Entry . map Config (" mana ", Ġmap Of ( 1 Ġto Ġ 5 0 . 0 , Ġ 2 Ġto Ġ 7 5 . 0 , Ġ 3 Ġto Ġ 1 0 0 . 0 )) ĊĠĠĠ Ġval Ġcool down Ġ= ĠConfig Entry <( Int ) Ġ-> ĠInt >(" co old own ", Ġprovider Ġ= Ġfun ( cs , Ġce ): Ġ( Int ) Ġ-> ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġcs . getConfiguration Section (" co old own ") ĊĠĠĠĠĠĠĠ Ġval Ġcd Ġ= Ġhash Map Of < Int , ĠInt >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( key Ġin Ġe . get Keys ( false )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcd [ key . toInt ()] Ġ= Ġe . getInt ( key ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfun ( t ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcd [ t ] Ġ?: Ġ- 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ġ{ Ġcs , Ġce Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġcs . create Section (" co old own ") ĊĠĠĠĠĠĠĠ Ġe [" 1 "] Ġ= Ġ 5 0 0 0 ĊĠĠĠĠĠĠĠ Ġe [" 2 "] Ġ= Ġ 4 0 0 0 ĊĠĠĠĠĠĠĠ Ġe [" 3 "] Ġ= Ġ 3 0 0 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ EventHandler ĊĠĠĠ Ġfun Ġon Attribute ( evt : ĠSX Load Item Data Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġevt . entity Ġas ? ĠPlayer Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġpd Ġ= ĠPlayer Data . getData ( p ) ĊĠĠĠĠĠĠĠ Ġif Ġ( pd . getClass Type () Ġ!= ĠWar ri or ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlv Ġ= Ġpd . t alent Data . get Level ( this ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġadd Attribute ( p ) ĊĠĠĠĠĠĠĠ Ġval Ġh data Ġ= Ġdata . getSub Attribute (" Man a ") ĊĠĠĠĠĠĠĠ Ġh data . attributes [ 0 ] Ġ+= Ġman a ()( lv ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġlast Cast Ġ= Ġhash Map Of < UUID , ĠLong >() ĊĊĠĠĠ Ġvar Ġignore Ġ= Ġfalse ĊĠĠĠ Ġfun Ġattack ( p : ĠPlayer , Ġlv : ĠInt , Ġvec : ĠVector Ġ= Ġp . eye Location . direction ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvec . multiply ( 0 . 2 5 ) ĊĠĠĠĠĠĠĠ Ġval Ġlast Ġ= Ġlast Cast [ p . unique Id ] Ġ?: Ġ 0 L ĊĠĠĠĠĠĠĠ Ġval Ġpass Ġ= ĠSystem . currentTimeMillis () Ġ- Ġlast ĊĠĠĠĠĠĠĠ Ġval Ġcd Ġ= Ġcool down ()( lv ) ĊĠĠĠĠĠĠĠ Ġif Ġ( pass Ġ< Ġcd ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġd mg Ġ= Ġp . getAttribute ( Attribute . GENERIC _ ATT ACK _ DA MAGE ). value ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠBu kkit Runnable () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= Ġp . location ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcurr Ġ= Ġp . eye Location . add ( 0 . 0 , Ġ- 0 . 2 5 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġdisplay Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġhit : ĠInt ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( p . world != curr . world ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( from . distance Squared ( curr ) Ġ>= Ġ 4 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurr . block ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( type Ġ!= ĠMaterial . AIR ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( e Ġin Ġcurr . world . get Near by Entities ( curr , Ġ 0 . 1 , Ġ 0 . 1 , Ġ 0 . 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e Ġis ĠL iving Entity Ġ&& Ġe Ġ!= Ġp Ġ&& Ġe . entityId Ġ!= Ġhit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . damage ( dmg , Ġp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( hit Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhit Ġ= Ġe . entityId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( display ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloc Ġ= Ġcurr . clone () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBu kkit . get Scheduler (). run Task As ynchronously ( Main . Plugin ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParticle Effect . FL AME . display ( 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 . 0 1 f , Ġ 1 , Ġloc , Ġ 5 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Ġ= Ġ! display ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurr . add ( vec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. run Task Timer ( Main . Plugin , Ġ 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġlast Cast [ p . unique Id ] Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ EventHandler ( priority Ġ= ĠEvent Priority . LOW EST , Ġignore Cancelled Ġ= Ġtrue ) ĊĠĠĠ Ġfun Ġon Attack ( evt : ĠEntity Damage By Entity Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( ignore ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġevt . dam ager Ġas ? ĠPlayer Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġpd Ġ= ĠPlayer Data . getData ( p ) ĊĠĠĠĠĠĠĠ Ġval Ġlv Ġ= Ġpd . t alent Data . get Level ( this ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġattack ( p , Ġlv ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ EventHandler ( priority Ġ= ĠEvent Priority . LOW EST , Ġignore Cancelled Ġ= Ġtrue ) ĊĠĠĠ Ġfun Ġon Attack ( evt : ĠPlayer Interact Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( evt . hand Ġ!= ĠE quipment Slot . HAND ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġevt . player ĊĠĠĠĠĠĠĠ Ġval Ġpd Ġ= ĠPlayer Data . getData ( p ) ĊĠĠĠĠĠĠĠ Ġval Ġlv Ġ= Ġpd . t alent Data . get Level ( this ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġattack ( p , Ġlv ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ ĠBu kkit . get PluginManager (). register Events ( this , ĠMain . Plugin ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdisable () Ġ{ ĊĠĠĠĠĠĠĠ ĠHandler List . unregister All ( this ) ĊĠĠĠ Ġ} Ċ }