[Feature] Refactor SendMessageAsync & SendFile(s)Async methods & modify webhook message attachments (#2609)
* initial commit * resolve merge conficts * code review suggestions
This commit is contained in:
@@ -31,7 +31,8 @@ namespace Discord
|
||||
/// <param name="components">The message components to be included with this message. Used for interactions.</param>
|
||||
/// <param name="stickers">A collection of stickers to send with the message.</param>
|
||||
/// <param name="embeds">A array of <see cref="Embed"/>s to send with this response. Max 10.</param>
|
||||
/// <param name="flags">A message flag to be applied to the sent message, only <see cref="MessageFlags.SuppressEmbeds"/> is permitted.</param>
|
||||
/// <param name="flags">A message flag to be applied to the sent message, only <see cref="MessageFlags.SuppressEmbeds"/>
|
||||
/// and <see cref="MessageFlags.SuppressNotification"/> is permitted.</param>
|
||||
/// <returns>
|
||||
/// A task that represents an asynchronous send operation for delivering the message. The task result
|
||||
/// contains the sent message.
|
||||
@@ -72,7 +73,7 @@ namespace Discord
|
||||
/// <param name="components">The message components to be included with this message. Used for interactions.</param>
|
||||
/// <param name="stickers">A collection of stickers to send with the file.</param>
|
||||
/// <param name="embeds">A array of <see cref="Embed"/>s to send with this response. Max 10.</param>
|
||||
/// <param name="flags">A message flag to be applied to the sent message, only <see cref="MessageFlags.SuppressEmbeds"/> is permitted.</param>
|
||||
/// <param name="flags">A message flag to be applied to the sent message, only <see cref="MessageFlags.SuppressEmbeds"/> and <see cref="MessageFlags.SuppressNotification"/> is permitted.</param>
|
||||
/// <returns>
|
||||
/// A task that represents an asynchronous send operation for delivering the message. The task result
|
||||
/// contains the sent message.
|
||||
@@ -110,7 +111,7 @@ namespace Discord
|
||||
/// <param name="components">The message components to be included with this message. Used for interactions.</param>
|
||||
/// <param name="stickers">A collection of stickers to send with the file.</param>
|
||||
/// <param name="embeds">A array of <see cref="Embed"/>s to send with this response. Max 10.</param>
|
||||
/// <param name="flags">A message flag to be applied to the sent message, only <see cref="MessageFlags.SuppressEmbeds"/> is permitted.</param>
|
||||
/// <param name="flags">A message flag to be applied to the sent message, only <see cref="MessageFlags.SuppressEmbeds"/> and <see cref="MessageFlags.SuppressNotification"/> is permitted.</param>
|
||||
/// <returns>
|
||||
/// A task that represents an asynchronous send operation for delivering the message. The task result
|
||||
/// contains the sent message.
|
||||
@@ -140,7 +141,7 @@ namespace Discord
|
||||
/// <param name="components">The message components to be included with this message. Used for interactions.</param>
|
||||
/// <param name="stickers">A collection of stickers to send with the file.</param>
|
||||
/// <param name="embeds">A array of <see cref="Embed"/>s to send with this response. Max 10.</param>
|
||||
/// <param name="flags">A message flag to be applied to the sent message, only <see cref="MessageFlags.SuppressEmbeds"/> is permitted.</param>
|
||||
/// <param name="flags">A message flag to be applied to the sent message, only <see cref="MessageFlags.SuppressEmbeds"/> and <see cref="MessageFlags.SuppressNotification"/> is permitted.</param>
|
||||
/// <returns>
|
||||
/// A task that represents an asynchronous send operation for delivering the message. The task result
|
||||
/// contains the sent message.
|
||||
@@ -170,7 +171,7 @@ namespace Discord
|
||||
/// <param name="components">The message components to be included with this message. Used for interactions.</param>
|
||||
/// <param name="stickers">A collection of stickers to send with the file.</param>
|
||||
/// <param name="embeds">A array of <see cref="Embed"/>s to send with this response. Max 10.</param>
|
||||
/// <param name="flags">A message flag to be applied to the sent message, only <see cref="MessageFlags.SuppressEmbeds"/> is permitted.</param>
|
||||
/// <param name="flags">A message flag to be applied to the sent message, only <see cref="MessageFlags.SuppressEmbeds"/> and <see cref="MessageFlags.SuppressNotification"/> is permitted.</param>
|
||||
/// <returns>
|
||||
/// A task that represents an asynchronous send operation for delivering the message. The task result
|
||||
/// contains the sent message.
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Discord
|
||||
{
|
||||
@@ -69,6 +71,50 @@ namespace Discord
|
||||
|
||||
private static ArgumentException CreateNotEmptyException(string name, string msg)
|
||||
=> new ArgumentException(message: msg ?? "Argument cannot be blank.", paramName: name);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Message Validation
|
||||
|
||||
public static void WebhookMessageAtLeastOneOf(string text = null, MessageComponent components = null, ICollection<IEmbed> embeds = null,
|
||||
IEnumerable<FileAttachment> attachments = null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(text))
|
||||
return;
|
||||
|
||||
if (components != null && components.Components.Count != 0)
|
||||
return;
|
||||
|
||||
if (attachments != null && attachments.Count() != 0)
|
||||
return;
|
||||
|
||||
if (embeds != null && embeds.Count != 0)
|
||||
return;
|
||||
|
||||
throw new ArgumentException($"At least one of 'Content', 'Embeds', 'Components' or 'Attachments' must be specified.");
|
||||
}
|
||||
|
||||
public static void MessageAtLeastOneOf(string text = null, MessageComponent components = null, ICollection<IEmbed> embeds = null,
|
||||
ICollection<ISticker> stickers = null, IEnumerable<FileAttachment> attachments = null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(text))
|
||||
return;
|
||||
|
||||
if (components != null && components.Components.Count != 0)
|
||||
return;
|
||||
|
||||
if (stickers != null && stickers.Count != 0)
|
||||
return;
|
||||
|
||||
if (attachments != null && attachments.Count() != 0)
|
||||
return;
|
||||
|
||||
if (embeds != null && embeds.Count != 0)
|
||||
return;
|
||||
|
||||
throw new ArgumentException($"At least one of 'Content', 'Embeds', 'Components', 'Stickers' or 'Attachments' must be specified.");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Numerics
|
||||
|
||||
Reference in New Issue
Block a user