Пример #1
0
  @Override
  public void dispose() {

    if (this.equals(_provider.getServerJail()))
      throw new IllegalStateException("Cannot dispose server jail.");

    _provider.removeJail(this);

    _dataNode.remove();
    _dataNode.save();

    _isDisposed = true;
  }
Пример #2
0
  @Override
  public boolean isPrisoner(Player player) {
    PreCon.notNull(player);

    IJailSession session = _provider.getSession(player.getUniqueId());
    return session != null && session.getJail().equals(this);
  }
Пример #3
0
  @Nullable
  @Override
  public IJailSession imprison(Player player, Date expires) {
    PreCon.notNull(player);

    checkDisposed();

    // teleport player to jail
    Location teleport = getRandomTeleport();
    if (teleport == null) {

      if (!_bounds.isDefined()) {
        NucMsg.debug(
            getPlugin(),
            "Cannot imprison player in jail '{0}' because its coordinates "
                + "are undefined and no teleport location has been assigned.");
        return null;
      }

      teleport = _bounds.getCenter();
    }

    // register session
    IJailSession session = _provider.createSession(this, player.getUniqueId(), expires);

    if (session == null) return null;

    player.teleport(teleport);
    player.setGameMode(GameMode.SURVIVAL);

    return session;
  }