@@ -51,8 +51,6 @@ namespace Discord.Interactions | |||||
var paramCount = paramList.Count(); | var paramCount = paramList.Count(); | ||||
var captureCount = wildcardCaptures?.Count() ?? 0; | var captureCount = wildcardCaptures?.Count() ?? 0; | ||||
if (paramCount < captureCount + 1) | |||||
return await InvokeEventAndReturn(context, ExecuteResult.FromError(InteractionCommandError.BadArgs, "Command was invoked with too many parameters")).ConfigureAwait(false); | |||||
if (context.Interaction is not IComponentInteraction messageComponent) | if (context.Interaction is not IComponentInteraction messageComponent) | ||||
return ExecuteResult.FromError(InteractionCommandError.ParseFailed, $"Provided {nameof(IInteractionContext)} doesn't belong to a Component Command Interaction"); | return ExecuteResult.FromError(InteractionCommandError.ParseFailed, $"Provided {nameof(IInteractionContext)} doesn't belong to a Component Command Interaction"); | ||||
@@ -914,8 +914,23 @@ namespace Discord.Interactions | |||||
/// <returns> | /// <returns> | ||||
/// A task representing the conversion process. The task result contains the result of the conversion. | /// A task representing the conversion process. The task result contains the result of the conversion. | ||||
/// </returns> | /// </returns> | ||||
public Task<string> SerializeValue<T>(T obj, IServiceProvider services = null) => | |||||
_typeReaderMap.Get(typeof(T), services).SerializeAsync(obj); | |||||
public Task<string> SerializeValueAsync<T>(T obj, IServiceProvider services) => | |||||
_typeReaderMap.Get(typeof(T), services).SerializeAsync(obj, services); | |||||
public async Task<string> GenerateCustomIdStringAsync(string format, IServiceProvider services, params object[] args) | |||||
{ | |||||
var serializedValues = new string[args.Length]; | |||||
for(var i = 0; i < args.Length; i++) | |||||
{ | |||||
var arg = args[i]; | |||||
var typeReader = _typeReaderMap.Get(arg.GetType(), null); | |||||
var result = await typeReader.SerializeAsync(arg, services); | |||||
serializedValues[i] = result; | |||||
} | |||||
return string.Format(format, serializedValues); | |||||
} | |||||
/// <summary> | /// <summary> | ||||
/// Loads and caches an <see cref="ModalInfo"/> for the provided <see cref="IModal"/>. | /// Loads and caches an <see cref="ModalInfo"/> for the provided <see cref="IModal"/>. | ||||
@@ -33,7 +33,7 @@ namespace Discord.Interactions | |||||
/// <returns> | /// <returns> | ||||
/// A task representing the conversion process. The result of the task contains the conversion result. | /// A task representing the conversion process. The result of the task contains the conversion result. | ||||
/// </returns> | /// </returns> | ||||
public virtual Task<string> SerializeAsync(object obj) => Task.FromResult(obj.ToString()); | |||||
public virtual Task<string> SerializeAsync(object obj, IServiceProvider services) => Task.FromResult(obj.ToString()); | |||||
} | } | ||||
/// <inheritdoc/> | /// <inheritdoc/> | ||||