From be2074b4f00983489cbb33e69394e4a147686af5 Mon Sep 17 00:00:00 2001 From: juanjp600 Date: Thu, 22 Jun 2017 19:51:19 -0300 Subject: [PATCH] Added some convenient console commands --- BarotraumaServer/Source/DebugConsole.cs | 24 ++++++++++++ BarotraumaServer/Source/GameMain.cs | 39 ++++++++++++++----- BarotraumaServer/Source/Program.cs | 5 ++- BarotraumaShared/Source/DebugConsole.cs | 31 +++++++++++---- .../Source/Networking/GameServer.cs | 9 ++++- BarotraumaShared/Source/Screens/Screen.cs | 5 +++ 6 files changed, 93 insertions(+), 20 deletions(-) diff --git a/BarotraumaServer/Source/DebugConsole.cs b/BarotraumaServer/Source/DebugConsole.cs index 4bca6e98e..b61ec7df7 100644 --- a/BarotraumaServer/Source/DebugConsole.cs +++ b/BarotraumaServer/Source/DebugConsole.cs @@ -31,6 +31,30 @@ namespace Barotrauma { switch (commands[0].ToLower()) { + case "restart": + case "reset": + DebugConsole.NewMessage("*****************", Color.Lime); + DebugConsole.NewMessage("RESTARTING SERVER", Color.Lime); + DebugConsole.NewMessage("*****************", Color.Lime); + GameMain.Instance.CloseServer(); + GameMain.Instance.StartServer(); + break; + case "exit": + case "close": + case "quit": + GameMain.ShouldRun = false; + break; + case "say": + case "msg": + string text = ""; + for (int i=1;i entList = Entity.GetEntityList(); - foreach (Entity ent in entList) + case "clientlist": + if (GameMain.Server == null) break; + DebugConsole.NewMessage("***************", Color.Cyan); + foreach (Client c in GameMain.Server.ConnectedClients) { - sw.WriteLine(ent.ID.ToString()+" "+ent.ToString()); + DebugConsole.NewMessage("- " + c.ID.ToString() + ": " + c.name + ", " + c.Connection.RemoteEndPoint.Address.ToString(),Color.Cyan); } - - sw.Close(); + DebugConsole.NewMessage("***************", Color.Cyan); break; case "help": NewMessage("menu: go to main menu", Color.Cyan); @@ -308,6 +306,23 @@ namespace Barotrauma if (GameMain.NetworkMember == null || commands.Length < 2) break; GameMain.NetworkMember.KickPlayer(string.Join(" ", commands.Skip(1)), false); + break; + case "kickid": + if (GameMain.Server == null || commands.Length < 2) break; + { + int id = 0; + int.TryParse(commands[1], out id); + GameMain.Server.KickPlayer(id, false); + } + break; + case "banid": + if (GameMain.Server == null || commands.Length < 2) break; + { + int id = 0; + int.TryParse(commands[1], out id); + GameMain.Server.KickPlayer(id, true); + } + break; case "ban": if (GameMain.NetworkMember == null || commands.Length < 2) break; diff --git a/BarotraumaShared/Source/Networking/GameServer.cs b/BarotraumaShared/Source/Networking/GameServer.cs index 3e9889059..9b1d48f3e 100644 --- a/BarotraumaShared/Source/Networking/GameServer.cs +++ b/BarotraumaShared/Source/Networking/GameServer.cs @@ -1249,7 +1249,7 @@ namespace Barotrauma.Networking GameMain.GameScreen.Select(); AddChatMessage("Press TAB to chat. Use \"r;\" to talk through the radio.", ChatMessageType.Server); - + GameMain.NetLobbyScreen.StartButtonEnabled = true; gameStarted = true; @@ -1411,6 +1411,13 @@ namespace Barotrauma.Networking KickClient(client, ban, range); } + public void KickPlayer(int id,bool ban,bool range=false) + { + Client client = connectedClients.Find(c => c.ID == id); + + KickClient(client, ban, range); + } + public void KickClient(NetConnection conn, bool ban = false, bool range = false) { Client client = connectedClients.Find(c => c.Connection == conn); diff --git a/BarotraumaShared/Source/Screens/Screen.cs b/BarotraumaShared/Source/Screens/Screen.cs index 3722a3364..8e96b37d0 100644 --- a/BarotraumaShared/Source/Screens/Screen.cs +++ b/BarotraumaShared/Source/Screens/Screen.cs @@ -14,6 +14,11 @@ namespace Barotrauma get { return selected; } } + public static void SelectNull() + { + selected = null; + } + public virtual void Deselect() { }