public void HandleMessage(RegisteredGames message) { if (message.GameInfo == null || message.GameInfo.Length == 0 || !message.GameInfo.Where(g => g.gameName == Player.Options.GameName).Any()) { Task.Run(() => { Thread.Sleep((int)Player.Settings.RetryJoinGameInterval); string xmlMessage = XmlMessageConverter.ToXml(new GetGames()); Player.Send(xmlMessage); }); } else { ConsoleDebug.Good("Games available"); if (Player.Options.GameName == null) { ConsoleDebug.Warning("Game name not specified"); return; } if (message.GameInfo.Count(info => info.gameName == Player.Options.GameName) == 1) { string xmlMessage = XmlMessageConverter.ToXml(new JoinGame() { gameName = Player.Options.GameName, playerIdSpecified = false, preferredRole = Player.Options?.PreferredRole == "player" ? PlayerType.member : PlayerType.leader, preferredTeam = Player.Options?.PreferredTeam == "red" ? Common.Schema.TeamColour.red : Common.Schema.TeamColour.blue }); Player.Send(xmlMessage); } } }
public void BullshitParseTest() { string xml = "sadasdsad"; var obj = XmlMessageConverter.ToObject(xml); Assert.IsNull(obj); }
public void GameSerDeserTest() { Game g = new Game(); g.Board = new GameBoard() { goalsHeight = 10, tasksHeight = 4, width = 5 }; g.PlayerLocation = new Location() { x = 10, y = 10 }; g.Players = new Player[] { new Player() { id = 4, team = TeamColour.blue, type = PlayerType.leader } }; var s1 = XmlMessageConverter.ToXml(g); var s2 = XmlMessageConverter.ToXml(XmlMessageConverter.ToObject(s1)); Assert.AreEqual(s1, s2); }
public static void HandleMessage(RegisterGame request, CommunicationServer server, Socket handler) { if (request == null) { return; } Game.Game g; lock (joinLock) { g = new Game.Game(gameId: server.RegisteredGames.NextGameId(), name: request.NewGameInfo.gameName, bluePlayers: request.NewGameInfo.blueTeamPlayers, redPlayers: request.NewGameInfo.redTeamPlayers, gameMaster: handler ); try { server.RegisteredGames.RegisterGame(g); } catch { return; } } ConfirmGameRegistration gameRegistration = new ConfirmGameRegistration() { gameId = (ulong)g.Id }; var response = XmlMessageConverter.ToXml(gameRegistration); server.ConnectionEndpoint.SendFromServer(handler, response); }
private void OnMessage(object sender, MessageRecieveEventArgs eventArgs) { var address = eventArgs.Handler.GetRemoteAddress(); if (address != null) { Console.WriteLine("New message from {0}: {1}", address, eventArgs.Message); } try { if (eventArgs.Message.Length == 0) //ETB keep alive packet { //send keep alive back ConnectionEndpoint.SendFromServer(eventArgs.Handler, String.Empty); } else { BehaviorChooser.HandleMessage((dynamic)XmlMessageConverter.ToObject(eventArgs.Message), this, eventArgs.Handler); } } catch (Exception e) { ConsoleDebug.Error(e.Message); } //ConnectionEndpoint.SendFromServer(eventArgs.Handler, eventArgs.Message); }
public void Move(MoveType direction) { if (previousLocation != null && game.Location != null && game.Location.x == previousLocation.x && game.Location.y == previousLocation.y) { ConsoleDebug.Error("Snake time! ====================================="); //if (direction==MoveType.up) // direction=MoveType.right; //else if (direction == MoveType.right) // direction = MoveType.down; //else if (direction == MoveType.down) // direction = MoveType.left; //else // direction = MoveType.up; direction = RandomMoveType(); } previousLocation = new Common.Schema.Location() { x = game.Location.x, y = game.Location.y }; Move m = new Move() { direction = direction, directionSpecified = true, gameId = game.GameId, playerGuid = game.Guid }; Send(XmlMessageConverter.ToXml(m)); }
public void GameTest() { Game message = new Game(); message.playerId = 0; message.PlayerLocation = new Location() { x = 3 }; message.Board = new GameBoard() { width = 10 }; Player[] playerTab = new Player[3]; playerTab[0] = new Player() { id = 1 }; message.Players = playerTab; string xml = XmlMessageConverter.ToXml(message); Game result = (Game)XmlMessageConverter.ToObject(xml); Assert.AreEqual((ulong)0, result.playerId); Assert.AreEqual((uint)3, result.PlayerLocation.x); Assert.AreEqual((uint)10, result.Board.width); Assert.AreEqual((ulong)1, result.Players[0].id); }
private void InformGameMasterAboutDisconnectedPlayer(Socket gameMasterSocket, ulong playerId) { var msg = new PlayerDisconnected { playerId = playerId }; ConnectionEndpoint.SendFromServer(gameMasterSocket, XmlMessageConverter.ToXml(msg)); }
public void ConvertToXmlTest() { Move msg = new Move(); msg.direction = MoveType.down; string xmlString = XmlMessageConverter.ToXml(msg); Console.WriteLine(xmlString); }
public void HandleMessage(RejectJoiningGame message) { if (message == null) return; //try to connect again Player.Send(XmlMessageConverter.ToXml(new GetGames())); return; }
public void Test() { TestPiece t = new TestPiece() { gameId = game.GameId, playerGuid = game.Guid }; Send(XmlMessageConverter.ToXml(t)); }
public void PickUpPiece() { Common.Schema.PickUpPiece p = new PickUpPiece() { playerGuid = game.Guid, gameId = game.GameId }; Send(XmlMessageConverter.ToXml(p)); }
public void Discover() { Common.Schema.Discover d = new Discover() { gameId = game.GameId, playerGuid = game.Guid }; Send(XmlMessageConverter.ToXml(d)); }
public void PlacePiece() { Common.Schema.PlacePiece p = new PlacePiece() { gameId = game.GameId, playerGuid = game.Guid }; Send(XmlMessageConverter.ToXml(p)); game.Pieces.Remove(CarriedPiece); }
private void OnMessageReceive(object sender, MessageRecieveEventArgs eventArgs) { var socket = eventArgs.Handler as Socket; if (eventArgs.Message.Length > 0) //the message is not the keepalive packet { ConsoleDebug.Message("New message from: " + socket.GetRemoteAddress() + "\n" + eventArgs.Message); messageHandler.HandleMessage((dynamic)XmlMessageConverter.ToObject(eventArgs.Message)); } }
public void NotExistigMessageType() { string xml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n" + "<ConfirmasdasdGameRegistration\r\n" + "xmlns=\"http://theprojectgame.mini.pw.edu.pl/\"\r\n" + "/>"; var obj = XmlMessageConverter.ToObject(xml); Assert.IsNull(obj); }
public void WrongMoveMessageTest() { string xmlNoGameId = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n" + "<ConfirmGameRegistration\r\n" + "xmlns=\"https://se2.mini.pw.edu.pl/17-results/\"\r\n" + "/>"; var obj = XmlMessageConverter.ToObject(xmlNoGameId); Assert.IsNull(obj); }
public void BrokenXmlTest() { string xmlNoGameId = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n" + "<ConfirmGameRegistration\r\n" + "xmlns=\"http://theprojectgame.mini.pw.edu.pl/\"\r\n" + "/"; var obj = XmlMessageConverter.ToObject(xmlNoGameId); Assert.IsNull(obj); }
public void RejectKnowledgeExchangeTest() { RejectKnowledgeExchange message = new RejectKnowledgeExchange(); message.permanent = false; string xml = XmlMessageConverter.ToXml(message); RejectKnowledgeExchange result = (RejectKnowledgeExchange)XmlMessageConverter.ToObject(xml); Assert.AreEqual(false, result.permanent); }
public static void HandleMessage(PlayerMessage request, CommunicationServer server, Socket handler) { if (request == null) { return; } var response = XmlMessageConverter.ToXml(request); server.ConnectionEndpoint.SendFromServer(server.Clients[request.playerId], response); }
public static void HandleMessage(GameMessage request, CommunicationServer server, Socket handler) { if (request == null) { return; } var response = XmlMessageConverter.ToXml(request); server.ConnectionEndpoint.SendFromServer(server.RegisteredGames.GetGameById((int)request.gameId).GameMaster, response); }
public void PlayerMessageTest() { PlayerMessage message = new PlayerMessage(); message.playerId = 1; string xml = XmlMessageConverter.ToXml(message); PlayerMessage result = (PlayerMessage)XmlMessageConverter.ToObject(xml); Assert.AreEqual((ulong)1, result.playerId); }
public void ConfirmGameRegistrationTest() { ConfirmGameRegistration confirmGameRegistration = new ConfirmGameRegistration(); confirmGameRegistration.gameId = 4; string xml = XmlMessageConverter.ToXml(confirmGameRegistration); ConfirmGameRegistration result = (ConfirmGameRegistration)XmlMessageConverter.ToObject(xml); Assert.AreEqual((ulong)4, result.gameId); }
public void AuthorizeKnowledgeExchangeTest() { AuthorizeKnowledgeExchange message = new AuthorizeKnowledgeExchange(); message.withPlayerId = 4; message.playerGuid = "c094cab7-da7b-457f-89e5-a5c51756035f"; string xml = XmlMessageConverter.ToXml(message); AuthorizeKnowledgeExchange result = (AuthorizeKnowledgeExchange)XmlMessageConverter.ToObject(xml); Assert.AreEqual((ulong)4, result.withPlayerId); }
private void OnConnection(object sender, ConnectEventArgs eventArgs) { var address = eventArgs.Handler.GetRemoteAddress(); ConsoleDebug.Ordinary("Successful connection with address " + address.ToString()); var socket = eventArgs.Handler as Socket; serverSocket = socket; string xmlMessage = XmlMessageConverter.ToXml(new GetGames()); connection.SendFromClient(socket, xmlMessage); //start sending keep alive bytes startKeepAlive(socket); }
public void BehavTest() { //var m = new MockEndpoint(); //CommunicationServer sv = new CommunicationServer(m); ((MockEndpoint)MockServer.ConnectionEndpoint).Receive(XmlMessageConverter.ToXml(new RegisterGame() { NewGameInfo = new GameInfo() { blueTeamPlayers = 4, gameName = "dasd", redTeamPlayers = 2 } })); }
public void MoveSerDeserTest() { Move msg = new Move(); msg.direction = MoveType.down; msg.directionSpecified = true; msg.gameId = 21321; msg.playerGuid = "c094cab7-da7b-457f-89e5-a5c51756035f"; var s1 = XmlMessageConverter.ToXml(msg); var s2 = XmlMessageConverter.ToXml(XmlMessageConverter.ToObject(s1)); Assert.AreEqual(s1, s2); }
public void LocationTest() { Location message = new Location(); message.x = 3; message.y = 4; string xml = XmlMessageConverter.ToXml(message); Location result = (Location)XmlMessageConverter.ToObject(xml); Assert.AreEqual((uint)3, result.x); Assert.AreEqual((uint)4, result.y); }
public void GoalFieldTest() { GoalField message = new GoalField(); message.type = GoalFieldType.goal; message.team = TeamColour.red; string xml = XmlMessageConverter.ToXml(message); GoalField result = (GoalField)XmlMessageConverter.ToObject(xml); Assert.AreEqual(GoalFieldType.goal, result.type); Assert.AreEqual(TeamColour.red, result.team); }
public void MoveTest() { Move message = new Move(); message.direction = MoveType.down; message.playerGuid = "c094cab7-da7b-457f-89e5-a5c51756035f"; message.directionSpecified = true; string xml = XmlMessageConverter.ToXml(message); Move result = (Move)XmlMessageConverter.ToObject(xml); Assert.AreEqual(MoveType.down, result.direction); Assert.AreEqual(true, result.directionSpecified); }