@EventHandler
  public void onPlayerStopFlying(PlayerToggleFlightEvent e) {

    Player p = e.getPlayer();

    if (ArenaManager.isPlayerPlaying(p)
        && ArenaManager.getPlayersArena(p).getState() == Arena.ArenaState.INGAME) {
      if (!e.isFlying()) {
        e.setCancelled(true);
        p.setFlying(true);
      }
    }
  }
  @EventHandler
  public void onPlayerLeave(PlayerQuitEvent e) {

    Player p = e.getPlayer();

    if (ArenaManager.isPlayerPlaying(p)) {

      e.setQuitMessage("");

      Arena arena = ArenaManager.getPlayersArena(p);
      ArenaManager.leave(arena, p, true);
    }
  }
  @EventHandler
  public void onPlayerBreakBlock(BlockBreakEvent e) {

    Player p = e.getPlayer();

    if (ArenaManager.isPlayerPlaying(p)) {
      e.setCancelled(true);
    }
  }
  @EventHandler
  public void onPlayerShoot(PlayerInteractEvent e) {

    Player p = e.getPlayer();

    if (ArenaManager.isPlayerPlaying(p)) {
      if (e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction() == Action.RIGHT_CLICK_AIR) {
        if ((e.getItem() != null) && (p.getItemInHand() != null)) {
          if (Objects.equals(
              e.getItem().getItemMeta().getDisplayName(), WeaponManager.WEAPON_NAME)) {
            if (NexusGame.isParticleEffectLibInstalled()) {
              Effect line = new ShootEffect(NexusGame.effects.getEffectManager());
              line.color = Color.PURPLE;
              line.setEntity(p);
              line.setTargetLocation(
                  p.getTargetBlock(Sets.<Material>newHashSet(), 100).getLocation());

              NexusGame.effects.playEffect(line);
            }
          }
        }
      }
    }
  }