TotalFreedomMod/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_EntityListener.java

127 lines
3.3 KiB
Java
Raw Normal View History

2011-10-19 00:37:00 +00:00
package me.StevenLawson.TotalFreedomMod.Listener;
2011-09-23 03:22:10 +00:00
2011-10-19 00:37:00 +00:00
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
2011-11-21 05:54:11 +00:00
import org.bukkit.Bukkit;
import org.bukkit.World;
2011-11-28 22:44:51 +00:00
import org.bukkit.entity.*;
2011-10-13 23:07:52 +00:00
import org.bukkit.event.entity.*;
2011-09-23 15:45:34 +00:00
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
2011-09-23 03:22:10 +00:00
2011-10-02 04:23:22 +00:00
public class TFM_EntityListener extends EntityListener
2011-09-23 03:22:10 +00:00
{
2011-10-10 12:09:19 +00:00
private TotalFreedomMod plugin;
2011-10-19 00:37:00 +00:00
public TFM_EntityListener(TotalFreedomMod instance)
2011-09-23 03:22:10 +00:00
{
2011-10-10 12:09:19 +00:00
this.plugin = instance;
2011-09-23 03:22:10 +00:00
}
@Override
public void onEntityExplode(EntityExplodeEvent event)
{
if (!TotalFreedomMod.allowExplosions)
{
event.setCancelled(true);
return;
}
2011-11-21 04:31:29 +00:00
2011-10-21 17:02:07 +00:00
event.setYield(0.0f);
}
@Override
public void onExplosionPrime(ExplosionPrimeEvent event)
2011-09-23 03:22:10 +00:00
{
if (!TotalFreedomMod.allowExplosions)
2011-09-23 15:45:34 +00:00
{
event.setCancelled(true);
return;
}
event.setRadius((float) TotalFreedomMod.explosiveRadius);
2011-09-23 15:45:34 +00:00
}
2011-09-23 15:45:34 +00:00
@Override
public void onEntityCombust(EntityCombustEvent event)
{
if (!TotalFreedomMod.allowFireSpread)
2011-09-23 15:45:34 +00:00
{
event.setCancelled(true);
return;
}
}
@Override
public void onEntityDamage(EntityDamageEvent event)
{
if (event.getCause() == DamageCause.LAVA && !TotalFreedomMod.allowLavaDamage)
2011-09-23 15:45:34 +00:00
{
event.setCancelled(true);
return;
}
2011-09-23 03:22:10 +00:00
}
2011-11-21 04:31:29 +00:00
@Override
public void onCreatureSpawn(CreatureSpawnEvent event)
{
if (TotalFreedomMod.mobLimiterEnabled)
{
2011-11-28 22:44:51 +00:00
Entity spawned = event.getEntity();
if (spawned instanceof EnderDragon)
{
if (TotalFreedomMod.mobLimiterDisableDragon)
{
event.setCancelled(true);
return;
}
}
else if (spawned instanceof Ghast)
{
if (TotalFreedomMod.mobLimiterDisableGhast)
{
event.setCancelled(true);
return;
}
}
else if (spawned instanceof Slime)
2011-11-21 05:54:11 +00:00
{
2011-11-28 22:44:51 +00:00
if (TotalFreedomMod.mobLimiterDisableSlime)
{
event.setCancelled(true);
return;
}
2011-11-21 05:54:11 +00:00
}
2011-11-28 22:44:51 +00:00
else if (spawned instanceof Giant)
{
if (TotalFreedomMod.mobLimiterDisableGiant)
{
event.setCancelled(true);
return;
}
}
2011-11-21 04:31:29 +00:00
if (TotalFreedomMod.mobLimiterMax > 0)
{
2011-11-21 05:54:11 +00:00
int mobcount = 0;
2011-11-28 22:44:51 +00:00
2011-11-21 05:54:11 +00:00
for (World world : Bukkit.getWorlds())
{
for (Entity ent : world.getLivingEntities())
{
if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime || ent instanceof EnderDragon)
{
mobcount++;
}
}
}
2011-11-28 22:44:51 +00:00
2011-11-21 05:54:11 +00:00
if (mobcount > TotalFreedomMod.mobLimiterMax)
2011-11-21 04:31:29 +00:00
{
event.setCancelled(true);
2011-11-21 05:54:11 +00:00
return;
2011-11-21 04:31:29 +00:00
}
}
}
}
2011-09-23 03:22:10 +00:00
}