Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ private bool GetPlatformRequiresAuth(Platform platform)
Platform.Steam => true,
Platform.OculusQuest => true,
Platform.Oculus => true,
Platform.Pico => true,
Platform.Pico => false, // TODO: Pico auth, if possible
_ => false,
};
}
Expand Down
3 changes: 2 additions & 1 deletion BeatTogether.MasterServer.Api/Util/UserIdHash.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ public static string Generate(Platform platform, string platformUserId)
Platform.OculusQuest => "OculusQuest#",
Platform.Pico => "Pico#",
Platform.Steam => "Steam#",
Platform.PS4 => "PSN#",
Platform.Pico => "Pico#",
Platform.PS4 or Platform.PS5 => "PSN#",
_ => ""
};
return Generate(platformStr, platformUserId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ public Task<Server> GetAvailablePublicServer(
{
if (!_servers.Any())
return Task.FromResult<Server>(null);
//Search for public server that fits the filter
var publicServers = _servers.Values.Where(server =>
server.GameplayServerConfiguration.DiscoveryPolicy == DiscoveryPolicy.Public &&
server.GameplayServerConfiguration.InvitePolicy == invitePolicy &&
Expand All @@ -114,20 +115,20 @@ public Task<Server> GetAvailablePublicServer(
server.GameplayServerConfiguration.GameplayServerControlSettings == serverControlSettings &&
server.BeatmapDifficultyMask == difficultyMask &&
server.GameplayModifiersMask == modifiersMask &&
server.SongPackMasks == SongPackMasks
server.SongPackMasks == SongPackMasks &&
server.CurrentPlayerCount <= server.GameplayServerConfiguration.MaxPlayerCount
);
if (!publicServers.Any())
return Task.FromResult<Server>(null);
var server = publicServers.First();
//Find server with most players.
foreach (var publicServer in publicServers)
{
if ((publicServer.CurrentPlayerCount < publicServer.GameplayServerConfiguration.MaxPlayerCount && publicServer.CurrentPlayerCount > server.CurrentPlayerCount))
if(publicServer.CurrentPlayerCount > server.CurrentPlayerCount)
{
server = publicServer;
}
}
if (server.CurrentPlayerCount >= server.GameplayServerConfiguration.MaxPlayerCount)
return Task.FromResult<Server>(null);
return Task.FromResult(server);
}

Expand Down
Loading