Пример #1
0
        private async void ExecuteAsync()
        {
            try
            {
                ChatMessageDetails details = await Task.Factory.StartNew(() => JsonConvert.DeserializeObject <ChatMessageDetails>(_rawText.Substring(_keyWord.Length)));

                if (details == null)
                {
                    throw new Exception($"cannot deserialize JSON element [{_rawText.Substring(_keyWord.Length)}]");
                }

                if (details.IsPrivate)
                {
                    _chat.UpdatePrivateChat(details.Message, details.From, details.To);
                }
                else
                {
                    _chat.UpdateGlobalChat(details.Message, details.From);
                }
            }
            catch (Exception exception)
            {
                _chat.UpdateLog($"Cannot execute chat message command: {exception.Message}");
            }
        }
Пример #2
0
        public void AddMessage(int charId, ChatMessageDetails msgDetails)
        {
            if (charId < 0 || msgDetails == null)
            {
                return;
            }

            lock (_chatMsgLock)
            {
                Tuple <int, ChatMessageDetails> newData = Tuple.Create(charId, msgDetails);
                _charIdMsgList.Add(newData);
            }
        }
Пример #3
0
        private async void ExecuteAsync(PlayerDetails playerDetails)
        {
            try
            {
                string             text    = _rawText;
                ChatMessageDetails details = await Task.Factory.StartNew(() => JsonConvert.DeserializeObject <ChatMessageDetails>(text.Substring(_keyWord.Length)));

                if (details == null)
                {
                    throw new Exception($"cannot deserialize JSON element [{text.Substring(_keyWord.Length)}]");
                }

                _chatHandler.AddMessage(playerDetails.CharId, details);
            }
            catch (Exception exception)
            {
                _logger.UpdateLog($"Cannot execute chat command: {exception.Message}");
            }
        }
Пример #4
0
        public void AddCommandElements()
        {
            try
            {
                string to      = "";
                string message = _rawText;

                int cutIndex = -1;

                if (_rawText.Length >= 2 && _rawText.Substring(0, 2).Equals("/\"", StringComparison.InvariantCultureIgnoreCase))
                {
                    string cutSection = _rawText.Substring(2);
                    cutIndex = cutSection.IndexOf('"');

                    if (cutIndex > -1)
                    {
                        to      = cutSection.Substring(0, cutIndex);
                        message = cutSection.Substring(cutIndex + 1);
                    }
                }

                if (message.Length >= 1 && message[0] == ' ')
                {
                    message = message.Substring(1);
                }

                ChatMessageDetails details = new ChatMessageDetails()
                {
                    IsPrivate = !String.IsNullOrWhiteSpace(to),
                    From      = "",
                    To        = to,
                    Message   = message
                };

                _commandDetails.CommandElementList.Add(JsonConvert.SerializeObject(details));
            }
            catch (Exception exception)
            {
                MainGameHandler.ShowMessageBox($"Message building error: {exception.Message}");
            }
        }
Пример #5
0
 public ChatMessageCmdBuilder(ChatMessageDetails details)
 {
     _details = details;
 }