diff --git a/Subsurface/Barotrauma.csproj b/Subsurface/Barotrauma.csproj
index 9909da4cb..471a8c0ef 100644
--- a/Subsurface/Barotrauma.csproj
+++ b/Subsurface/Barotrauma.csproj
@@ -157,6 +157,7 @@
+
diff --git a/Subsurface/Source/Networking/GameServer.cs b/Subsurface/Source/Networking/GameServer.cs
index 7e28934e0..d8c0369ae 100644
--- a/Subsurface/Source/Networking/GameServer.cs
+++ b/Subsurface/Source/Networking/GameServer.cs
@@ -774,7 +774,7 @@ namespace Barotrauma.Networking
yield return CoroutineStatus.Success;
}
- public override void KickPlayer(string playerName, bool ban)
+ public override void KickPlayer(string playerName, bool ban, bool range=false)
{
playerName = playerName.ToLowerInvariant();
@@ -782,10 +782,10 @@ namespace Barotrauma.Networking
c.name.ToLowerInvariant() == playerName ||
(c.Character != null && c.Character.Name.ToLowerInvariant() == playerName));
- KickClient(client, ban);
+ KickClient(client, ban, range);
}
- public void KickClient(NetConnection conn, bool ban = false)
+ public void KickClient(NetConnection conn, bool ban = false, bool range = false)
{
Client client = connectedClients.Find(c => c.Connection == conn);
if (client == null)
@@ -801,18 +801,20 @@ namespace Barotrauma.Networking
}
else
{
- KickClient(client, ban);
+ KickClient(client, ban, range);
}
}
- public void KickClient(Client client, bool ban = false)
+ public void KickClient(Client client, bool ban = false, bool range = false)
{
if (client == null) return;
if (ban)
{
DisconnectClient(client, client.name + " has been banned from the server", "You have been banned from the server");
- banList.BanPlayer(client.name, client.Connection.RemoteEndPoint.Address.ToString());
+ string ip = client.Connection.RemoteEndPoint.Address.ToString();
+ if (range) { ip = banList.ToRange(ip); }
+ banList.BanPlayer(client.name, ip);
}
else
{
diff --git a/Subsurface/Source/Networking/GameServerLogin.cs b/Subsurface/Source/Networking/GameServerLogin.cs
index f50ca2198..9cd42c99a 100644
--- a/Subsurface/Source/Networking/GameServerLogin.cs
+++ b/Subsurface/Source/Networking/GameServerLogin.cs
@@ -156,14 +156,13 @@ namespace Barotrauma.Networking
unauthenticatedClients.Remove(unauthClient);
unauthClient = null;
return;
- }
-
-#endif
- if (!whitelist.IsWhiteListed(name, inc.SenderConnection.RemoteEndPoint.Address.ToString()))
- {
+ }
+
+ if (!whitelist.IsWhiteListed(name, inc.SenderConnection.RemoteEndPoint.Address.ToString()))
+ {
inc.SenderConnection.Disconnect("You're not in this server's whitelist.");
DebugConsole.NewMessage(name + " (" + inc.SenderConnection.RemoteEndPoint.Address.ToString() + ") couldn't join the server (not in whitelist)", Color.Red);
- return;
+ return;
}
if (!Client.IsValidName(name))
{
diff --git a/Subsurface/Source/Screens/NetLobbyScreen.cs b/Subsurface/Source/Screens/NetLobbyScreen.cs
index d90197890..a7d87de8a 100644
--- a/Subsurface/Source/Screens/NetLobbyScreen.cs
+++ b/Subsurface/Source/Screens/NetLobbyScreen.cs
@@ -55,19 +55,19 @@ namespace Barotrauma
const float NetworkUpdateInterval = 1.0f;
private float networkUpdateTimer;
private UInt32 lastUpdateID;
- public UInt32 LastUpdateID
- {
- get { if (GameMain.Server != null && lastUpdateID < 1) lastUpdateID++; return lastUpdateID; }
- set { if (GameMain.Server != null) return; lastUpdateID = value; }
+ public UInt32 LastUpdateID
+ {
+ get { if (GameMain.Server != null && lastUpdateID < 1) lastUpdateID++; return lastUpdateID; }
+ set { if (GameMain.Server != null) return; lastUpdateID = value; }
}
private Sprite backgroundSprite;
private GUITextBox serverMessage;
- public string ServerMessage
- {
- get { return serverMessage.Text; }
- set { if (GameMain.Server != null) return; serverMessage.Text = value; }
+ public string ServerMessage
+ {
+ get { return serverMessage.Text; }
+ set { if (GameMain.Server != null) return; serverMessage.Text = value; }
}
public GUIListBox SubList
@@ -413,10 +413,10 @@ namespace Barotrauma
GUIButton settingsButton = new GUIButton(new Rectangle(-100, 0, 80, 30), "Settings", Alignment.BottomRight, GUI.Style, infoFrame);
settingsButton.OnClicked = GameMain.Server.ToggleSettingsFrame;
- settingsButton.UserData = "settingsButton";
-
- GUIButton whitelistButton = new GUIButton(new Rectangle(-200, 0, 80, 30), "Whitelist", Alignment.BottomRight, GUI.Style, infoFrame);
- whitelistButton.OnClicked = GameMain.Server.ToggleWhiteListFrame;
+ settingsButton.UserData = "settingsButton";
+
+ GUIButton whitelistButton = new GUIButton(new Rectangle(-200, 0, 80, 30), "Whitelist", Alignment.BottomRight, GUI.Style, infoFrame);
+ whitelistButton.OnClicked = GameMain.Server.ToggleWhiteListFrame;
whitelistButton.UserData = "whitelistButton";
if (subList.Selected == null) subList.Select(Math.Max(0, prevSelectedSub));
@@ -573,10 +573,10 @@ namespace Barotrauma
{
if (GameMain.Server == null) return false;
- GameMain.Server.AutoRestart = tickBox.Selected;
-
- lastUpdateID++;
-
+ GameMain.Server.AutoRestart = tickBox.Selected;
+
+ lastUpdateID++;
+
return true;
}
@@ -615,8 +615,8 @@ namespace Barotrauma
if (index < 0) index = 2;
if (index > 2) index = 0;
- SetTraitorsEnabled((YesNoMaybe)index);
-
+ SetTraitorsEnabled((YesNoMaybe)index);
+
lastUpdateID++;
return true;
@@ -912,8 +912,8 @@ namespace Barotrauma
else if (GameMain.Client != null && GameMain.Client.HasPermission(ClientPermissions.Ban))
{
GameMain.Client.KickPlayer(userData.ToString(), true);
- }
-
+ }
+
return false;
}
@@ -928,8 +928,8 @@ namespace Barotrauma
else if (GameMain.Client != null && GameMain.Client.HasPermission(ClientPermissions.Ban))
{
GameMain.Client.KickPlayer(userData.ToString(), true, true);
- }
-
+ }
+
return false;
}
@@ -1084,11 +1084,11 @@ namespace Barotrauma
if (!string.IsNullOrWhiteSpace(seed))
{
LevelSeed = seed;
- }
-
- //textBox.Text = LevelSeed;
- //textBox.Selected = false;
-
+ }
+
+ //textBox.Text = LevelSeed;
+ //textBox.Selected = false;
+
lastUpdateID++;
return true;