@Nonnull
    @Override
    default ProtocolSubscriptionBuilder expireAfter(long duration, @Nonnull TimeUnit unit) {
        Objects.requireNonNull(unit, "unit");
        Preconditions.checkArgument(duration >= 1, "duration < 1");
        long expiry = Math.addExact(System.currentTimeMillis(), unit.toMillis(duration));
        return expireIf((handler, event) -> System.currentTimeMillis() > expiry, ExpiryTestStage.PRE);
    }
Makes a HandlerBuilder for the given packets

@param priority   the priority to listen at
@param packets the packets to handle
@return a {@link ProtocolSubscriptionBuilder} to construct the event handler
helper/src/main/java/me/lucko/helper/event/functional/protocol/ProtocolSubscriptionBuilder.java