feature: add extensions for bulk reactions
this is not api-level bulk reactions (!)
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Discord
|
||||
{
|
||||
/// <summary>
|
||||
@@ -17,5 +19,57 @@ namespace Discord
|
||||
var channel = msg.Channel;
|
||||
return $"https://discordapp.com/channels/{(channel is IDMChannel ? "@me" : $"{(channel as ITextChannel).GuildId}")}/{channel.Id}/{msg.Id}";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add multiple reactions to a message.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This method does not bulk add reactions! It will send a request for each reaction inculded.
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// <code language="cs">
|
||||
/// IEmote A = new Emoji("🅰");
|
||||
/// IEmote B = new Emoji("🅱");
|
||||
/// await msg.AddReactionsAsync(new[] { A, B });
|
||||
/// </code>
|
||||
/// </example>
|
||||
/// <param name="msg">The message to add reactions to.</param>
|
||||
/// <param name="reactions">An array of reactions to add to the message</param>
|
||||
/// <param name="options">The options to be used when sending the request.</param>
|
||||
/// <returns>
|
||||
/// A task that represents the asynchronous operation for adding a reaction to this message.
|
||||
/// </returns>
|
||||
/// <seealso cref="IUserMessage.AddReactionAsync(IEmote, RequestOptions)"/>
|
||||
/// <seealso cref="IEmote"/>
|
||||
public static async Task AddReactionsAsync(this IUserMessage msg, IEmote[] reactions, RequestOptions options = null)
|
||||
{
|
||||
foreach (var rxn in reactions)
|
||||
await msg.AddReactionAsync(rxn, options).ConfigureAwait(false);
|
||||
}
|
||||
/// <summary>
|
||||
/// Remove multiple reactions from a message.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This method does not bulk remove reactions! If you want to clear reactions from a message,
|
||||
/// <see cref="IUserMessage.RemoveAllReactionsAsync(RequestOptions)"/>
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
/// <code language="cs">
|
||||
/// await msg.RemoveReactionsAsync(currentUser, new[] { A, B });
|
||||
/// </code>
|
||||
/// </example>
|
||||
/// <param name="msg">The message to remove reactions from.</param>
|
||||
/// <param name="reactions">An array of reactions to remove from the message</param>
|
||||
/// <param name="options">The options to be used when sending the request.</param>
|
||||
/// <returns>
|
||||
/// A task that represents the asynchronous operation for removing a reaction to this message.
|
||||
/// </returns>
|
||||
/// <seealso cref="IUserMessage.RemoveReactionAsync(IEmote, IUser, RequestOptions)"/>
|
||||
/// <seealso cref="IEmote"/>
|
||||
public static async Task RemoveReactionsAsync(this IUserMessage msg, IUser user, IEmote[] reactions, RequestOptions options = null)
|
||||
{
|
||||
foreach (var rxn in reactions)
|
||||
await msg.RemoveReactionAsync(rxn, user, options).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user