diff --git a/Subsurface/Source/Networking/GameServer.cs b/Subsurface/Source/Networking/GameServer.cs index 09c19dfcc..93b032205 100644 --- a/Subsurface/Source/Networking/GameServer.cs +++ b/Subsurface/Source/Networking/GameServer.cs @@ -1965,6 +1965,7 @@ namespace Barotrauma.Networking public override void Disconnect() { banList.Save(); + SaveSettings(); if (registeredToMaster && restClient != null) { diff --git a/Subsurface/Source/Networking/GameServerSettings.cs b/Subsurface/Source/Networking/GameServerSettings.cs index fee793ddb..090d47082 100644 --- a/Subsurface/Source/Networking/GameServerSettings.cs +++ b/Subsurface/Source/Networking/GameServerSettings.cs @@ -189,7 +189,8 @@ namespace Barotrauma.Networking { get { return banList; } } - + + [HasDefaultValue(true, true)] public bool AllowVoteKick { get; @@ -218,9 +219,16 @@ namespace Barotrauma.Networking doc.Root.SetAttributeValue("SubSelection", subSelectionMode.ToString()); doc.Root.SetAttributeValue("ModeSelection", modeSelectionMode.ToString()); + + doc.Root.SetAttributeValue("TraitorsEnabled", TraitorsEnabled.ToString()); doc.Root.SetAttributeValue("MaxFileTransferDuration", FileStreamSender.MaxTransferDuration.TotalSeconds); - + + if (GameMain.NetLobbyScreen != null && GameMain.NetLobbyScreen.ServerMessage != null) + { + doc.Root.SetAttributeValue("ServerMessage", GameMain.NetLobbyScreen.ServerMessage.Text); + } + XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; settings.NewLineOnAttributes = true; @@ -253,9 +261,17 @@ namespace Barotrauma.Networking modeSelectionMode = SelectionMode.Manual; Enum.TryParse(ToolBox.GetAttributeString(doc.Root, "ModeSelection", "Manual"), out modeSelectionMode); Voting.AllowModeVoting = modeSelectionMode == SelectionMode.Vote; + + var traitorsEnabled = TraitorsEnabled; + Enum.TryParse(ToolBox.GetAttributeString(doc.Root, "TraitorsEnabled", "No"), out traitorsEnabled); + GameMain.NetLobbyScreen.SetTraitorsEnabled(traitorsEnabled); FileStreamSender.MaxTransferDuration = new TimeSpan(0,0,ToolBox.GetAttributeInt(doc.Root, "MaxFileTransferDuration", 150)); - + + if (GameMain.NetLobbyScreen != null && GameMain.NetLobbyScreen.ServerMessage != null) + { + GameMain.NetLobbyScreen.ServerMessage.Text = ToolBox.GetAttributeString(doc.Root, "ServerMessage", ""); + } showLogButton.Visible = SaveServerLogs; List monsterNames = Directory.GetDirectories("Content/Characters").ToList(); diff --git a/Subsurface/Source/Screens/NetLobbyScreen.cs b/Subsurface/Source/Screens/NetLobbyScreen.cs index 074a20ec1..3db6bf0a7 100644 --- a/Subsurface/Source/Screens/NetLobbyScreen.cs +++ b/Subsurface/Source/Screens/NetLobbyScreen.cs @@ -51,6 +51,11 @@ namespace Barotrauma private GUITextBox serverMessage; + public GUITextBox ServerMessage + { + get { return serverMessage; } + } + public GUIListBox SubList { get { return subList; }