package tc.oc.lobby.bukkit.listeners;
import org.bukkit.event.Event;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBurnEvent;
import org.bukkit.event.block.BlockFadeEvent;
import org.bukkit.event.block.BlockFormEvent;
import org.bukkit.event.block.BlockFromToEvent;
import org.bukkit.event.block.BlockPhysicsEvent;
import org.bukkit.event.block.BlockSpreadEvent;
import org.bukkit.event.block.LeavesDecayEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.FoodLevelChangeEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.hanging.HangingBreakByEntityEvent;
import org.bukkit.event.player.PlayerBucketEmptyEvent;
import org.bukkit.event.player.PlayerBucketFillEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.event.player.PlayerInteractAtEntityEvent;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.event.weather.WeatherChangeEvent;
public class EnvironmentControlListener implements Listener {
@EventHandler(priority = EventPriority.HIGH)
public void physics(final BlockPhysicsEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.NORMAL)
public void noHunger(final FoodLevelChangeEvent event) {
event.setCancelled(true);
}
@EventHandler
public void noWeather(final WeatherChangeEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void noDamage(final EntityDamageEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void noFire(final BlockBurnEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void noSpread(final BlockSpreadEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void noMelt(final BlockFromToEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void noFade(final BlockFadeEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void noForm(final BlockFormEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void noFrames(final HangingBreakByEntityEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void noBucket(final LeavesDecayEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void noBucket(final PlayerBucketEmptyEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void noBucket(final PlayerBucketFillEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void interactEntity(PlayerInteractEvent event) {
if(!event.getPlayer().isOp()) {
event.setCancelled(true);
event.setUseInteractedBlock(Event.Result.DENY);
event.setUseItemInHand(Event.Result.DENY);
}
}
@EventHandler(priority = EventPriority.HIGH)
public void interactEntity(PlayerInteractEntityEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void interactAtEntity(PlayerInteractAtEntityEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void pickupItem(PlayerPickupItemEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void drop(final PlayerDropItemEvent event) {
event.setCancelled(true);
}
@EventHandler(priority = EventPriority.HIGH)
public void death(final PlayerDeathEvent event) {
event.getDrops().clear();
}
}