package Ġcom . w yn n lab . extensions Ċ Ċ import Ġcom . w yn n lab . base . Base Spell Ċ import Ġcom . w yn n lab . classes . Base Player Spell Ċ import Ġcom . w yn n lab . events . Damage Event Ċ import Ġcom . w yn n lab . events . He al Event Ċ import Ġcom . w yn n lab . mo bs . spell s . Base Mob Spell Ċ import Ġorg . bukkit .* Ċ import Ġorg . bukkit . entity . Living Entity Ċ import Ġorg . bukkit . entity . Player Ċ import Ġorg . bukkit . persistence . Persistent DataType Ċ Ċ fun ĠBase Player Spell . sound ( sound : ĠSound , Ġvolume : ĠFloat , Ġpitch : ĠFloat ) Ġ= Ġsound ( player . location , Ġsound , Ġvolume , Ġpitch ) Ċ fun ĠBase Mob Spell . sound ( sound : ĠSound , Ġvolume : ĠFloat , Ġpitch : ĠFloat ) Ġ= Ġsound ( mob . location , Ġsound , Ġvolume , Ġpitch ) Ċ fun Ġsound ( l : ĠLocation , Ġsound : ĠSound , Ġvolume : ĠFloat , Ġpitch : ĠFloat ) Ġ{ ĊĠĠĠ Ġl . world . play Sound ( l , Ġsound , ĠSound Category . MASTER , Ġvolume , Ġpitch ) Ċ } Ċ Ċ fun ĠBase Spell . particle ( l : ĠLocation , Ġparticle : ĠParticle , Ġcount : ĠInt , Ġsx : ĠDouble , Ġsy : ĠDouble , Ġsz : ĠDouble , Ġspeed : ĠDouble ) Ġ{ ĊĠĠĠ Ġfor Ġ( p Ġin Ġl . world . get Near by Players ( l , Ġ 2 5 . 0 )) Ġ{ ĊĠĠĠĠĠĠĠ Ġp . spawn Particle ( particle , Ġl , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount Ġ* Ġcount Modifier ( p ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsx , Ġsy , Ġsz , Ġspeed ) ĊĠĠĠ Ġ} Ċ } Ċ fun Ġ< T > ĠBase Spell . particle ( l : ĠLocation , Ġparticle : ĠParticle , Ġcount : ĠInt , Ġsx : ĠDouble , Ġsy : ĠDouble , Ġsz : ĠDouble , Ġspeed : ĠDouble , Ġdata : ĠT ) Ġ{ ĊĠĠĠ Ġfor Ġ( p Ġin Ġl . world . get Near by Players ( l , Ġ 2 5 . 0 )) Ġ{ ĊĠĠĠĠĠĠĠ Ġp . spawn Particle ( particle , Ġl , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount Ġ* Ġcount Modifier ( p ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsx , Ġsy , Ġsz , Ġspeed , Ġdata ) ĊĠĠĠ Ġ} Ċ } Ċ private Ġfun ĠBase Spell . count Modifier ( p : ĠPlayer ) Ġ= Ġ( p . data . get ( wl Key ( ĊĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠBase Player Spell Ġ&& Ġp Ġ== Ġplayer Ġ-> Ġ" particles " ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠBase Mob Spell Ġ-> Ġ" mob _ particles " ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" other _ particles " ĊĠĠĠ Ġ}), ĊĠĠĠ ĠPersistent DataType . INTEGER ) Ġ?: Ġ 2 ) Ġ/ Ġ 2 Ċ Ċ fun ĠBase Player Spell . targets ( x : ĠDouble , Ġy : ĠDouble , Ġz : ĠDouble ) Ġ= Ġtargets ( player . location , Ġx , Ġy , Ġz ) Ċ fun ĠBase Player Spell . targets ( l : ĠLocation , Ġx : ĠDouble , Ġy : ĠDouble , Ġz : ĠDouble ): ĠCollection < Living Entity > Ġ= ĊĠĠĠ Ġl . world . get Near by Living Entities ( l , Ġx , Ġy , Ġz ) Ġ{ Ġit Ġ!= Ġplayer Ġ&& Ġ( it Ġ! is ĠPlayer Ġ|| Ġplayer . can Damage ( it )) Ġ} Ċ Ċ fun ĠBase Mob Spell . targets ( x : ĠDouble , Ġy : ĠDouble , Ġz : ĠDouble ) Ġ= Ġtargets ( mob . location , Ġx , Ġy , Ġz ) Ċ fun ĠBase Mob Spell . targets ( l : ĠLocation , Ġx : ĠDouble , Ġy : ĠDouble , Ġz : ĠDouble ): ĠCollection < Living Entity > Ġ= ĊĠĠĠ Ġl . world . get Near by Living Entities ( l , Ġx , Ġy , Ġz ) Ġ{ Ġit Ġ!= Ġmob Ġ&& Ġit Ġis ĠPlayer Ġ} Ġ// ĠTODO : Ġm obs Ġthat Ġattack Ġm obs Ċ Ċ fun ĠBase Player Spell . damage ( e : ĠL iving Entity , Ġme lee : ĠBoolean Ġ= Ġfalse , Ġmultiplier : ĠDouble Ġ= Ġ 1 . 0 , Ġvar arg Ġconversion : ĠDouble ) Ġ= ĊĠĠĠ Ġdamage ( player , Ġe , Ġme lee , Ġmultiplier , Ġconversion ) Ċ fun ĠBase Mob Spell . damage ( e : ĠL iving Entity , Ġme lee : ĠBoolean Ġ= Ġfalse , Ġmultiplier : ĠDouble Ġ= Ġ 1 . 0 , Ġvar arg Ġconversion : ĠDouble ) Ġ= ĊĠĠĠ Ġdamage ( mob Ġas ĠL iving Entity , Ġe , Ġme lee , Ġmultiplier , Ġconversion ) Ċ fun Ġdamage ( source : ĠL iving Entity , Ġe : ĠL iving Entity , Ġme lee : ĠBoolean Ġ= Ġfalse , Ġmultiplier : ĠDouble Ġ= Ġ 1 . 0 , Ġconversion : ĠDouble Array Ġ= ĠDouble Array ( 0 )) Ġ= ĊĠĠĠ ĠBu kkit . get PluginManager (). call Event ( Damage Event ( source , Ġe , Ġme lee , Ġmultiplier , Ġconversion )) Ċ Ċ fun ĠBase Player Spell . he al ( e : ĠL iving Entity , Ġamount : ĠDouble ) Ġ= ĊĠĠĠ ĠBu kkit . get PluginManager (). call Event ( He al Event ( player , Ġe , Ġamount )) Ċ Ċ fun ĠBase Player Spell . he al able ( x : ĠDouble , Ġy : ĠDouble , Ġz : ĠDouble ): ĠCollection < Living Entity > Ġ= Ġhe al able ( player . location , Ġx , Ġy , Ġz ) Ċ fun ĠBase Player Spell . he al able ( l : ĠLocation , Ġx : ĠDouble , Ġy : ĠDouble , Ġz : ĠDouble ): ĠCollection < Living Entity > Ġ= ĊĠĠĠ Ġl . world . get Near by Living Entities ( l , Ġx , Ġy , Ġz ) Ġ{ Ġit Ġ!= Ġplayer Ġ&& Ġit Ġis ĠPlayer Ġ&& Ġplayer . can He al ( it ) Ġ}