mirror of
https://github.com/TheDeus-Group/TFM-4.3-Reloaded.git
synced 2024-05-29 09:31:16 +00:00
173 lines
4.6 KiB
Java
173 lines
4.6 KiB
Java
package me.totalfreedom.totalfreedommod.blocking;
|
|
|
|
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
|
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
|
|
import net.pravian.aero.component.service.AbstractService;
|
|
import org.bukkit.entity.Entity;
|
|
import org.bukkit.entity.EntityType;
|
|
import org.bukkit.entity.Projectile;
|
|
import org.bukkit.entity.Tameable;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.EventPriority;
|
|
import org.bukkit.event.block.BlockBurnEvent;
|
|
import org.bukkit.event.block.BlockFromToEvent;
|
|
import org.bukkit.event.block.BlockIgniteEvent;
|
|
import org.bukkit.event.block.LeavesDecayEvent;
|
|
import org.bukkit.event.entity.EntityCombustEvent;
|
|
import org.bukkit.event.entity.EntityDamageEvent;
|
|
import org.bukkit.event.entity.EntityDeathEvent;
|
|
import org.bukkit.event.entity.EntityExplodeEvent;
|
|
import org.bukkit.event.entity.ExplosionPrimeEvent;
|
|
import org.bukkit.event.entity.ProjectileHitEvent;
|
|
import org.bukkit.event.player.PlayerDropItemEvent;
|
|
|
|
public class EventBlocker extends AbstractService<TotalFreedomMod>
|
|
{
|
|
|
|
public EventBlocker(TotalFreedomMod plugin)
|
|
{
|
|
super(plugin);
|
|
}
|
|
|
|
@Override
|
|
protected void onStart()
|
|
{
|
|
}
|
|
|
|
@Override
|
|
protected void onStop()
|
|
{
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
public void onBlockBurn(BlockBurnEvent event)
|
|
{
|
|
if (!ConfigEntry.ALLOW_FIRE_SPREAD.getBoolean())
|
|
{
|
|
event.setCancelled(true);
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
public void onBlockIgnite(BlockIgniteEvent event)
|
|
{
|
|
if (!ConfigEntry.ALLOW_FIRE_PLACE.getBoolean())
|
|
{
|
|
event.setCancelled(true);
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
public void onBlockFromTo(BlockFromToEvent event)
|
|
{
|
|
if (!ConfigEntry.ALLOW_FLUID_SPREAD.getBoolean())
|
|
{
|
|
event.setCancelled(true);
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
public void onEntityExplode(EntityExplodeEvent event)
|
|
{
|
|
if (!ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
|
|
{
|
|
event.setCancelled(true);
|
|
return;
|
|
}
|
|
|
|
event.setYield(0.0F);
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
public void onExplosionPrime(ExplosionPrimeEvent event)
|
|
{
|
|
if (!ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
|
|
{
|
|
event.setCancelled(true);
|
|
return;
|
|
}
|
|
|
|
event.setRadius(ConfigEntry.EXPLOSIVE_RADIUS.getDouble().floatValue());
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
public void onEntityCombust(EntityCombustEvent event)
|
|
{
|
|
if (!ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
|
|
{
|
|
event.setCancelled(true);
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
public void onEntityDeath(EntityDeathEvent event)
|
|
{
|
|
if (ConfigEntry.AUTO_ENTITY_WIPE.getBoolean())
|
|
{
|
|
event.setDroppedExp(0);
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
public void onProjectileHit(ProjectileHitEvent event)
|
|
{
|
|
if (ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
|
|
{
|
|
Projectile entity = event.getEntity();
|
|
if (event.getEntityType() == EntityType.ARROW)
|
|
{
|
|
entity.getWorld().createExplosion(entity.getLocation(), 2F);
|
|
}
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
public void onEntityDamage(EntityDamageEvent event)
|
|
{
|
|
switch (event.getCause())
|
|
{
|
|
case LAVA:
|
|
{
|
|
if (!ConfigEntry.ALLOW_LAVA_DAMAGE.getBoolean())
|
|
{
|
|
event.setCancelled(true);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (ConfigEntry.ENABLE_PET_PROTECT.getBoolean())
|
|
{
|
|
Entity entity = event.getEntity();
|
|
if (entity instanceof Tameable)
|
|
{
|
|
if (((Tameable) entity).isTamed())
|
|
{
|
|
event.setCancelled(true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.NORMAL)
|
|
public void onPlayerDropItem(PlayerDropItemEvent event)
|
|
{
|
|
if (!ConfigEntry.AUTO_ENTITY_WIPE.getBoolean())
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (event.getPlayer().getWorld().getEntities().size() > 750)
|
|
{
|
|
event.setCancelled(true);
|
|
}
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.NORMAL)
|
|
public void onLeavesDecay(LeavesDecayEvent event)
|
|
{
|
|
event.setCancelled(true);
|
|
}
|
|
|
|
}
|