예제 #1
0
        public void Handle(DirectMessageReceived message)
        {
            var link = this.directMessageGroup.Links.OfType <DirectMessageLink>().FirstOrDefault(l => l.Username == message.From);

            if (link == null)
            {
                String uri = String.Format("/directmessage?username={0}", message.From);
                link = new DirectMessageLink {
                    Username = message.From, Source = new Uri(uri, UriKind.RelativeOrAbsolute)
                };
                this.directMessageGroup.Links.Add(link);
            }
        }
예제 #2
0
        internal void RaiseDirectMessage(DirectMessageMessage msg)
        {
            if (DirectMessageReceived == null)
            {
                return;
            }
            var s = DirectMessageReceived.GetInvocationList().Select(p => p as Action <DirectMessageMessage>);

            foreach (var i in s.Where(p => p != null))
            {
                try
                {
                    i(msg);
                }
                catch (Exception e)
                {
                    Instance.LogError("ダイレクトメッセージ受信時イベントでエラーが発生しました\n" + e.Message);
                    Instance.SaveLog();
                }
            }
        }
예제 #3
0
        public void HandleChatMessage(NetworkMessage msg)
        {
            MsgMessage t = msg as MsgMessage;

            ChatMessage chat = new ChatMessage();

            chat.From     = t.From;
            chat.To       = t.To;
            chat.IsAction = t.MessageType == MsgMessage.MessageTypes.ActionMessage;
            chat.Message  = t.MessageText;
            GlobalChatLog.Add(chat);

            if (!UserLogs.ContainsKey(chat.From))
            {
                UserLogs.Add(chat.From, new UserChatLog());
            }

            UserLogs[chat.From].Messages.Add(chat);

            ChatMessageEventArgs args = new ChatMessageEventArgs(chat);

            if (chat.To == LocalPlayerID && DirectMessageReceived != null)
            {
                DirectMessageReceived.Invoke(this, args);
            }

            if (chat.To == LocalTeam && TeamMessageReceived != null)
            {
                TeamMessageReceived.Invoke(this, args);
            }

            if (ChatMessageReceived != null)
            {
                ChatMessageReceived.Invoke(this, args);
            }
        }