Add a GUI slider for setting the auto ban duration. Define the max auto ban length in the server settings. (Issue #128)

This commit is contained in:
itchyOwl
2018-03-27 11:29:36 +03:00
parent a48a4975ca
commit b599206294
3 changed files with 27 additions and 0 deletions

View File

@@ -350,6 +350,23 @@ namespace Barotrauma.Networking
};
kickVoteSlider.OnMoved(kickVoteSlider, kickVoteSlider.BarScroll);
y += 20;
var autobanTimeText = new GUITextBlock(new Rectangle(20, y + 20, 20, 20), $"Auto ban time: " + ToolBox.SecondsToReadableTime(AutoBanTime), "", settingsTabs[1], GUI.SmallFont);
var autobanTimeSlider = new GUIScrollBar(new Rectangle(150, y + 22, 100, 15), "", 0.1f, settingsTabs[1]);
autobanTimeSlider.UserData = autobanTimeText;
autobanTimeSlider.Step = 0.05f;
autobanTimeSlider.BarScroll = AutoBanTime / MaxAutoBanTime;
autobanTimeSlider.OnMoved = (GUIScrollBar scrollBar, float barScroll) =>
{
GUITextBlock voteText = scrollBar.UserData as GUITextBlock;
AutoBanTime = Math.Max(barScroll * MaxAutoBanTime, 0);
voteText.Text = "Auto ban time: " + ToolBox.SecondsToReadableTime(AutoBanTime);
return true;
};
autobanTimeSlider.OnMoved(autobanTimeSlider, autobanTimeSlider.BarScroll);
y += 45;
var shareSubsBox = new GUITickBox(new Rectangle(0, y, 20, 20), "Share submarine files with players", Alignment.Left, settingsTabs[1]);

View File

@@ -260,6 +260,14 @@ namespace Barotrauma.Networking
get;
private set;
}
[Serialize(360f, true)]
public float MaxAutoBanTime
{
get;
private set;
}
private void SaveSettings()
{
XDocument doc = new XDocument(new XElement("serversettings"));
@@ -369,6 +377,7 @@ namespace Barotrauma.Networking
extraCargo = new Dictionary<ItemPrefab, int>();
AutoBanTime = doc.Root.GetAttributeFloat("autobantime", 60);
MaxAutoBanTime = doc.Root.GetAttributeFloat("maxautobantime", 360);
}
public void LoadClientPermissions()

View File

@@ -30,4 +30,5 @@
MissionType="Random"
TraitorsEnabled="No"
autobantime="60"
maxautobantime="360"
/>