@Override
	public Set<Data> check(Player player) {
		Set<Data> data = new HashSet<Data>();
		PreparedStatement ps = null;

		try {
			ps = this.db().prepareStatement("SELECT * FROM `gatekeeper_player` WHERE `player` = ?");
			ps.setString(1, player.getName());
			ps.execute();
			ResultSet rs = ps.getResultSet();
			while(rs.next()) {
				data.add(this.makeDataPlayer(rs));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if(ps != null) {
					ps.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		try {
			ps = this.db().prepareStatement("SELECT * FROM `gatekeeper_cidr` WHERE (`start` <= ? AND ? <= `end`)");
			long ip = Util.ip2long(player.getAddress().getAddress().getHostAddress().toString());
			ps.setLong(1, ip);
			ps.setLong(2, ip);
			ps.execute();
			ResultSet rs = ps.getResultSet();
			while(rs.next()) {
				data.add(this.makeDataCIDR(rs));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if(ps != null) {
					ps.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return data;
	}