private void SendSpecificEvent <T>(ChatEventPacket eventPacket, EventHandler <T> eventHandler) { if (eventHandler != null) { eventHandler(this, JsonConvert.DeserializeObject <T>(eventPacket.data.ToString())); } }
private void ConnectEventHandler(object sender, ChatEventPacket e) { if (e.eventName.Equals("WelcomeEvent")) { this.connectSuccessful = true; } }
private static void HandleChatEvent(BncsPacket obj) { var packet = new ChatEventPacket(obj.Raw); if (packet.Eid != Eid.SHOWUSER) { Log.Information(packet.RenderText()); } }
private void OnEventOccurred(ChatEventPacket eventPacket) { if (this.EventOccurred != null) { this.EventOccurred(this, eventPacket); } switch (eventPacket.eventName) { case "ChatMessage": this.SendSpecificEvent(eventPacket, this.MessageOccurred); break; case "UserJoin": this.SendSpecificEvent(eventPacket, this.UserJoinOccurred); break; case "UserLeave": this.SendSpecificEvent(eventPacket, this.UserLeaveOccurred); break; case "UserUpdate": this.SendSpecificEvent(eventPacket, this.UserUpdateOccurred); break; case "UserTimeout": this.SendSpecificEvent(eventPacket, this.UserTimeoutOccurred); break; case "PollStart": this.SendSpecificEvent(eventPacket, this.PollStartOccurred); break; case "PollEnd": this.SendSpecificEvent(eventPacket, this.PollEndOccurred); break; case "DeleteMessage": this.SendSpecificEvent(eventPacket, this.DeleteMessageOccurred); break; case "PurgeMessage": this.SendSpecificEvent(eventPacket, this.PurgeMessageOccurred); break; case "ClearMessages": if (this.ClearMessagesOccurred != null) { this.ClearMessagesOccurred(this, new EventArgs()); } break; } }
private void HandleChatEvent(Client client, BncsPacket obj) { var packet = new ChatEventPacket(obj.Raw); if (packet.Eid != Eid.SHOWUSER && packet.Eid != Eid.USERFLAGS && !packet.Username.Contains(client.LoggedInUserName())) { Log.Debug(packet.RenderText()); if (packet.Eid == Eid.WHISPER || packet.Eid == Eid.TALK) { SendMessage($"To {client.LoggedInUserName()} :" + packet.RenderText()).Wait(); } } }
private async Task Receive() { await Task.Delay(100); while (this.webSocket != null) { if (this.webSocket.State == WebSocketState.Open) { byte[] buffer = new byte[this.bufferSize]; WebSocketReceiveResult result = await this.webSocket.ReceiveAsync(new ArraySegment <byte>(buffer), CancellationToken.None); if (result != null) { if (result.CloseStatus == null || result.CloseStatus != WebSocketCloseStatus.Empty) { string jsonBuffer = this.encoder.GetString(buffer); ChatPacket packet = JsonConvert.DeserializeObject <ChatPacket>(jsonBuffer); if (packet.type.Equals("reply")) { ChatReplyPacket replyPacket = JsonConvert.DeserializeObject <ChatReplyPacket>(jsonBuffer); this.OnReplyOccurred(replyPacket); } else if (packet.type.Equals("event")) { ChatEventPacket eventPacket = JsonConvert.DeserializeObject <ChatEventPacket>(jsonBuffer); this.OnEventOccurred(eventPacket); } } else { this.OnDisconnectOccurred(result); } } } } }
private void ChatClient_EventOccurred(object sender, ChatEventPacket e) { this.eventPackets.Add(e); }
private static void HandleChatEvent(BncsPacket obj) { var packet = new ChatEventPacket(obj.Raw); Log.Information(packet.RenderText()); }