/* * This file is part of Libelula Minecraft Edition Project. * * Libelula Minecraft Edition is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Libelula Minecraft Edition is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Libelula Minecraft Edition. * If not, see <http://www.gnu.org/licenses/>. * */ package me.libelula.limbo; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockDamageEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.event.entity.ItemSpawnEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerPickupItemEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.weather.WeatherChangeEvent; /** * * @author Diego D'Onofrio <ddonofrio@member.fsf.org> * @version 1.0 * */ public final class EventManager implements Listener { private final Main plugin; public EventManager(Main plugin) { this.plugin = plugin; } public void register() { plugin.getServer().getPluginManager().registerEvents(this, plugin); } @EventHandler(priority = EventPriority.HIGHEST) public void onWeatherChange(WeatherChangeEvent e) { e.setCancelled(true); } @EventHandler(priority = EventPriority.HIGHEST) public void onRespawn(PlayerRespawnEvent e) { e.getPlayer().teleport(plugin.getNextSpawn()); } @EventHandler(priority = EventPriority.HIGHEST) public void onDeath(PlayerDeathEvent e) { e.getEntity().teleport(plugin.getNextSpawn()); } @EventHandler(priority = EventPriority.HIGHEST) public void onSignChange(SignChangeEvent e) { e.setCancelled(true); } @EventHandler(ignoreCancelled = true) public void onItemSpawnEvent(ItemSpawnEvent e) { e.setCancelled(true); } @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) public void onPlayerChat(AsyncPlayerChatEvent e) { e.setCancelled(true); e.getPlayer().sendMessage(ChatColor.GOLD + "Lo sentimos, no podemos permitir chat en el limbo."); } @EventHandler(ignoreCancelled = false, priority = EventPriority.LOWEST) public void onPlayerInteract(PlayerInteractEvent e) { e.setCancelled(true); } @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) public void onPlayerDrop(PlayerDropItemEvent e) { e.setCancelled(true); } @EventHandler(ignoreCancelled = false, priority = EventPriority.HIGHEST) public void onEntityDamageByEntity(EntityDamageByEntityEvent e) { e.setCancelled(true); } @EventHandler(ignoreCancelled = false, priority = EventPriority.HIGHEST) public void onPlayerInteractEntity(PlayerInteractEntityEvent e) { e.setCancelled(true); } @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) public void onInventoryClick(InventoryClickEvent e) { e.setCancelled(true); } @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) public void onPlayerQuit(PlayerQuitEvent e) { e.setQuitMessage(""); } @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) public void onJoinEvent(PlayerJoinEvent e) { e.setJoinMessage(""); e.getPlayer().teleport(plugin.getNextSpawn()); for (Player player : e.getPlayer().getWorld().getPlayers()) { player.hidePlayer(e.getPlayer()); e.getPlayer().hidePlayer(player); } } @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) public void onBlockPlaceEvent(BlockPlaceEvent e) { e.setCancelled(true); } @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) public void onBlockBreakEvent(BlockBreakEvent e) { e.setCancelled(true); } @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) public void onPlayerPickupItem(PlayerPickupItemEvent e) { e.setCancelled(true); } @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) public void onEntityTarget(EntityTargetEvent e) { e.setCancelled(true); } @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) public void onBlockDamage(BlockDamageEvent e) { e.setCancelled(true); } @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) public void onEntityDamage(EntityDamageEvent e) { e.setCancelled(true); } @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) public void onFoodLevelChange(FoodLevelChangeEvent e) { e.setCancelled(true); } @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) public void onCommandPreprocess(PlayerCommandPreprocessEvent e) { if (e.getMessage().toLowerCase().startsWith("/me")) { e.setCancelled(true); e.getPlayer().sendMessage(ChatColor.RED + "No puedes hacer eso aquĆ­."); } } }