void netMgr_MessageArrived(object sender, IncomingNetworkMessageArgs e) { //Make sure we reset the position - we might recieve this message after the gamestates. if (e.Message.Position > 0) e.Message.Position = 0; if (e.Message.MessageType == NetIncomingMessageType.Data && (NetMessage)e.Message.PeekByte() == NetMessage.ConsoleCommandReply) { e.Message.ReadByte(); AddLine("Server: " + e.Message.ReadString(), Color.RoyalBlue); } //Again, make sure we reset the position - we might get it before the gamestate and then that would break. e.Message.Position = 0; }
private void NetworkManagerMessageArrived(object sender, IncomingNetworkMessageArgs args) { NetIncomingMessage message = args.Message; switch (message.MessageType) { case NetIncomingMessageType.StatusChanged: var statMsg = (NetConnectionStatus)message.ReadByte(); if (statMsg == NetConnectionStatus.Disconnected) { string disconnectMessage = message.ReadString(); UserInterfaceManager.AddComponent(new DisconnectedScreenBlocker(StateManager, UserInterfaceManager, ResourceManager, disconnectMessage)); } break; case NetIncomingMessageType.Data: var messageType = (NetMessage)message.ReadByte(); switch (messageType) { case NetMessage.LobbyChat: string text = message.ReadString(); //AddChat(text); break; case NetMessage.PlayerList: HandlePlayerList(message); break; case NetMessage.WelcomeMessage: HandleWelcomeMessage(message); break; case NetMessage.ChatMessage: HandleChatMessage(message); break; case NetMessage.JobList: HandleJobList(message); break; case NetMessage.JobSelected: //HandleJobSelected(message); THIS IS THE ACK FROM THE SERVER FOR JOB SELECTION TODO STILL NEEDED? break; case NetMessage.JoinGame: HandleJoinGame(); break; } break; } }