@Nonnull
    @Override
    default SingleSubscriptionBuilder<T> 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 a given event

@param eventClass the class of the event
@param priority   the priority to listen at
@param <T>        the event type
@return a {@link SingleSubscriptionBuilder} to construct the event handler
@throws NullPointerException if eventClass or priority is null
helper/src/main/java/me/lucko/helper/event/functional/single/SingleSubscriptionBuilder.java