Esempio n. 1
0
        /// <summary>
        /// Performs the initial Slack integration.
        /// </summary>
        public void StartIntegration()
        {
            client = new SlackSocketClient(Token);

            client.Connect((loginResponse) =>
            {
                Connected.Invoke(this, null);
                client.OnMessageReceived += (obj) =>
                {
                    SlackMessageEventArgs e = new SlackMessageEventArgs
                    {
                        Text   = obj.text,
                        Member = new SlackMember(GetUserByName(obj.user))
                    };
                    e.Channel = GetChannelByName(obj.channel) == null ? new SlackChannel(e.Member.Name, obj.channel) : new SlackChannel(GetChannelByName(obj.channel));
                    if (e.Text.Contains($"<@{client.MySelf.id}>"))
                    {
                        MentionReceived?.Invoke(this, e);
                    }
                    else
                    {
                        MessageReceived?.Invoke(this, e);
                    }
                };
            },
                           () =>
            {
                //socket connected
            });
        }
Esempio n. 2
0
 public void StartIntegration()
 {
     Task.Run(() =>
     {
         client.Connected += (sender, e) =>
         {
             Connected?.Invoke(this, null);
         };
         client.SocketClosed += (sender, e) =>
         {
             IConnectionClosedEventArgs args = new DiscordConnectionClosedEventArgs
             {
                 Code   = e.Code,
                 Reason = e.Reason,
                 Clean  = e.WasClean
             };
             ConnectionClosed?.Invoke(this, args);
         };
         client.MessageReceived += (sender, e) =>
         {
             DiscordMessageReceivedEventArgs args = new DiscordMessageReceivedEventArgs
             {
                 Channel = new LuigibotDiscordChannel(e.Channel),
                 Member  = new LuigibotDiscordMember(e.Author),
                 Text    = e.MessageText
             };
             MessageReceived?.Invoke(this, args);
         };
         client.MentionReceived += (sender, e) =>
         {
             DiscordMessageReceivedEventArgs args = new DiscordMessageReceivedEventArgs
             {
                 Channel = new LuigibotDiscordChannel(e.Channel),
                 Member  = new LuigibotDiscordMember(e.Author),
                 Text    = e.MessageText
             };
             MentionReceived?.Invoke(this, args);
         };
         client.SendLoginRequest();
         client.Connect(true /*use the .Net ClientWebSocket vs. WebSocketSharp*/);
     });
 }