Inheritance: System.EventArgs
示例#1
0
文件: Core.cs 项目: wrusse3/gswat
 /// <summary>
 /// Process a received message
 /// Triggered by CommHandler object
 /// </summary>
 /// <param name="msg">ChatMessage to process</param>
 public void MessageHandler(object sender, ChatEventArgs e)
 {
     if (e != null)
     {
         MessageQueue.Enqueue(e.ServerMessage);
     }
 }
示例#2
0
 // Implements ICommLayer
 public void NotifyCommHandler(object sender, ChatEventArgs e)
 {
     if (CommHandler != null)
     {
         CommHandler(this, e);
     }
 }
示例#3
0
 public void NotifyCore(object sender, ChatEventArgs e)
 {
     if (CoreListener != null)
     {
         CoreListener(this, e);
     }
 }
示例#4
0
文件: Core.cs 项目: jpere/gswat
 /// <summary>
 ///     Process a received message
 ///     Triggered by CommHandler object
 /// </summary>
 /// <param name="sender">Object that sent the event</param>
 /// <param name="e">ChatEventArgs object containing the ChatMessage</param>
 private void MessageHandler(object sender, ChatEventArgs e)
 {
     if (e != null)
     {
         _messageQueue.Enqueue(e.ServerMessage);
         if (_messageQueue.Count > 10)
         {
             _messageQueue.Dequeue();
         }
         TableOperation insertOp = TableOperation.Insert(e.ServerMessage);
         _messageTable.Execute(insertOp);
     }
 }
示例#5
0
        private void RConnPacketHandler(Packet args)
        {
            if (args.IsRequest)
            {
                var formattedPacket = RecognizedPacket.FormatRequestPacket(args);

                if (MessageEvents.ContainsKey(args.FirstWord) && MessageEvents[args.FirstWord] != null)
                {
                    MessageEvents[args.FirstWord](this, formattedPacket);
                }
            }
            else if(args.IsResponse && RequestCallbacks.ContainsKey(args.SequenceNumber))
            {
                Packet request = RequestPackets[args.SequenceNumber];
                RequestCallbacks[args.SequenceNumber](this, RecognizedPacket.FormatResponsePacket(request, args));
            }

            //Version .1 we only want player.onChat, admin.say, and admin.yell
            if (OnChat.IsOnChat(args))
            {
                var chat = new OnChat(args);
                var message = new ChatMessage
                    {
                        MessageTimeStamp = DateTime.UtcNow,
                        Text = chat.Text,
                        Speaker = chat.SoldierName,
                        MessageType = chat.TargetPlayers.ToString()
                    };

                var chatArgs = new ChatEventArgs(message);
                CommHandler(this, chatArgs);
            }
        }
示例#6
0
 public void NotifyCommHandler(object sender, ChatEventArgs e)
 {
     throw new NotImplementedException();
 }
示例#7
0
        // Implements ICore
        public void MessageHandler(object sender, ChatEventArgs e)
        {
            // Filter for server messages here - do not want the spam
            if (e != null)
            {
                if (e.ServerMessage.Speaker == "Server")
                {
                    if (ServerMessages.ContainsKey(e.ServerMessage.Text))
                    {
                        var lastShown = ServerMessages[e.ServerMessage.Text];
                        var now = DateTime.UtcNow;
                        var ts = now - lastShown;
                        double diff = ts.TotalMinutes;
                        if (diff > 30)
                        {
                            // Message needs to be displayed again
                            EnqueueMessage(e.ServerMessage);

                            // Timestamp in Dictionary also needs to be updated
                            ServerMessages[e.ServerMessage.Text] = now;
                        }
                    }
                    else
                    {
                        // Message needs to be displayed, as it has not been seen
                        EnqueueMessage(e.ServerMessage);

                        // Also need to add it to the Dictionary
                        var now = DateTime.UtcNow;
                        ServerMessages.Add(e.ServerMessage.Text, now);
                    }
                }
                else
                {
                    EnqueueMessage(e.ServerMessage);
                }
            }
        }
示例#8
0
文件: Core.cs 项目: ratdart/gswat
 // Implements ICore
 public void MessageHandler(object sender, ChatEventArgs e)
 {
     // Filter for server messages here - do not want the spam
     if (e != null && e.ServerMessage.Speaker != "Server")
     {
         MessageQueue.Enqueue(e.ServerMessage);
         if (MessageQueue.Count > 25)
         {
             MessageQueue.Dequeue();
         }
         TableOperation insertOp = TableOperation.Insert(e.ServerMessage);
         MessageTable.Execute(insertOp);
     }
 }