From a48a4975cac91e68deb4336c857e2dc3c5174dfe Mon Sep 17 00:00:00 2001 From: itchyOwl Date: Tue, 27 Mar 2018 11:27:13 +0300 Subject: [PATCH] Auto ban users that have been vote kicked. Define the auto ban time in the server settings. (Issue #128) NOTE: Not tested! --- .../BarotraumaShared/Source/Networking/GameServer.cs | 1 + .../Source/Networking/GameServerSettings.cs | 8 ++++++++ Barotrauma/BarotraumaShared/serversettings.xml | 1 + 3 files changed, 10 insertions(+) diff --git a/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs b/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs index 72a4eca3b..9c58d60a9 100644 --- a/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs +++ b/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs @@ -1934,6 +1934,7 @@ namespace Barotrauma.Networking { SendChatMessage(c.Name + " has been kicked from the server.", ChatMessageType.Server, null); KickClient(c, "Kicked by vote"); + BanClient(c, "Kicked by vote (auto ban)", duration: TimeSpan.FromSeconds(AutoBanTime)); } GameMain.NetLobbyScreen.LastUpdateID++; diff --git a/Barotrauma/BarotraumaShared/Source/Networking/GameServerSettings.cs b/Barotrauma/BarotraumaShared/Source/Networking/GameServerSettings.cs index 27403577f..b7160c07d 100644 --- a/Barotrauma/BarotraumaShared/Source/Networking/GameServerSettings.cs +++ b/Barotrauma/BarotraumaShared/Source/Networking/GameServerSettings.cs @@ -254,6 +254,12 @@ namespace Barotrauma.Networking set; } + [Serialize(60f, true)] + public float AutoBanTime + { + get; + private set; + } private void SaveSettings() { XDocument doc = new XDocument(new XElement("serversettings")); @@ -361,6 +367,8 @@ namespace Barotrauma.Networking if (!monsterEnabled.ContainsKey(s)) monsterEnabled.Add(s, true); } extraCargo = new Dictionary(); + + AutoBanTime = doc.Root.GetAttributeFloat("autobantime", 60); } public void LoadClientPermissions() diff --git a/Barotrauma/BarotraumaShared/serversettings.xml b/Barotrauma/BarotraumaShared/serversettings.xml index c1e3e950c..0cce423d4 100644 --- a/Barotrauma/BarotraumaShared/serversettings.xml +++ b/Barotrauma/BarotraumaShared/serversettings.xml @@ -29,4 +29,5 @@ GameMode="SandBox" MissionType="Random" TraitorsEnabled="No" + autobantime="60" />