public @NonNull List<@NonNull ParameterValue> createParameterValues(
            final @NonNull CommandContext<C> context,
            final @NonNull Parameter @NonNull[] parameters,
            final @NonNull Collection<Object> preDeterminedValues
            ) {
        final List<ParameterValue> values = new ArrayList<>(parameters.length);
        outer: for (final Parameter parameter : parameters) {
            for (final Object preDeterminedValue : preDeterminedValues) {
               if (parameter.getType().isInstance(preDeterminedValue)) {
                   values.add(ParameterValue.of(parameter, preDeterminedValue));
                   continue outer;
               }
            }

            final ParameterValue contextualValue = this.getParameterValue(parameter, context);
            if (contextualValue != null) {
                values.add(contextualValue);
                continue;
            }

            if (parameter.getType().isAssignableFrom(context.sender().getClass())) {
                values.add(ParameterValue.of(parameter, context.sender()));
                continue;
            }

            final ParameterValue injectedValue = this.getInjectedValue(parameter, context);
            if (injectedValue != null) {
                values.add(injectedValue);
                continue;
            }

            throw new IllegalArgumentException(String.format(
                    "Could not create value for parameter '%s' of type '%s' in method '%s'",
                    parameter.getName(),
                    parameter.getType().getTypeName(),
                    this.methodHandle().toString()
            ));
        }
        return Collections.unmodifiableList(values);
    }
Creates a list of values for the given method {@code parameters}.

@param context             command context
@param parameters          parameters to get values for
@param preDeterminedValues values that are already known
@return the parameter values
cloud-annotations/src/main/java/org/incendo/cloud/annotations/method/AnnotatedMethodHandler.java