private void HandleReaction(MessageReactionAddEvent reaction) { _ = Task.Run(async() => { var currentUser = await Client.Rest.GetCurrentUserAsync(); if (reaction.UserId == currentUser.Id) { return; } if (!(_callbacks.TryGetValue(reaction.MessageId.RawValue, out var callback))) { return; } if (!(await callback.Criterion.JudgeAsync(callback.Context, reaction.Emoji) .ConfigureAwait(false))) { return; } if (await callback.HandleCallbackAsync(reaction.Emoji).ConfigureAwait(false)) { RemoveReactionCallback(reaction.MessageId); } }); }
public void Enrich(Scope scope, int shardId, MessageReactionAddEvent evt) { scope.AddBreadcrumb("", "event.reaction", data: new Dictionary <string, string> { { "user", evt.UserId.ToString() }, { "channel", evt.ChannelId.ToString() }, { "guild", (evt.GuildId ?? 0).ToString() }, { "message", evt.MessageId.ToString() }, { "reaction", evt.Emoji.Name } }); scope.SetTag("shard", shardId.ToString()); }
public static string JumpLink(this MessageReactionAddEvent msg) => $"https://discord.com/channels/{msg.GuildId}/{msg.ChannelId}/{msg.MessageId}";