|
|
@@ -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); |
|
|
|
} |
|
|
|
} |
|
|
|
} |