Mineplex2018-withcommit/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/managers/MiscManager.java

91 lines
2.3 KiB
Java
Raw Normal View History

2013-08-27 17:14:08 +02:00
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;
2013-08-27 17:14:08 +02:00
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.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);
}
else if (event.getPlayer().getItemInHand().getType() == Material.INK_SACK && event.getPlayer().getItemInHand().getData().getData() == (byte)15)
{
if (event.getAction() == Action.RIGHT_CLICK_BLOCK)
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 EnsureHubClock(UpdateEvent event)
{
if (event.getType() != UpdateType.SLOW)
return;
if (Manager.GetGame() != null && Manager.GetGame().GetType() == GameType.UHC)
return;
2013-08-27 17:14:08 +02:00
for (Player player : UtilServer.getPlayers())
{
if (Manager.GetGame() == null || !Manager.GetGame().IsAlive(player))
{
if (!player.getInventory().contains(Material.WATCH))
{
Manager.HubClock(player);
}
}
}
}
}