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); } } } } }
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); } } }