Exemplo n.º 1
0
        private void Client_MessageReceived(object sender, MessageReceivedEventArgs e)
        {
            using (Message message = e.GetMessage() as Message)
            {
                if (isConnected())
                {
                    if (message.Tag == Tags.JoinWorldMessage)
                    {
                        using (DarkRiftReader reader = message.GetReader())
                        {
                            JoinWorldClientDTO data = reader.ReadSerializable <JoinWorldClientDTO>();
                            MurmurServer.MoveClientToWorldChannel(e.Client, data.WorldName); //Creates a channel for this world if it not already exists
                        }
                    }

                    if (message.Tag == Tags.CreateWorldMessage)
                    {
                        using (DarkRiftReader reader = message.GetReader())
                        {
                            CreateWorldClientDTO data = reader.ReadSerializable <CreateWorldClientDTO>();
                            MurmurServer.CreateChannelForWorld(data.WorldName);
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        public void OnCreateWorld(object sender, MessageReceivedEventArgs e)
        {
            using (Message message = e.GetMessage() as Message)
            {
                CreateWorldClientDTO data = message.GetReader().ReadSerializable <CreateWorldClientDTO>();
                using (DarkRiftWriter responseWriter = DarkRiftWriter.Create())
                {
                    CreateWorldServerDTO response = new CreateWorldServerDTO();
                    if (GetWorldByName(data.WorldName) == null)
                    {
                        WorldData NewWorld = new WorldData(data.WorldName, data.SceneEntityID, data.SceneName);
                        this.Worlds.Add(NewWorld);

                        response.Success = true;
                        response.Message = $"{data.WorldName} Created";
                        Console.WriteLine(response.Message);
                    }
                    else
                    {
                        response.Success = false;
                        response.Message = $"{data.WorldName} already exists";
                        Console.WriteLine(response.Message);
                    }


                    responseWriter.Write(response);
                    using (Message responseMessage = Message.Create(Tags.CreateWorldMessage, responseWriter))
                        e.Client.SendMessage(responseMessage, SendMode.Reliable);
                }
            }
        }