2019-12-17 12:37:59 +00:00
|
|
|
package pw.kaboom.extras.modules.entity;
|
2019-07-30 17:14:24 +00:00
|
|
|
|
2022-05-20 03:07:38 +00:00
|
|
|
import org.bukkit.World;
|
|
|
|
|
2019-09-28 00:29:48 +00:00
|
|
|
import org.bukkit.entity.Fireball;
|
|
|
|
|
2019-07-30 17:14:24 +00:00
|
|
|
import org.bukkit.event.EventHandler;
|
|
|
|
import org.bukkit.event.Listener;
|
|
|
|
|
|
|
|
import org.bukkit.event.entity.ExplosionPrimeEvent;
|
|
|
|
|
2019-12-21 14:12:26 +00:00
|
|
|
public final class EntityExplosion implements Listener {
|
2022-05-20 02:35:48 +00:00
|
|
|
@EventHandler
|
|
|
|
void onExplosionPrime(final ExplosionPrimeEvent event) {
|
|
|
|
final int maxRadius = 20;
|
2019-12-21 14:12:26 +00:00
|
|
|
|
2022-05-20 02:35:48 +00:00
|
|
|
if (event.getRadius() > maxRadius) {
|
|
|
|
event.setRadius(maxRadius);
|
|
|
|
}
|
2019-12-21 14:12:26 +00:00
|
|
|
|
2022-05-20 03:07:38 +00:00
|
|
|
final World world = event.getEntity().getWorld();
|
2022-05-20 02:35:48 +00:00
|
|
|
final int maxFireballCount = 30;
|
2019-12-21 14:12:26 +00:00
|
|
|
|
2022-05-20 03:07:38 +00:00
|
|
|
if (world.getEntitiesByClass(Fireball.class).size() > maxFireballCount
|
2022-05-20 02:35:48 +00:00
|
|
|
&& event.getRadius() > 1) {
|
|
|
|
event.setRadius(1);
|
|
|
|
}
|
|
|
|
}
|
2019-07-30 17:14:24 +00:00
|
|
|
}
|