Exemple #1
0
 private async Task DiscordShardedClientOnReactionRemoved(Cacheable <IUserMessage, ulong> arg1, ISocketMessageChannel arg2, SocketReaction arg3)
 {
     if (ReactionRemoved != null)
     {
         await ReactionRemoved.Invoke(this, arg1, arg2, arg3).ConfigureAwait(false);
     }
 }
 /// <summary>
 /// Constructs a new <see cref="BaseSocketClientAbstraction"/> around an existing <see cref="WebSocket.BaseSocketClient"/>.
 /// </summary>
 /// <param name="baseSocketClient">The value to use for <see cref="WebSocket.BaseSocketClient"/>.</param>
 /// <exception cref="ArgumentNullException">Throws for <paramref name="baseSocketClient"/>.</exception>
 protected BaseSocketClientAbstraction(BaseSocketClient baseSocketClient)
     : base(baseSocketClient)
 {
     baseSocketClient.ChannelCreated         += x => ChannelCreated?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.ChannelDestroyed       += x => ChannelDestroyed?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.ChannelUpdated         += (x, y) => ChannelUpdated?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.CurrentUserUpdated     += (x, y) => CurrentUserUpdated?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.GuildAvailable         += x => GuildAvailable?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.GuildMembersDownloaded += x => GuildMembersDownloaded?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.GuildMemberUpdated     += (x, y) => GuildMemberUpdated?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.GuildUnavailable       += x => GuildUnavailable?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.GuildUpdated           += (x, y) => GuildUpdated?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.JoinedGuild            += x => JoinedGuild?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.LeftGuild             += x => LeftGuild?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.MessageReceived       += x => MessageReceived?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.MessageUpdated        += (x, y, z) => MessageUpdated?.InvokeAsync(x.Abstract(), y.Abstract(), z.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.MessageDeleted        += (x, y) => MessageDeleted?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.ReactionAdded         += (x, y, z) => ReactionAdded?.InvokeAsync(x.Abstract(), y.Abstract(), z.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.ReactionRemoved       += (x, y, z) => ReactionRemoved?.InvokeAsync(x.Abstract(), y.Abstract(), z.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.ReactionsCleared      += (x, y) => ReactionsCleared?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.RecipientAdded        += x => RecipientAdded?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.RecipientRemoved      += x => RecipientRemoved?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.RoleCreated           += x => RoleCreated?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.RoleDeleted           += x => RoleDeleted?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.RoleUpdated           += (x, y) => RoleUpdated?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.UserBanned            += (x, y) => UserBanned?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.UserIsTyping          += (x, y) => UserIsTyping?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.UserJoined            += x => UserJoined?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.UserLeft              += x => UserLeft?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.UserUnbanned          += (x, y) => UserUnbanned?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.UserUpdated           += (x, y) => UserUpdated?.InvokeAsync(x.Abstract(), y.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.UserVoiceStateUpdated += (x, y, z) => UserVoiceStateUpdated?.InvokeAsync(x.Abstract(), y.Abstract(), z.Abstract()) ?? Task.CompletedTask;
     baseSocketClient.VoiceServerUpdated    += x => VoiceServerUpdated?.InvokeAsync(x.Abstract()) ?? Task.CompletedTask;
 }
Exemple #3
0
        private void Socket_DataReceived(object sender, dynamic data)
        {
            var type = data.Value <string>("type");

            switch (type)//todo more from https://api.slack.com/rtm
            {
            case "message":
            case "message.channels":
            case "message.groups":
            case "message.im":
            case "message.mpim":
                MessageReceived?.Invoke(this, new MessageReceivedEventArgs(MakeMessageFromData(data)));
                break;

            case "reaction_added":
                ReactionAdded?.Invoke(this, GetReactionAddedEventArgs(data));
                break;

            case "reaction_removed":
                ReactionRemoved?.Invoke(this, GetReactionAddedEventArgs(data));
                break;

            case "star_added":
                StarAdded?.Invoke(this, GetReactionAddedEventArgs(data));
                break;

            case "star_removed":
                StarRemoved?.Invoke(this, GetReactionAddedEventArgs(data));
                break;

            case "pin_added":
                PinAdded?.Invoke(this, GetReactionAddedEventArgs(data));
                break;

            case "pin_removed":
                PinRemoved?.Invoke(this, GetReactionAddedEventArgs(data));
                break;

            case "team_join":
                UserJoined?.Invoke(this, new UserDataReceivedEventArgs(Team.Users.FirstOrDefault(x => x.Id == data.Value <string>("user")), null, Team));
                break;

            case "user_typing":
                UserTyping?.Invoke(this, new UserDataReceivedEventArgs(Team.Users.FirstOrDefault(x => x.Id == data.Value <string>("user")),
                                                                       Team.Channels.FirstOrDefault(x => x.Id == data.Value <string>("channel")), Team));
                break;

            case "presence_change":
                UserPresenceChanged?.Invoke(this, new UserPresenceChangeEventArgs(data.Value <string>("presence"),
                                                                                  Team.Users.FirstOrDefault(x => x.Id == data.Value <string>("user"))));
                break;
            }
        }
Exemple #4
0
 internal async Task OnReactionRemoved(Cacheable <IUserMessage, ulong> message, ISocketMessageChannel channel, SocketReaction reaction) => await(ReactionRemoved?.Invoke(message, channel, reaction) ?? Task.CompletedTask);
Exemple #5
0
 public Task Handle(ReactionRemoved notification, CancellationToken cancellationToken)
 => HandleReaction(notification.Message, notification.Reaction);
Exemple #6
0
 private Task ReactionRemovedAsync(Cacheable <IUserMessage, ulong> before, ISocketMessageChannel channel, SocketReaction reaction)
 {
     ReactionRemoved?.Invoke(reaction);
     return(Task.CompletedTask);
 }
Exemple #7
0
 private async Task ReactionRemovedAsync(Cacheable <IUserMessage, ulong> before, ISocketMessageChannel channel, SocketReaction reaction)
 {
     ReactionRemoved?.Invoke(reaction);
 }
Exemple #8
0
 public Task Handle(ReactionRemoved notification, CancellationToken cancellationToken)
 => ModifyRatings(notification.Message, notification.Reaction, ReactionState.Removed);