public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, List <PlayerAndConnection> players, List <AbilityOutline> abilities) { //managerLogger.AddLogMessage("Server", "Recieved new input"); var name = inc.ReadString(); playerAndConnection = players.FirstOrDefault(p => p.Player.Username == name); if (playerAndConnection == null) { managerLogger.AddLogMessage("Server", string.Format("Didn't find player with name {0}", name)); return; } playerAndConnection.Player.XPosition = inc.ReadInt16(); playerAndConnection.Player.YPosition = inc.ReadInt16(); playerAndConnection.Player.Animation.XRecPos = inc.ReadInt16(); playerAndConnection.Player.Animation.YRecPos = inc.ReadInt16(); playerAndConnection.Player.Animation.Height = inc.ReadInt16(); playerAndConnection.Player.Animation.Width = inc.ReadInt16(); playerAndConnection.Player.Health = inc.ReadSByte(); playerAndConnection.Player.IntersectingLava = inc.ReadBoolean(); playerAndConnection.Player.OrbiterRotation = inc.ReadDouble(); var command = new PlayerPositionCommand(); command.Run(managerLogger, server, inc, playerAndConnection, players, abilities); }
public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, List <PlayerAndConnection> players, List <AbilityOutline> abilities) { managerLogger.AddLogMessage("Server", "New connection..."); var data = inc.ReadByte(); if (data == (byte)PacketType.Login) { managerLogger.AddLogMessage("Server", "...connection accepted"); playerAndConnection = CreatePlayer(inc, players); inc.SenderConnection.Approve(); var outmsg = server.NetServer.CreateMessage(); outmsg.Write((byte)PacketType.Login); outmsg.Write(true); outmsg.Write(players.Count); for (int n = 0; n < players.Count; n++) { outmsg.WriteAllProperties(players[n].Player); } server.NetServer.SendMessage(outmsg, inc.SenderConnection, NetDeliveryMethod.ReliableOrdered, 0); var command = new PlayerPositionCommand(); command.Run(managerLogger, server, inc, playerAndConnection, players, abilities); server.SendNewPlayerEvent(playerAndConnection.Player.Username); } else { inc.SenderConnection.Deny("Didn't send correct information."); } }
public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, GameRoom gameRoom) { managerLogger.AddLogMessage("server", "New connection..."); var data = inc.ReadByte(); if (data == (byte)PacketType.Login) { inc.SenderConnection.Approve(); managerLogger.AddLogMessage("server", "..connection accpeted."); playerAndConnection = CreatePlayer(inc, gameRoom.Players, gameRoom.ManagerCamera); var outmsg = server.NetServer.CreateMessage(); outmsg.Write((byte)PacketType.Login); outmsg.Write(gameRoom.Players.Count); for (int n = 0; n < gameRoom.Players.Count; n++) { var p = gameRoom.Players[n]; outmsg.Write(p.Player.Username); outmsg.WriteAllProperties(p.Player.Position); } server.NetServer.SendMessage(outmsg, inc.SenderConnection, NetDeliveryMethod.ReliableOrdered, 0); var command = new PlayerPositionCommand(); command.Run(managerLogger, server, inc, playerAndConnection, gameRoom); server.SendNewPlayerEvent(playerAndConnection.Player.Username, gameRoom.GameRoomId); } else { inc.SenderConnection.Deny("Didn't send correct information."); } }
public void SetPath(string newPath) { DirectoryInfo prevDir = CurrentDirectory; try { if (Path.IsPathRooted(newPath)) { CurrentDirectory = new DirectoryInfo(newPath); UpdateContent(); ManagerLogger.Log("Set_Path", $"{prevDir.FullName} -> {newPath}"); } else { throw new Exception("Incorrect path"); } } catch (Exception e) { ManagerDialogWindows.ErrorMessage(e.Message); ManagerLogger.Log("Set_Path_Failure", $"{e.Message}; Path - {newPath}"); CurrentDirectory = prevDir; } ContentState = State.Default; MainMenu.NullPos(); }
public void Rename(string newName) { try { if (MainMenu.Content.Count > 0 && newName != String.Empty) { if (MainMenu.GetCurrentElement().ToDirectoryInfo().Exists) { newName = Path.Combine(MainMenu.GetCurrentElement().ToDirectoryInfo().Parent.FullName, newName); } else { newName = Path.Combine(MainMenu.GetCurrentElement().ToFileInfo().DirectoryName, newName); } if ((!Directory.Exists(newName)) && (!File.Exists(newName) || FileReplace(newName))) { MainMenu.GetCurrentElement().ToDirectoryInfo().MoveTo(newName); } UpdateContent(); ManagerLogger.Log("Rename", $"{MainMenu.GetCurrentElement()} -> {newName}"); } } catch (Exception e) { ManagerDialogWindows.ErrorMessage(e.Message); ManagerLogger.Log("Rename_Failure", $"{e.Message}; Path - {MainMenu.GetCurrentElement()} -> {newName}"); } }
public void CreateFile(string file) { if (file != String.Empty) { if (ContentState == State.Searched || ContentState == State.History) { MoveOut(); } file = Path.Combine(CurrentDirectory.FullName, file); if (!File.Exists(file) || FileReplace(file)) { try { using (File.Create(file)) { } UpdateContent(); ManagerLogger.Log("Create_File", file); } catch (Exception e) { ManagerDialogWindows.ErrorMessage(e.Message); ManagerLogger.Log("File_Create_Failure", $"{e.Message}; Path - {file}"); } } } }
public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, List <PlayerAndConnection> players, List <AbilityOutline> abilities) { managerLogger.AddLogMessage("Create", "Received ability"); var name = inc.ReadString(); Byte ID = inc.ReadByte(); var ability = CreateAbility(name, ID, inc); abilities.Add(ability); //Send ability to all the clients... var outmsg = server.NetServer.CreateMessage(); outmsg.Write((byte)PacketType.AbilityCreate); outmsg.Write(ability.Username); outmsg.Write(ability.ID); outmsg.Write((byte)ability.Type); outmsg.Write(ability.XPosition); outmsg.Write(ability.YPosition); outmsg.Write(ability.Direction); outmsg.Write(ability.Damage); managerLogger.AddLogMessage("Create", " sending ability to all clients"); server.NetServer.SendToAll(outmsg, NetDeliveryMethod.ReliableOrdered); }
public void Delete() { bool file = true; if (MainMenu.Content.Count > 0) { string name = MainMenu.GetCurrentElement().FullName; try { if (ManagerDialogWindows.Confirmation($"Are you sure, you want delete {MainMenu.GetCurrentElement()}?")) { if (MainMenu.GetCurrentElement().ToDirectoryInfo().Exists) { file = false; MainMenu.GetCurrentElement().ToDirectoryInfo().Delete(true); } else { MainMenu.GetCurrentElement().ToFileInfo().Delete(); } MainMenu.ControllPos(); UpdateContent(); ManagerLogger.Log("Delete", name); } } catch (Exception e) { ManagerDialogWindows.ErrorMessage(e.Message); ManagerLogger.Log($"{(file ? "File" : "Directory")}_Delete_Failure", $"{e.Message}; Path - {name}"); } } }
public void CreateDirectory(string dir) { if (dir != String.Empty) { if (ContentState == State.Searched || ContentState == State.History) { MoveOut(); } dir = Path.Combine(CurrentDirectory.FullName, dir); if (Directory.Exists(dir)) { ManagerDialogWindows.ErrorMessage($"Directory called {dir} already exists"); ManagerLogger.Log("Create_Directory_Failure", $"Directory called {dir} already exists; Path - {dir}"); } else { try { Directory.CreateDirectory(dir); UpdateContent(); ManagerLogger.Log("Create_Directory", dir); } catch (Exception e) { ManagerDialogWindows.Message(e.Message); ManagerLogger.Log("Create_Directory_Failure", $"{e.Message}; Path - {dir}"); } } } }
/// <summary> /// The entry point of the program, where the program control starts and ends. /// </summary> /// <param name="args">The command-line arguments.</param> public static async Task Main(string[] args) { var logger = new ManagerLogger(); using (var host = PrepareHost(args)) { try { await host.RunAsync(); } catch (IOException e) { logger.Error(e.Message, e); logger.Info("Stopping main application."); await host.StopAsync(TimeSpan.FromSeconds(5)); } catch (Exception e) { logger.Error(e.Message, e); } } logger.Info("Application stopped."); }
public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, List <PlayerAndConnection> players, List <AbilityOutline> abilities) { managerLogger.AddLogMessage("Score", "Recieved score"); string name = inc.ReadString(); playerAndConnection = players.FirstOrDefault(p => p.Player.Username == name); if (playerAndConnection == null) { return; } playerAndConnection.Player.Score++; managerLogger.AddLogMessage("Score", "Sending out score"); var outmsg = server.NetServer.CreateMessage(); outmsg.Write((byte)PacketType.Score); outmsg.Write(playerAndConnection.Player.Username); outmsg.Write(playerAndConnection.Player.Score); server.NetServer.SendToAll(outmsg, NetDeliveryMethod.ReliableOrdered); //whenver a player gets score it is a new round meaning that now a new seed should be sent!!! RandomSeedCommand command = new RandomSeedCommand(); command.Run(managerLogger, server, inc, playerAndConnection, players, abilities); }
public MainForm() { _managerLogger = new ManagerLogger(); _managerLogger.NewLogMessageEvent += NewLogMessageEvent; _server = new Server(_managerLogger); _server.NewPlayerEvent += NewPlayerEvent; InitializeComponent(); }
public Form1() { managerLogger = new ManagerLogger(); managerLogger.NewLogMessageEvent += NewLogMessageEvent; server = new Server(managerLogger); server.NewPlayer += NewPlayerEvent; InitializeComponent(); }
public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, GameRoom gameRoom) { managerLogger.AddLogMessage("server", "Received new input"); var key = (Keys)inc.ReadByte(); var name = inc.ReadString(); playerAndConnection = gameRoom.Players.FirstOrDefault(p => p.Player.Username == name); if (playerAndConnection == null) { managerLogger.AddLogMessage("server", string.Format("Could not find player with name {0}", name)); return; } int x = 0; int y = 0; switch (key) { case Keys.Down: y++; break; case Keys.Up: y--; break; case Keys.Left: x--; break; case Keys.Right: x++; break; } var player = playerAndConnection.Player; var position = playerAndConnection.Player.Position; if (!ManagerCollision.CheckCollision(new Rectangle(position.XPosition + x, position.YPosition + y, 100, 50), player.Username, gameRoom.Players.Select(p => p.Player).ToList())) { position.XPosition += x; position.YPosition += y; position.Visible = gameRoom.ManagerCamera.InScreenCheck(new Vector2(position.XPosition, position.YPosition)); if (position.Visible) { var screenPosition = gameRoom.ManagerCamera.WorldToScreenPosition(new Vector2(position.XPosition, position.YPosition)); position.ScreenXPosition = (int)screenPosition.X; position.ScreenYPosition = (int)screenPosition.Y; } var command = new PlayerPositionCommand(); command.Run(managerLogger, server, inc, playerAndConnection, gameRoom); } }
public void Paste() { if (CopyPath == string.Empty) { ManagerDialogWindows.ErrorMessage("Buffer is empty"); } else { if (ContentState == State.Searched || ContentState == State.History) { MoveOut(); } string newPath = Path.Combine(CurrentDirectory.FullName, Path.GetFileName(CopyPath)); try { if (!IsCopy && CurrentDirectory.Root.FullName == Directory.GetDirectoryRoot(CopyPath) && ((!File.Exists(newPath) && !Directory.Exists(newPath)) || (File.Exists(CopyPath) && FileReplace(newPath)))) { Directory.Move(CopyPath, newPath); } else { if (Directory.Exists(CopyPath) && (!Directory.Exists(newPath) || ManagerDialogWindows.Confirmation($"Directory called {Path.GetFileName(CopyPath)} already exists here. Do you want to concatanate folders?"))) { new DirectoryInfo(CopyPath).CopyTo(CurrentDirectory.FullName); } else if (File.Exists(CopyPath) && (!File.Exists(newPath) || FileReplace(newPath))) { File.Copy(CopyPath, newPath); } if (!IsCopy) { if (Directory.Exists(CopyPath)) { Directory.Delete(CopyPath, true); } else { File.Delete(CopyPath); } } } ManagerLogger.Log(IsCopy ? "Copy" : "Move", $"{CopyPath} -> {Directory.GetParent(newPath)}"); UpdateContent(); } catch (Exception e) { ManagerDialogWindows.ErrorMessage(e.Message); ManagerLogger.Log(IsCopy ? "Copy_Failure" : "Move_Failure", $"{e.Message}; Path - {CopyPath} -> {newPath}"); } CopyPath = String.Empty; } }
public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, GameRoom gameRoom) { managerLogger.AddLogMessage("server", string.Format("Kicking {0}", playerAndConnection.Player.Username)); var outmessage = server.NetServer.CreateMessage(); outmessage.Write((byte)PacketType.Kick); outmessage.Write(playerAndConnection.Player.Username); server.NetServer.SendToAll(outmessage, NetDeliveryMethod.ReliableOrdered); //Kick player playerAndConnection.Connection.Disconnect("Bye bye, you're kicked."); }
public Server(ManagerLogger managerLogger) { _managerLogger = managerLogger; _gameRooms = new List <GameRoom>(); _config = new NetPeerConfiguration("networkGame") { Port = 14241 }; _config.EnableMessageType(NetIncomingMessageType.ConnectionApproval); NetServer = new NetServer(_config); }
public GameRoom(string gameRoomId, Server server, ManagerLogger logger) { GameRoomId = gameRoomId; _server = server; Players = new List <PlayerAndConnection>(); Enemies = new List <Enemy>(); _cancellationTokenSource = new CancellationTokenSource(); _task = new Task(Update, _cancellationTokenSource.Token); _task.Start(); _logger = logger; ManagerCamera = new ManagerCamera(); }
public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, GameRoom gameRoom) { if (playerAndConnection != null) { managerLogger.AddLogMessage("server", "Sending out new player position to all in group " + gameRoom.GameRoomId); var outmessage = server.NetServer.CreateMessage(); outmessage.Write((byte)PacketType.PlayerPosition); outmessage.Write(playerAndConnection.Player.Username); outmessage.WriteAllProperties(playerAndConnection.Player.Position); server.NetServer.SendMessage(outmessage, gameRoom.Players.Select(p => p.Connection).ToList(), NetDeliveryMethod.ReliableOrdered, 0); } }
public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, List <PlayerAndConnection> players, List <AbilityOutline> abilities) { int seed = Server.random.Next(1000); var outmsg = server.NetServer.CreateMessage(); outmsg.Write((byte)PacketType.Seed); outmsg.Write(seed); server.NetServer.SendToAll(outmsg, NetDeliveryMethod.ReliableOrdered); server.NetServer.FlushSendQueue(); }
public Server(ManagerLogger managerLogger) { this.managerLogger = managerLogger; players = new List <PlayerAndConnection>(); abilities = new List <AbilityOutline>(); config = new NetPeerConfiguration("networkGame") { Port = 14241 }; config.EnableMessageType(NetIncomingMessageType.ConnectionApproval); NetServer = new NetServer(config); random = new Random(); }
public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, List <PlayerAndConnection> players, List <AbilityOutline> abilities) { managerLogger.AddLogMessage("Update", "Received ability"); var name = inc.ReadString(); Byte ID = inc.ReadByte(); var ability = ReadAbility(inc, abilities, ID, name); if (ability != null) { SendAbility(server, ability, managerLogger); } }
public void History() { MainMenu.Content = ManagerLogger.History().Inverse(); if (MainMenu.Content.Count == 0) { ManagerDialogWindows.ErrorMessage("History is empty"); UpdateContent(); } else { ContentState = State.History; } MainMenu.NullPos(); }
bool FileReplace(string file) { bool conf = ManagerDialogWindows.Confirmation($"File called {file} already exists. Are you sure, you want delete and replace it?"); if (conf) { try { File.Delete(file); } catch (Exception e) { ManagerDialogWindows.ErrorMessage(e.Message); ManagerLogger.Log("File_Delete_Failure", $"{e.Message}; Path - {file}"); } } return(conf); }
public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, GameRoom gameRoom) { managerLogger.AddLogMessage("server", "Sending full player list"); var outmessage = server.NetServer.CreateMessage(); outmessage.Write((byte)PacketType.AllPlayers); outmessage.Write(CameraUpdate); outmessage.Write(gameRoom.Players.Count); foreach (var p in gameRoom.Players) { outmessage.Write(p.Player.Username); outmessage.WriteAllProperties(p.Player.Position); } server.NetServer.SendMessage(outmessage, gameRoom.Players.Select(p => p.Connection).ToList(), NetDeliveryMethod.ReliableOrdered, 0); }
private void SendAbility(Server server, AbilityOutline ability, ManagerLogger managerLogger) { var outmsg = server.NetServer.CreateMessage(); outmsg.Write((byte)PacketType.AbilityUpdate); outmsg.Write(ability.Username); outmsg.Write(ability.ID); outmsg.Write(ability.XPosition); outmsg.Write(ability.YPosition); outmsg.Write(ability.Animation.XRecPos); outmsg.Write(ability.Animation.YRecPos); outmsg.Write(ability.Animation.Width); outmsg.Write(ability.Animation.Height); server.NetServer.SendToAll(outmsg, NetDeliveryMethod.ReliableOrdered); }
public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, List <PlayerAndConnection> players, List <AbilityOutline> abilities) { var outmsg = server.NetServer.CreateMessage(); outmsg.Write((byte)PacketType.PlayerPosition); outmsg.Write(playerAndConnection.Player.Username); outmsg.Write(playerAndConnection.Player.XPosition); outmsg.Write(playerAndConnection.Player.YPosition); outmsg.Write(playerAndConnection.Player.Animation.XRecPos); outmsg.Write(playerAndConnection.Player.Animation.YRecPos); outmsg.Write(playerAndConnection.Player.Animation.Height); outmsg.Write(playerAndConnection.Player.Animation.Width); outmsg.Write(playerAndConnection.Player.Health); outmsg.Write(playerAndConnection.Player.IntersectingLava); outmsg.Write((byte)playerAndConnection.Player.Type); outmsg.Write(playerAndConnection.Player.OrbiterRotation); server.NetServer.SendToAll(outmsg, NetDeliveryMethod.ReliableOrdered); }
public void MoveOut() { DirectoryInfo prevDir = CurrentDirectory; try { if (ContentState == State.Default) { CurrentDirectory = CurrentDirectory.Parent; } ContentState = State.Default; UpdateContent(); MainMenu.NullPos(); ManagerLogger.Log("Move_Out", prevDir.FullName); } catch { ManagerDialogWindows.ErrorMessage("There is no way out"); CurrentDirectory = prevDir; } }
public void MoveIn(Menu menu) { try { if (menu.GetCurrentElement().ToDirectoryInfo().Exists) { DirectoryInfo prevDir = CurrentDirectory; try { CurrentDirectory = menu.GetCurrentElement().ToDirectoryInfo(); ContentState = State.Default; UpdateContent(); MainMenu.NullPos(); ManagerLogger.Log("Move_In", CurrentDirectory.FullName); } catch (Exception e) { CurrentDirectory = prevDir; throw e; } } else { if (FileOpeningPriorities().ContainsKey(menu.GetCurrentElement().Extension)) { System.Diagnostics.Process.Start(FileOpeningPriorities()[menu.GetCurrentElement().Extension], menu.GetCurrentElement().FullName); } else { System.Diagnostics.Process.Start(menu.GetCurrentElement().FullName); } ManagerLogger.Log("Move_In", menu.GetCurrentElement().FullName); } } catch (Exception e) { ManagerDialogWindows.ErrorMessage(e.Message); ManagerLogger.Log("Move_In_Failure", $"{e.Message}; Path - {MainMenu.GetCurrentElement()}"); } }
public void Run(ManagerLogger managerLogger, Server server, NetIncomingMessage inc, PlayerAndConnection playerAndConnection, List <PlayerAndConnection> players, List <AbilityOutline> abilities) { managerLogger.AddLogMessage("Class Change", "Recieved a class change"); string name = inc.ReadString(); var player = players.FirstOrDefault(p => p.Player.Username == name); if (player == null) { managerLogger.AddLogMessage("Class Change", "Didnt find a player associated with that name"); } player.Player.Type = (ClassType)inc.ReadByte(); managerLogger.AddLogMessage("Class Change", "Class type succesfully changed"); var outmsg = server.NetServer.CreateMessage(); outmsg.Write((byte)PacketType.ClassChange); outmsg.Write(name); outmsg.Write((byte)player.Player.Type); server.NetServer.SendToAll(outmsg, NetDeliveryMethod.ReliableOrdered); }