Browse Source

add modifyModal deleagate parameter to RespondWithModalAsync extension method

pull/2226/head
Cenngo 3 years ago
parent
commit
a7b25a33bc
1 changed files with 5 additions and 1 deletions
  1. +5
    -1
      src/Discord.Net.Interactions/Extensions/IDiscordInteractionExtensions.cs

+ 5
- 1
src/Discord.Net.Interactions/Extensions/IDiscordInteractionExtensions.cs View File

@@ -10,9 +10,10 @@ namespace Discord.Interactions
/// </summary> /// </summary>
/// <typeparam name="T">Type of the <see cref="IModal"/> implementation.</typeparam> /// <typeparam name="T">Type of the <see cref="IModal"/> implementation.</typeparam>
/// <param name="interaction">The interaction to respond to.</param> /// <param name="interaction">The interaction to respond to.</param>
/// <param name="modifyModal">Delegate that can be used to modify the modal.</param>
/// <param name="options">The request options for this <see langword="async"/> request.</param> /// <param name="options">The request options for this <see langword="async"/> request.</param>
/// <returns>A task that represents the asynchronous operation of responding to the interaction.</returns> /// <returns>A task that represents the asynchronous operation of responding to the interaction.</returns>
public static async Task RespondWithModalAsync<T>(this IDiscordInteraction interaction, string customId, RequestOptions options = null)
public static async Task RespondWithModalAsync<T>(this IDiscordInteraction interaction, string customId, Action<ModalBuilder> modifyModal = null, RequestOptions options = null)
where T : class, IModal where T : class, IModal
{ {
if (!ModalUtils.TryGet<T>(out var modalInfo)) if (!ModalUtils.TryGet<T>(out var modalInfo))
@@ -31,6 +32,9 @@ namespace Discord.Interactions
throw new InvalidOperationException($"{input.GetType().FullName} isn't a valid component info class"); throw new InvalidOperationException($"{input.GetType().FullName} isn't a valid component info class");
} }


if (modifyModal is not null)
modifyModal(builder);

await interaction.RespondWithModalAsync(builder.Build(), options).ConfigureAwait(false); await interaction.RespondWithModalAsync(builder.Build(), options).ConfigureAwait(false);
} }
} }


Loading…
Cancel
Save