/**
         * Creates and sends the map update message type
         * @param str the string that will be udpdated to players text
         * @param player the player to send the update message to
         */
        static void SendUpdateMessage(String str, Player player)
        {
            UpdateChat UC = new UpdateChat();

            UC.message = str;
            MemoryStream stream = UC.WriteData(player.Salt);

            player.Socket.Send(stream.ToArray());
        }
Esempio n. 2
0
 public Form2(ClientTopicsManager client, String pseudo, String password)
 {
     transm.AddReceiveDel(receiveMessage);
     this.client   = client;
     this.pseudo   = pseudo;
     this.password = password;
     this.topic    = "";
     this.Text     = pseudo;
     InitializeComponent();
     textChat   += new UpdateChat(this.showText);
     textTopic  += new UpdateTopic(this.showTopic);
     textMember += new UpdateMember(this.showMember);
     showTopic();
 }
Esempio n. 3
0
        public PostChat UpdateUser(UpdateChat inputData, string apiKey)
        {
            var updateInfo  = JsonConvert.SerializeObject(inputData);
            var httpContent = new StringContent(updateInfo, Encoding.UTF8, "application/json");

            string apiLink = "https://latest-chat.herokuapp.com/api/user/update";

            var response = _client.PostAsync(apiLink, httpContent).Result;
            var data     = response.Content.ReadAsStringAsync().Result;

            var returned = JsonConvert.DeserializeObject <PostChat>(data);

            LoggedIn.Username  = returned.Username;
            LoggedIn.UserId    = returned.UserId;
            LoggedIn.AvatarUrl = inputData.AvatarUrl;
            return(returned);
        }
Esempio n. 4
0
        public void EncodeAndDecode_UpdateChat()
        {
            MessageId  msgId  = new MessageId();
            MessageId  convId = new MessageId();
            UpdateChat msg1   = new UpdateChat()
            {
                MsgId = msgId, ConvId = convId, PlayerID = 7, Message = "New game who dis?"
            };

            byte[] bytes = msg1.Encode();

            UpdateChat msg2 = Message.Decode <UpdateChat>(bytes);

            Assert.IsNotNull(msg2);
            Assert.AreEqual(msg1.MsgId, msg2.MsgId);
            Assert.AreEqual(msg1.ConvId, msg2.ConvId);
            Assert.AreEqual(msg1.PlayerID, msg2.PlayerID);
            Assert.AreEqual(msg1.Message, msg2.Message);
        }
Esempio n. 5
0
        /**
         * Thread responsible for receiving all incoming data from the server
         * @param o form object reference
         */
        private void ClientReceive(Object o)
        {
            MudClient form = (MudClient)o;

            while (form.bConnected == true)
            {
                try
                {
                    byte[] buffer = new byte[4096];
                    int    result;

                    //listen for buffer
                    result = form.clientSocket.Receive(buffer);

                    if (result > 0)
                    {
                        //decode stream
                        Msg m = Msg.DecodeStream(buffer, Salt, ShouldDecrypt);

                        //Get message type and do approriate actiobn
                        if (m != null)
                        {
                            Console.Write("Got a message: ");
                            switch (m.mID)
                            {
                            case DungeonResponse.ID:
                            {
                                DungeonResponse dr = (DungeonResponse)m;

                                form.AddDungeonText(dr.response, true);
                            }
                            break;

                            case MapLayout.ID:
                            {
                                MapLayout ml = (MapLayout)m;
                                DrawQueue.Enqueue(() => ParseMap(ml.mapInfo));

                                break;
                            }

                            case LoginResponse.ID:
                            {
                                LoginResponse lm = (LoginResponse)m;
                                if (lm.loggedIn == "1")
                                {
                                    //Login was successful start decrypting and start main game
                                    loginScreen.LoginResponse(lm.message, true);
                                    ShouldDecrypt = true;
                                }
                                else
                                {
                                    //login failed, show failed message
                                    loginScreen.LoginResponse(lm.message, false);
                                    ShouldDecrypt = false;
                                }
                            }
                            break;

                            case PlayerLocations.ID:
                            {
                                PlayerLocations pl = (PlayerLocations)m;
                                DrawQueue.Enqueue(() => UpdatePlayerLocations(pl.LocationString));
                            }
                            break;

                            case UpdateChat.ID:
                            {
                                UpdateChat uc = (UpdateChat)m;
                                form.AddDungeonText(uc.message, false);
                            }
                            break;

                            case SaltSend.ID:
                            {
                                SaltSend ss = (SaltSend)m;
                                Salt = ss.salt;
                                SendLoginMessage();
                                break;
                            }

                            case SaltRequest.ID:
                            {
                                SaltRequest sr = (SaltRequest)m;
                                SendCreateUserMessage();
                                break;
                            }

                            default:
                                break;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    //If a discconect happens restart the service
                    form.bConnected = false;
                    Console.WriteLine(U.NL("Lost server!") + ex);
                    Application.Restart();
                    Environment.Exit(0);
                }
            }
        }
 public IChatModel Any(UpdateChat request)
 {
     return(workflow.Update(request));
 }
Esempio n. 7
0
 public void on_message_receive_event(string id, string message)
 {
     if (this.txtLog.InvokeRequired)
     {
         UpdateChat d = new UpdateChat(on_message_receive_event);
         this.Invoke(d, new object[] { id, message });
     }
     else
     {
         txtLog.AppendText(Environment.NewLine + id + ": " + message);
         typeBox.Text = "";
         txtLog_AlignTextToBottom();
         txtLog_ScrollToBottom();
     }
     if (_tabIdDict.ContainsKey(id))
     {
         _tabIdDict[id].UpdateChatBox(id, message);
     }
 }
        public IActionResult UpdateUser(UpdateChat inputData, [FromHeader] string apiKey)
        {
            var updated = chatService.UpdateUser(inputData, apiKey);

            return(View("MainPage"));
        }
Esempio n. 9
0
 public void on_message_receive_event(string id, string message)
 {
     if (txtLog.InvokeRequired)
     {
         UpdateChat d = new UpdateChat(on_message_receive_event);
         this.Invoke(d, new object[] { id, message });
     }
     else
     {
         txtLog.AppendText(Environment.NewLine + "Dokter " + id + ": " + message);
         txtLog_AlignTextToBottom();
         txtLog_ScrollToBottom();
     }
 }