This addon allows you to send fireballs randomly during a fight.
You must put the addon in the folder
plugins/zmobfighter/addons
![[IMG]](/proxy/image?url=https%3A%2F%2Fimg.groupez.dev%2Fzmobfighter%2Faddon.gif)
Code (Java):
package
fr.maxlego08.fireball
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Random
;
import
org.bukkit.entity.Entity
;
import
org.bukkit.entity.Fireball
;
import
org.bukkit.entity.LivingEntity
;
import
org.bukkit.event.EventHandler
;
import
org.bukkit.event.Listener
;
import
org.bukkit.event.entity.EntityExplodeEvent
;
import
org.bukkit.potion.PotionEffect
;
import
org.bukkit.potion.PotionEffectType
;
import
org.bukkit.util.Vector
;
import
fr.maxlego08.mobfighter.api.Arena
;
import
fr.maxlego08.mobfighter.api.Duel
;
import
fr.maxlego08.mobfighter.api.Fighter
;
import
fr.maxlego08.mobfighter.api.addons.JavaAddon
;
public
class FireBallAddon
extends JavaAddon
implements Listener
{
private
long lastAttackSend
=
0
;
private List
<Fireball
> fireBalls
=
new ArrayList
<Fireball
>
(
)
;
@Override
public
void onEnable
(
)
{
System.
out.
println
(
"Enable !"
)
;
this.
registerListener
(
this
)
;
}
@Override
public
void onDisable
(
)
{
System.
out.
println
(
"Disable !"
)
;
}
@Override
public
void duelStart
(Duel duel, Arena arena, Fighter first, Fighter second
)
{
// TODO Auto-generated method stub
}
@Override
public
void duelStop
(Duel duel, Arena arena, Fighter first, Fighter second
)
{
// TODO Auto-generated method stub
}
@Override
public
void duelWin
(Duel duel, Arena arena, Fighter first, Fighter second
)
{
// TODO Auto-generated method stub
}
@Override
public
void duelTick
(Duel duel, Arena arena, Fighter first, Fighter second
)
{
if
(
System.
currentTimeMillis
(
)
> lastAttackSend
&& first.
getLocation
(
).
distance
(second.
getLocation
(
)
)
>
5
)
{
Random random
=
new
Random
(
)
;
Fighter fighter
= random.
nextBoolean
(
)
? first
: second
;
LivingEntity entity
= fighter.
getEntity
(
)
;
entity.
addPotionEffect
(
new PotionEffect
(PotionEffectType.
SLOW,
20,
150
)
)
;
Fireball fireball
= entity.
launchProjectile
(Fireball.
class
)
;
Vector vector
= fireball.
getVelocity
(
)
;
fireball.
setVelocity
(vector
)
;
fireBalls.
add
(fireball
)
;
lastAttackSend
=
System.
currentTimeMillis
(
)
+
(
1000
*
(random.
nextInt
(
2
)
+
1
)
)
;
}
}
@EventHandler
public
void onEntityExplode
(EntityExplodeEvent event
)
{
Entity entity
= event.
getEntity
(
)
;
if
(
this.
fireBalls.
contains
(entity
)
)
{
event.
setCancelled
(
true
)
;
this.
fireBalls.
remove
(entity
)
;
}
}
}