package nautilus.game.arcade.managers; import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; import org.bukkit.Material; 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.Action; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerInteractEvent; public class MiscManager implements Listener { ArcadeManager Manager; public MiscManager(ArcadeManager manager) { Manager = manager; Manager.GetPluginManager().registerEvents(this, Manager.GetPlugin()); } @EventHandler(priority = EventPriority.LOWEST) public void InteractActive(PlayerInteractEvent event) { event.setCancelled(false); } @EventHandler(priority = EventPriority.LOW) public void InteractClickCancel(PlayerInteractEvent event) { if (Manager.GetGame() == null) return; Player player = event.getPlayer(); if (!Manager.GetGame().IsAlive(player)) { event.setCancelled(true); } //BoneMeal else if (event.getPlayer().getItemInHand().getType() == Material.INK_SACK && event.getPlayer().getItemInHand().getData().getData() == (byte)15) { if (event.getAction() == Action.RIGHT_CLICK_BLOCK && Manager.GetGame().GetType() != GameType.UHC) event.setCancelled(true); } } @EventHandler(priority = EventPriority.LOWEST) public void InventoryClickCancel(InventoryClickEvent event) { if (Manager.GetGame() == null) return; Player player = UtilPlayer.searchExact(event.getWhoClicked().getName()); if (Manager.GetGame().IsLive() && !Manager.GetGame().IsAlive(player)) { event.setCancelled(true); player.closeInventory(); } } @EventHandler public void HubClockUpdate(UpdateEvent event) { if (event.getType() != UpdateType.SLOW) return; if (Manager.GetGame() == null) return; if (Manager.GetGame().GetType() == GameType.UHC) return; for (Player player : UtilServer.getPlayers()) { if (!Manager.GetGame().IsAlive(player)) { if (!player.getInventory().contains(Material.WATCH)) { Manager.HubClock(player); } } } } @EventHandler(priority = EventPriority.LOWEST) public void HubClockInteract(PlayerInteractEvent event) { Player player = event.getPlayer(); if (player.getItemInHand() == null) return; if (player.getItemInHand().getType() != Material.WATCH) return; Manager.GetPortal().SendPlayerToServer(player, "Lobby"); } @EventHandler public void HubCommand(PlayerCommandPreprocessEvent event) { if (event.getMessage().startsWith("/hub") || event.getMessage().startsWith("/leave")) { Manager.GetPortal().SendPlayerToServer(event.getPlayer(), "Lobby"); event.setCancelled(true); } } }