/* * Copyright (c) 2018 univento.eu - All rights reserved * You are not allowed to use, distribute or modify this code */ package eu.univento.lobby.listeners; import eu.univento.core.api.Config; import eu.univento.core.api.player.CustomPlayer; import eu.univento.lobby.utils.CustomMapRenderer; import org.bukkit.Material; import org.bukkit.entity.ItemFrame; import org.bukkit.entity.LivingEntity; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBurnEvent; import org.bukkit.event.block.BlockGrowEvent; import org.bukkit.event.block.BlockIgniteEvent; import org.bukkit.event.block.BlockIgniteEvent.IgniteCause; import org.bukkit.event.entity.*; import org.bukkit.event.hanging.HangingBreakByEntityEvent; import org.bukkit.event.inventory.InventoryCreativeEvent; import org.bukkit.event.inventory.InventoryMoveItemEvent; import org.bukkit.event.player.*; import org.bukkit.event.server.MapInitializeEvent; import org.bukkit.event.weather.WeatherChangeEvent; import org.bukkit.event.world.StructureGrowEvent; import org.bukkit.map.MapView; /** * some short events * @author joethei * @version 1.0 */ public class Events implements Listener { @EventHandler public void onMapInit(MapInitializeEvent e) { MapView map = e.getMap(); map.getRenderers().forEach(map::removeRenderer); map.addRenderer(new CustomMapRenderer()); } @EventHandler public void onFoodLevelChange(FoodLevelChangeEvent e) { e.setCancelled(true); } @EventHandler public void onWeatherChange(WeatherChangeEvent e) { e.setCancelled(true); } @EventHandler public void onConsume(PlayerItemConsumeEvent e) { e.setCancelled(true); } @EventHandler public void onDeath(PlayerDeathEvent e) { e.setDeathMessage(null); e.setKeepInventory(true); e.setKeepLevel(true); } @EventHandler public void onItemMove(InventoryMoveItemEvent e) { e.setCancelled(true); } @EventHandler public void onItemSwapHands(PlayerSwapHandItemsEvent e) { e.setCancelled(true); } @EventHandler public void onRespawn(PlayerRespawnEvent e) { e.setRespawnLocation(Config.readLocation("Lobby.Locs.Spawn")); } @EventHandler public void onInventoryCreative(InventoryCreativeEvent e) { e.setCancelled(false); } @EventHandler public void onDrop(PlayerDropItemEvent e) { e.setCancelled(true); } @EventHandler public void onDamage(EntityDamageEvent e) { e.setCancelled(true); } @EventHandler public void onExplode(EntityExplodeEvent e) { e.blockList().clear(); } @EventHandler public void onBurn(BlockBurnEvent e) { e.setCancelled(true); } @EventHandler public void onBlockIgnite(BlockIgniteEvent e) { if (e.getCause() == IgniteCause.SPREAD) e.setCancelled(true); } @EventHandler public void onInteract(PlayerInteractEvent e) { if (e.getAction() == Action.PHYSICAL && e.getClickedBlock().getType() == Material.SOIL) e.setCancelled(true); if (e.getAction() == Action.RIGHT_CLICK_BLOCK) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer().getName()); if (e.getClickedBlock().getType() == Material.CHEST) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.FURNACE) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.BURNING_FURNACE) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.WORKBENCH) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.BREWING_STAND) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.ARMOR_STAND) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.ACACIA_DOOR) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.BIRCH_DOOR) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.DARK_OAK_DOOR) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.JUNGLE_DOOR) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.TRAP_DOOR) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.SPRUCE_DOOR) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.WOOD_DOOR) e.setCancelled(true); if (e.getClickedBlock().getType() == Material.WOODEN_DOOR) e.setCancelled(true); } } @EventHandler public void onHangingBreak(HangingBreakByEntityEvent e) { if (e.getEntity() instanceof ItemFrame) e.setCancelled(true); } @EventHandler public void onBlockGrow(BlockGrowEvent e) { e.setCancelled(true); } @EventHandler public void onStructureGrow(StructureGrowEvent e) { e.setCancelled(true); } @EventHandler public void onArmorstandManipulate(PlayerArmorStandManipulateEvent e) { e.setCancelled(true); } @EventHandler public void onChat(AsyncPlayerChatEvent e) { CustomPlayer p = CustomPlayer.getPlayer(e.getPlayer()); for (CustomPlayer players : PlayerHider.getSilentlobby()) e.getRecipients().remove(players); if (PlayerHider.getSilentlobby().contains(p)) e.setCancelled(true); } @EventHandler public void onEntityBlockChange(EntityChangeBlockEvent e) { e.setCancelled(true); } /* @EventHandler public void onCreatureSpawn(CreatureSpawnEvent e) { if (e.getSpawnReason() != CreatureSpawnEvent.SpawnReason.CUSTOM) { e.setCancelled(true); } } */ @EventHandler public void onEntityInteract(EntityInteractEvent e) { if (e.getBlock().getType() == Material.CROPS && e.getEntity() instanceof LivingEntity) e.setCancelled(true); } }