public void Connect() { var wc = new WebClient(); var job = JObject.Parse(wc.DownloadString("https://slack.com/api/rtm.start?token=" + Uri.EscapeUriString(Token))); if (!job["ok"].Value <bool>()) { Console.WriteLine("couldNt connect"); return; } var wsurl = job["url"].Value <string>(); var ws = new WebSocket(wsurl); string id = job["self"]["id"].Value <string>(); User = id; ws.OnOpen += (sender, e) => { }; ws.OnMessage += (sender, e) => { Console.WriteLine(e.Data); var json = JObject.Parse(e.Data); var a = json["type"].Value <string>(); switch (a) { case "message": { var text = JsonConvert.DeserializeObject <RTM.Message>(e.Data); if (text.user == null || text.user == id || text.subtype == "bot_message") { break; } if (text.text.IndexOf(":") != -1) { Task.Run(() => { ProcessCommand(text)?.Post(); }); } } break; case "reaction_removed": case "reaction_added": { OnReaction?.Invoke(this, JsonConvert.DeserializeObject <RTM.Reaction>(e.Data)); } break; } }; ws.OnError += (sender, e) => { }; ws.OnClose += (sender, e) => { }; ws.Connect(); }
public void RaiseOnReactionReceived() { OnReaction?.Invoke(null); }