diff --git a/OpenRA.Game/Network/GameServer.cs b/OpenRA.Game/Network/GameServer.cs
index e423bcc9f6..636b1d5fe8 100644
--- a/OpenRA.Game/Network/GameServer.cs
+++ b/OpenRA.Game/Network/GameServer.cs
@@ -20,6 +20,7 @@ namespace OpenRA.Network
public class GameClient
{
public readonly string Name;
+ public readonly string Fingerprint;
public readonly HSLColor Color;
public readonly string Faction;
public readonly int Team;
@@ -33,6 +34,7 @@ namespace OpenRA.Network
public GameClient(Session.Client c)
{
Name = c.Name;
+ Fingerprint = c.Fingerprint;
Color = c.Color;
Faction = c.Faction;
Team = c.Team;
@@ -54,7 +56,7 @@ namespace OpenRA.Network
"Mod", "Version", "ModTitle", "ModWebsite", "ModIcon32",
// Current server state
- "Map", "State", "MaxPlayers", "Protected"
+ "Map", "State", "MaxPlayers", "Protected", "Authentication"
};
public const int ProtocolVersion = 2;
@@ -98,6 +100,9 @@ namespace OpenRA.Network
/// Password protected
public readonly bool Protected = false;
+ /// Players must be authenticated with the OpenRA forum
+ public readonly bool Authentication = false;
+
/// UTC datetime string when the game changed to the Playing state
public readonly string Started = null;
@@ -222,6 +227,7 @@ namespace OpenRA.Network
ModWebsite = manifest.Metadata.Website;
ModIcon32 = manifest.Metadata.WebIcon32;
Protected = !string.IsNullOrEmpty(server.Settings.Password);
+ Authentication = server.Settings.RequireAuthentication || server.Settings.ProfileIDWhitelist.Any();
Clients = server.LobbyInfo.Clients.Select(c => new GameClient(c)).ToArray();
}