コード例 #1
0
 private void SendSpecificEvent <T>(ChatEventPacket eventPacket, EventHandler <T> eventHandler)
 {
     if (eventHandler != null)
     {
         eventHandler(this, JsonConvert.DeserializeObject <T>(eventPacket.data.ToString()));
     }
 }
コード例 #2
0
 private void ConnectEventHandler(object sender, ChatEventPacket e)
 {
     if (e.eventName.Equals("WelcomeEvent"))
     {
         this.connectSuccessful = true;
     }
 }
コード例 #3
0
        private static void HandleChatEvent(BncsPacket obj)
        {
            var packet = new ChatEventPacket(obj.Raw);

            if (packet.Eid != Eid.SHOWUSER)
            {
                Log.Information(packet.RenderText());
            }
        }
コード例 #4
0
        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;
            }
        }
コード例 #5
0
        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();
                }
            }
        }
コード例 #6
0
        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);
                        }
                    }
                }
            }
        }
コード例 #7
0
 private void ChatClient_EventOccurred(object sender, ChatEventPacket e)
 {
     this.eventPackets.Add(e);
 }
コード例 #8
0
ファイル: Program.cs プロジェクト: inrg/D2NG
        private static void HandleChatEvent(BncsPacket obj)
        {
            var packet = new ChatEventPacket(obj.Raw);

            Log.Information(packet.RenderText());
        }